From b45d0916414b991cb6ef84bf2fba3fe29f80b72c Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 3 Aug 2016 12:54:54 +0200 Subject: [PATCH 001/218] Make camera animation feel snappier It no longer eases into the animation, so it feels as if it reacts more immediately. --- cura/CameraAnimation.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/CameraAnimation.py b/cura/CameraAnimation.py index e31cbb93a4..a707053d87 100644 --- a/cura/CameraAnimation.py +++ b/cura/CameraAnimation.py @@ -11,8 +11,8 @@ class CameraAnimation(QVariantAnimation): def __init__(self, parent = None): super().__init__(parent) self._camera_tool = None - self.setDuration(500) - self.setEasingCurve(QEasingCurve.InOutQuad) + self.setDuration(300) + self.setEasingCurve(QEasingCurve.OutQuad) def setCameraTool(self, camera_tool): self._camera_tool = camera_tool From e2edbd11b66e828fce6c024765753a8fa2fcdf43 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 9 Oct 2017 11:50:30 +0200 Subject: [PATCH 002/218] Changed Crash Report layout and new information included - CURA-4195 --- cura/CrashHandler.py | 200 ++++++++++++++++++++++++++++--------------- cura_app.py | 5 +- 2 files changed, 135 insertions(+), 70 deletions(-) diff --git a/cura/CrashHandler.py b/cura/CrashHandler.py index 7008ba64d2..dbf931b37e 100644 --- a/cura/CrashHandler.py +++ b/cura/CrashHandler.py @@ -5,14 +5,15 @@ import webbrowser import faulthandler import tempfile import os -import urllib -from PyQt5.QtCore import QT_VERSION_STR, PYQT_VERSION_STR, Qt, QCoreApplication -from PyQt5.QtGui import QPixmap -from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QHBoxLayout, QVBoxLayout, QLabel, QTextEdit +from PyQt5.QtCore import QT_VERSION_STR, PYQT_VERSION_STR, QCoreApplication +from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLabel, QTextEdit, QGroupBox +from PyQt5.QtNetwork import QHttpMultiPart, QHttpPart, QNetworkRequest, QNetworkAccessManager, QNetworkReply from UM.Logger import Logger +from UM.View.GL.OpenGL import OpenGL from UM.i18n import i18nCatalog + catalog = i18nCatalog("cura") MYPY = False @@ -23,6 +24,7 @@ else: from cura.CuraVersion import CuraDebugMode except ImportError: CuraDebugMode = False # [CodeStyle: Reflecting imported value] +CuraDebugMode = True ## TODO Remove when done. Just for debug purposes # List of exceptions that should be considered "fatal" and abort the program. # These are primarily some exception types that we simply cannot really recover from @@ -35,83 +37,145 @@ fatal_exception_types = [ SystemError, ] -def show(exception_type, value, tb): - Logger.log("c", "An uncaught exception has occurred!") - for line in traceback.format_exception(exception_type, value, tb): - for part in line.rstrip("\n").split("\n"): - Logger.log("c", part) +class CrashHandler: - if not CuraDebugMode and exception_type not in fatal_exception_types: - return + def __init__(self, exception_type, value, tb): - application = QCoreApplication.instance() - if not application: - sys.exit(1) + self.exception_type = exception_type + self.value = value + self.traceback = tb - dialog = QDialog() - dialog.setMinimumWidth(640) - dialog.setMinimumHeight(640) - dialog.setWindowTitle(catalog.i18nc("@title:window", "Crash Report")) + Logger.log("c", "An uncaught exception has occurred!") + for line in traceback.format_exception(exception_type, value, tb): + for part in line.rstrip("\n").split("\n"): + Logger.log("c", part) - layout = QVBoxLayout(dialog) + if not CuraDebugMode and exception_type not in fatal_exception_types: + return - #label = QLabel(dialog) - #pixmap = QPixmap() - #try: - # data = urllib.request.urlopen("http://www.randomkittengenerator.com/cats/rotator.php").read() - # pixmap.loadFromData(data) - #except: - # try: - # from UM.Resources import Resources - # path = Resources.getPath(Resources.Images, "kitten.jpg") - # pixmap.load(path) - # except: - # pass - #pixmap = pixmap.scaled(150, 150) - #label.setPixmap(pixmap) - #label.setAlignment(Qt.AlignCenter) - #layout.addWidget(label) + application = QCoreApplication.instance() + if not application: + sys.exit(1) - label = QLabel(dialog) - layout.addWidget(label) + self._createDialog() - #label.setScaledContents(True) - label.setText(catalog.i18nc("@label", """

A fatal exception has occurred that we could not recover from!

-

Please use the information below to post a bug report at http://github.com/Ultimaker/Cura/issues

- """)) + ## Creates a modal dialog. + def _createDialog(self): - textarea = QTextEdit(dialog) - layout.addWidget(textarea) + self.dialog = QDialog() + self.dialog.setMinimumWidth(640) + self.dialog.setMinimumHeight(640) + self.dialog.setWindowTitle(catalog.i18nc("@title:window", "Crash Report")) - try: - from UM.Application import Application - version = Application.getInstance().getVersion() - except: - version = "Unknown" + layout = QVBoxLayout(self.dialog) - trace = "".join(traceback.format_exception(exception_type, value, tb)) + layout.addWidget(self._messageWidget()) + layout.addWidget(self._informationWidget()) + layout.addWidget(self._exceptionInfoWidget()) + layout.addWidget(self._logInfoWidget()) + layout.addWidget(self._userDescriptionWidget()) + layout.addWidget(self._buttonsWidget()) - crash_info = "Version: {0}\nPlatform: {1}\nQt: {2}\nPyQt: {3}\n\nException:\n{4}" - crash_info = crash_info.format(version, platform.platform(), QT_VERSION_STR, PYQT_VERSION_STR, trace) + def _messageWidget(self): + label = QLabel() + label.setText(catalog.i18nc("@label", """

A fatal exception has occurred that we could not recover from!

+

Please use the button below to post a bug report automatically to our servers

+ """)) - tmp_file_fd, tmp_file_path = tempfile.mkstemp(prefix = "cura-crash", text = True) - os.close(tmp_file_fd) - with open(tmp_file_path, "w") as f: - faulthandler.dump_traceback(f, all_threads=True) - with open(tmp_file_path, "r") as f: - data = f.read() + return label - msg = "-------------------------\n" - msg += data - crash_info += "\n\n" + msg + def _informationWidget(self): + group = QGroupBox() + group.setTitle("System information") + layout = QVBoxLayout() + label = QLabel() - textarea.setText(crash_info) + try: + from UM.Application import Application + version = Application.getInstance().getVersion() + except: + version = "Unknown" - buttons = QDialogButtonBox(QDialogButtonBox.Close, dialog) - layout.addWidget(buttons) - buttons.addButton(catalog.i18nc("@action:button", "Open Web Page"), QDialogButtonBox.HelpRole) - buttons.rejected.connect(dialog.close) - buttons.helpRequested.connect(lambda: webbrowser.open("http://github.com/Ultimaker/Cura/issues")) + crash_info = "Version: {0}
Platform: {1}
Qt: {2}
PyQt: {3}
OpenGL: {4}" + crash_info = crash_info.format(version, platform.platform(), QT_VERSION_STR, PYQT_VERSION_STR, self._getOpenGLInfo()) + label.setText(crash_info) - dialog.exec_() - sys.exit(1) + layout.addWidget(label) + group.setLayout(layout) + + return group + + def _exceptionInfoWidget(self): + group = QGroupBox() + group.setTitle("Exception traceback") + layout = QVBoxLayout() + + text_area = QTextEdit() + trace = "".join(traceback.format_exception(self.exception_type, self.value, self.traceback)) + text_area.setText(trace) + + layout.addWidget(text_area) + group.setLayout(layout) + + return group + + def _logInfoWidget(self): + group = QGroupBox() + group.setTitle("Logs") + layout = QVBoxLayout() + + text_area = QTextEdit() + tmp_file_fd, tmp_file_path = tempfile.mkstemp(prefix = "cura-crash", text = True) + os.close(tmp_file_fd) + with open(tmp_file_path, "w") as f: + faulthandler.dump_traceback(f, all_threads=True) + with open(tmp_file_path, "r") as f: + data = f.read() + + text_area.setText(data) + + layout.addWidget(text_area) + group.setLayout(layout) + + return group + + + def _userDescriptionWidget(self): + group = QGroupBox() + group.setTitle("User description") + layout = QVBoxLayout() + + text_area = QTextEdit() + + layout.addWidget(text_area) + group.setLayout(layout) + + return group + + def _buttonsWidget(self): + buttons = QDialogButtonBox() + buttons.addButton(QDialogButtonBox.Close) + buttons.addButton(catalog.i18nc("@action:button", "Send to developers"), QDialogButtonBox.AcceptRole) + buttons.rejected.connect(self.dialog.close) + buttons.accepted.connect(self._sendCrashReport) + + return buttons + + def _getOpenGLInfo(self): + info = "" + info = info.format(OpenGL.getInstance().getGPUVersion(), OpenGL.getInstance().getGPUVendorName(), OpenGL.getInstance().getGPUType()) + return info + + def _sendCrashReport(self): + print("Hello") + # _manager = QNetworkAccessManager() + # api_url = QUrl("url") + # put_request = QNetworkRequest(api_url) + # put_request.setHeader(QNetworkRequest.ContentTypeHeader, "text/plain") + # _manager.put(put_request, crash_info.encode()) + # + # sys.exit(1) + + def show(self): + self.dialog.exec_() + sys.exit(1) \ No newline at end of file diff --git a/cura_app.py b/cura_app.py index 6869fd2111..d725bc1200 100755 --- a/cura_app.py +++ b/cura_app.py @@ -41,8 +41,9 @@ if "PYTHONPATH" in os.environ.keys(): # If PYTHONPATH is u sys.path.insert(1, PATH_real) # Insert it at 1 after os.curdir, which is 0. def exceptHook(hook_type, value, traceback): - import cura.CrashHandler - cura.CrashHandler.show(hook_type, value, traceback) + from cura.CrashHandler import CrashHandler + _crash_handler = CrashHandler(hook_type, value, traceback) + _crash_handler.show() sys.excepthook = exceptHook From 852e59f310017978360cdea217afb498b55aeddc Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 9 Oct 2017 12:24:08 +0200 Subject: [PATCH 003/218] Fix retrieving default values with "extruderValue()" CURA-4358 Use evaluation context to override the default extruderValue() function with getDefaultExtruderValue() so it can get the correct default values from each extruder. --- cura/Settings/ExtruderManager.py | 17 +++++++++++++++++ cura/Settings/UserChangesModel.py | 13 +++++++++---- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 9e17ce028d..1c01b1fc8a 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -16,6 +16,7 @@ from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.SettingFunction import SettingFunction from UM.Settings.ContainerStack import ContainerStack from UM.Settings.Interfaces import DefinitionContainerInterface +from UM.Settings.PropertyEvaluationContext import PropertyEvaluationContext from typing import Optional, List, TYPE_CHECKING, Union if TYPE_CHECKING: @@ -620,6 +621,22 @@ class ExtruderManager(QObject): return value + ## Get the default value from the given extruder. This function will skip the user settings container. + @staticmethod + def getDefaultExtruderValue(extruder_index, key): + extruder = ExtruderManager.getInstance().getExtruderStack(extruder_index) + context = PropertyEvaluationContext() + context.context["evaluate_from_container_index"] = 1 # skip the user settings container + + if extruder: + value = extruder.getRawProperty(key, "value", context = context) + if isinstance(value, SettingFunction): + value = value(extruder, context = context) + else: # Just a value from global. + value = Application.getInstance().getGlobalContainerStack().getProperty(key, "value", context = context) + + return value + ## Get the resolve value or value for a given key # # This is the effective value for a given key, it is used for values in the global stack. diff --git a/cura/Settings/UserChangesModel.py b/cura/Settings/UserChangesModel.py index 8b61186650..d47468b808 100644 --- a/cura/Settings/UserChangesModel.py +++ b/cura/Settings/UserChangesModel.py @@ -6,6 +6,7 @@ from cura.Settings.ExtruderManager import ExtruderManager from UM.Settings.ContainerRegistry import ContainerRegistry from UM.i18n import i18nCatalog from UM.Settings.SettingFunction import SettingFunction +from UM.Settings.PropertyEvaluationContext import PropertyEvaluationContext from collections import OrderedDict import os @@ -66,8 +67,12 @@ class UserChangesModel(ListModel): containers.extend(latest_stack.getContainers()) latest_stack = latest_stack.getNextStack() - # Drop the user container. + # Override "getExtruderValue" with "getDefaultExtruderValue" so we can get the default values user_changes = containers.pop(0) + default_value_resolve_context = PropertyEvaluationContext(stack) + default_value_resolve_context.context["override_operators"] = { + "extruderValue": ExtruderManager.getDefaultExtruderValue + } for setting_key in user_changes.getAllKeys(): original_value = None @@ -90,16 +95,16 @@ class UserChangesModel(ListModel): for container in containers: if stack == global_stack: - resolve = global_stack.getProperty(setting_key, "resolve") + resolve = global_stack.getProperty(setting_key, "resolve", default_value_resolve_context) if resolve is not None: original_value = resolve break - original_value = container.getProperty(setting_key, "value") + original_value = container.getProperty(setting_key, "value", default_value_resolve_context) # If a value is a function, ensure it's called with the stack it's in. if isinstance(original_value, SettingFunction): - original_value = original_value(stack) + original_value = original_value(stack, default_value_resolve_context) if original_value is not None: break From cf1f0ffaf11afc0272d799edd4434073a4614798 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 9 Oct 2017 16:05:37 +0200 Subject: [PATCH 004/218] Adding info to be sent as JSON and send when button is pressed - CURA-4195 --- cura/CrashHandler.py | 80 +++++++++++++++++++++++++++++++++----------- 1 file changed, 61 insertions(+), 19 deletions(-) diff --git a/cura/CrashHandler.py b/cura/CrashHandler.py index dbf931b37e..eb1f594c60 100644 --- a/cura/CrashHandler.py +++ b/cura/CrashHandler.py @@ -5,14 +5,19 @@ import webbrowser import faulthandler import tempfile import os +import time +import json +import ssl +import urllib.request +import urllib.error -from PyQt5.QtCore import QT_VERSION_STR, PYQT_VERSION_STR, QCoreApplication +from PyQt5.QtCore import QT_VERSION_STR, PYQT_VERSION_STR, QCoreApplication, Qt from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLabel, QTextEdit, QGroupBox -from PyQt5.QtNetwork import QHttpMultiPart, QHttpPart, QNetworkRequest, QNetworkAccessManager, QNetworkReply from UM.Logger import Logger from UM.View.GL.OpenGL import OpenGL from UM.i18n import i18nCatalog +from UM.Platform import Platform catalog = i18nCatalog("cura") @@ -38,6 +43,7 @@ fatal_exception_types = [ ] class CrashHandler: + crash_url = "https://stats.ultimaker.com/api/cura" def __init__(self, exception_type, value, tb): @@ -45,6 +51,10 @@ class CrashHandler: self.value = value self.traceback = tb + # While we create the GUI, the information will be stored for sending afterwards + self.data = dict() + self.data["time_stamp"] = time.time() + Logger.log("c", "An uncaught exception has occurred!") for line in traceback.format_exception(exception_type, value, tb): for part in line.rstrip("\n").split("\n"): @@ -103,8 +113,21 @@ class CrashHandler: layout.addWidget(label) group.setLayout(layout) + self.data["cura_version"] = version + self.data["os"] = {"type": platform.system(), "version": platform.version()} + self.data["qt_version"] = QT_VERSION_STR + self.data["pyqt_version"] = PYQT_VERSION_STR + return group + def _getOpenGLInfo(self): + info = "
  • OpenGL Version: {0}
  • OpenGL Vendor: {1}
  • OpenGL Renderer: {2}
" + info = info.format(OpenGL.getInstance().getGPUVersion(), OpenGL.getInstance().getGPUVendorName(), OpenGL.getInstance().getGPUType()) + + self.data["opengl"] = {"version": OpenGL.getInstance().getGPUVersion(), "vendor": OpenGL.getInstance().getGPUVendorName(), "type": OpenGL.getInstance().getGPUType()} + + return info + def _exceptionInfoWidget(self): group = QGroupBox() group.setTitle("Exception traceback") @@ -113,10 +136,13 @@ class CrashHandler: text_area = QTextEdit() trace = "".join(traceback.format_exception(self.exception_type, self.value, self.traceback)) text_area.setText(trace) + text_area.setReadOnly(True) layout.addWidget(text_area) group.setLayout(layout) + self.data["traceback"] = trace + return group def _logInfoWidget(self): @@ -130,13 +156,16 @@ class CrashHandler: with open(tmp_file_path, "w") as f: faulthandler.dump_traceback(f, all_threads=True) with open(tmp_file_path, "r") as f: - data = f.read() + logdata = f.read() - text_area.setText(data) + text_area.setText(logdata) + text_area.setReadOnly(True) layout.addWidget(text_area) group.setLayout(layout) + self.data["log"] = logdata + return group @@ -145,9 +174,11 @@ class CrashHandler: group.setTitle("User description") layout = QVBoxLayout() - text_area = QTextEdit() + # When sending the report, the user comments will be collected + self.user_description_text_area = QTextEdit() + self.user_description_text_area.setFocus(True) - layout.addWidget(text_area) + layout.addWidget(self.user_description_text_area) group.setLayout(layout) return group @@ -161,20 +192,31 @@ class CrashHandler: return buttons - def _getOpenGLInfo(self): - info = "
  • OpenGL Version: {0}
  • OpenGL Vendor: {1}
  • OpenGL Renderer: {2}
" - info = info.format(OpenGL.getInstance().getGPUVersion(), OpenGL.getInstance().getGPUVendorName(), OpenGL.getInstance().getGPUType()) - return info - def _sendCrashReport(self): - print("Hello") - # _manager = QNetworkAccessManager() - # api_url = QUrl("url") - # put_request = QNetworkRequest(api_url) - # put_request.setHeader(QNetworkRequest.ContentTypeHeader, "text/plain") - # _manager.put(put_request, crash_info.encode()) - # - # sys.exit(1) + # Before sending data, the user comments are stored + self.data["user_info"] = self.user_description_text_area.toPlainText() + + # Convert data to bytes + binary_data = json.dumps(self.data).encode("utf-8") + + # Submit data + kwoptions = {"data": binary_data, "timeout": 5} + + if Platform.isOSX(): + kwoptions["context"] = ssl._create_unverified_context() + + Logger.log("i", "Sending crash report info to [%s]...", self.crash_url) + + try: + f = urllib.request.urlopen(self.crash_url, **kwoptions) + Logger.log("i", "Sent crash report info.") + f.close() + except urllib.error.HTTPError: + Logger.logException("e", "An HTTP error occurred while trying to send crash report") + except Exception: # We don't want any exception to cause problems + Logger.logException("e", "An exception occurred while trying to send crash report") + + sys.exit(1) def show(self): self.dialog.exec_() From 19e93362141631e41e7fc42558207854ddcedc22 Mon Sep 17 00:00:00 2001 From: "A.Sasin" Date: Tue, 10 Oct 2017 09:43:43 +0200 Subject: [PATCH 005/218] Revert "Adjust column width for Materials "Print Settings" page" This reverts commit 7b6faf0030d9455f772c364ce4c9f16ae0bf1e21. --- resources/qml/Preferences/MaterialView.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Preferences/MaterialView.qml b/resources/qml/Preferences/MaterialView.qml index b13ce1aadf..c1750b2342 100644 --- a/resources/qml/Preferences/MaterialView.qml +++ b/resources/qml/Preferences/MaterialView.qml @@ -16,8 +16,8 @@ TabView property bool editingEnabled: false; property string currency: UM.Preferences.getValue("cura/currency") ? UM.Preferences.getValue("cura/currency") : "€" - property real firstColumnWidth: (width * 0.50) | 0 - property real secondColumnWidth: (width * 0.40) | 0 + property real firstColumnWidth: (width * 0.45) | 0 + property real secondColumnWidth: (width * 0.45) | 0 property string containerId: "" property var materialPreferenceValues: UM.Preferences.getValue("cura/material_settings") ? JSON.parse(UM.Preferences.getValue("cura/material_settings")) : {} From 72ff384c48910dd96096186f948dd20cfb0152df Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 10 Oct 2017 14:35:44 +0200 Subject: [PATCH 006/218] Parsing traceback to get more information about the crash - CURA-4195 --- cura/CrashHandler.py | 66 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 58 insertions(+), 8 deletions(-) diff --git a/cura/CrashHandler.py b/cura/CrashHandler.py index eb1f594c60..f29efd1019 100644 --- a/cura/CrashHandler.py +++ b/cura/CrashHandler.py @@ -5,6 +5,7 @@ import webbrowser import faulthandler import tempfile import os +import os.path import time import json import ssl @@ -15,6 +16,8 @@ from PyQt5.QtCore import QT_VERSION_STR, PYQT_VERSION_STR, QCoreApplication, Qt from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLabel, QTextEdit, QGroupBox from UM.Logger import Logger +from UM.PluginError import InvalidMetaDataError +from UM.PluginRegistry import PluginRegistry from UM.View.GL.OpenGL import OpenGL from UM.i18n import i18nCatalog from UM.Platform import Platform @@ -102,18 +105,18 @@ class CrashHandler: try: from UM.Application import Application - version = Application.getInstance().getVersion() + self.cura_version = Application.getInstance().getVersion() except: - version = "Unknown" + self.cura_version = "Unknown" crash_info = "Version: {0}
Platform: {1}
Qt: {2}
PyQt: {3}
OpenGL: {4}" - crash_info = crash_info.format(version, platform.platform(), QT_VERSION_STR, PYQT_VERSION_STR, self._getOpenGLInfo()) + crash_info = crash_info.format(self.cura_version, platform.platform(), QT_VERSION_STR, PYQT_VERSION_STR, self._getOpenGLInfo()) label.setText(crash_info) layout.addWidget(label) group.setLayout(layout) - self.data["cura_version"] = version + self.data["cura_version"] = self.cura_version self.data["os"] = {"type": platform.system(), "version": platform.version()} self.data["qt_version"] = QT_VERSION_STR self.data["pyqt_version"] = PYQT_VERSION_STR @@ -122,9 +125,9 @@ class CrashHandler: def _getOpenGLInfo(self): info = "
  • OpenGL Version: {0}
  • OpenGL Vendor: {1}
  • OpenGL Renderer: {2}
" - info = info.format(OpenGL.getInstance().getGPUVersion(), OpenGL.getInstance().getGPUVendorName(), OpenGL.getInstance().getGPUType()) + info = info.format(OpenGL.getInstance().getOpenGLVersion(), OpenGL.getInstance().getGPUVendorName(), OpenGL.getInstance().getGPUType()) - self.data["opengl"] = {"version": OpenGL.getInstance().getGPUVersion(), "vendor": OpenGL.getInstance().getGPUVendorName(), "type": OpenGL.getInstance().getGPUType()} + self.data["opengl"] = {"version": OpenGL.getInstance().getOpenGLVersion(), "vendor": OpenGL.getInstance().getGPUVendorName(), "type": OpenGL.getInstance().getGPUType()} return info @@ -134,14 +137,61 @@ class CrashHandler: layout = QVBoxLayout() text_area = QTextEdit() - trace = "".join(traceback.format_exception(self.exception_type, self.value, self.traceback)) + trace_dict = traceback.format_exception(self.exception_type, self.value, self.traceback) + trace = "".join(trace_dict) text_area.setText(trace) text_area.setReadOnly(True) layout.addWidget(text_area) group.setLayout(layout) - self.data["traceback"] = trace + # Parsing all the information to fill the dictionary + summary = trace_dict[len(trace_dict)-1].rstrip("\n") + module = trace_dict[len(trace_dict)-2].rstrip("\n").split("\n") + module_split = module[0].split(", ") + filepath = module_split[0].split("\"")[1] + directory, filename = os.path.split(filepath) + line = int(module_split[1].lstrip("line ")) + function = module_split[2].lstrip("in ") + code = module[1].lstrip(" ") + + # Using this workaround for a cross-platform path splitting + split_path = [] + folder_name = "" + # Split until reach folder "cura" + while folder_name != "cura": + directory, folder_name = os.path.split(directory) + if not folder_name: + break + split_path.append(folder_name) + + # Look for plugins. If it's not a plugin, the current cura version is set + isPlugin = False + module_version = self.cura_version + if split_path.__contains__("plugins"): + isPlugin = True + # Look backwards until plugin.json is found + directory, name = os.path.split(filepath) + while not os.listdir(directory).__contains__("plugin.json"): + directory, name = os.path.split(directory) + + json_metadata_file = os.path.join(directory, "plugin.json") + try: + with open(json_metadata_file, "r") as f: + try: + metadata = json.loads(f.read()) + module_version = metadata["version"] + except json.decoder.JSONDecodeError: + # Not through new exceptions + Logger.logException("e", "Failed to parse plugin.json for plugin %s", name) + except: + # Not through new exceptions + pass + + exception_dict = dict() + exception_dict["traceback"] = {"summary": summary, "full_trace": trace} + exception_dict["location"] = {"path": filepath, "file": filename, "function": function, "code": code, "line": line, "version": module_version, "is_plugin": isPlugin} + self.data["exception"] = exception_dict return group From 71e8de13a83198846c9758803ae1f4f9349b6f91 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 11 Oct 2017 11:05:01 +0200 Subject: [PATCH 007/218] Fix retrieving setting values with "extruderValues()" and "resolveOrValue()" CURA-4358 Using the context for override the extruderValues() and resolveOrValue() functions, for getting the correct values. Also indicate in the context to skip the first container in the stacks (user container) --- cura/Settings/ExtruderManager.py | 77 ++++++++++++++++++++++++++++++- cura/Settings/GlobalStack.py | 14 +++--- cura/Settings/UserChangesModel.py | 5 +- 3 files changed, 87 insertions(+), 9 deletions(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 1c01b1fc8a..c8daca7f92 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -588,6 +588,46 @@ class ExtruderManager(QObject): return result + ## Get all extruder values for a certain setting. This function will skip the user settings container. + # + # This is exposed to SettingFunction so it can be used in value functions. + # + # \param key The key of the setting to retrieve values for. + # + # \return A list of values for all extruders. If an extruder does not have a value, it will not be in the list. + # If no extruder has the value, the list will contain the global value. + @staticmethod + def getDefaultExtruderValues(key): + global_stack = Application.getInstance().getGlobalContainerStack() + context = PropertyEvaluationContext(global_stack) + context.context["evaluate_from_container_index"] = 1 # skip the user settings container + context.context["override_operators"] = { + "extruderValue": ExtruderManager.getDefaultExtruderValue, + "extruderValues": ExtruderManager.getDefaultExtruderValues, + "resolveOrValue": ExtruderManager.getDefaultResolveOrValue + } + + result = [] + for extruder in ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()): + # only include values from extruders that are "active" for the current machine instance + if int(extruder.getMetaDataEntry("position")) >= global_stack.getProperty("machine_extruder_count", "value", context = context): + continue + + value = extruder.getRawProperty(key, "value", context = context) + + if value is None: + continue + + if isinstance(value, SettingFunction): + value = value(extruder, context = context) + + result.append(value) + + if not result: + result.append(global_stack.getProperty(key, "value", context = context)) + + return result + ## Get all extruder values for a certain setting. # # This is exposed to qml for display purposes @@ -622,11 +662,24 @@ class ExtruderManager(QObject): return value ## Get the default value from the given extruder. This function will skip the user settings container. + # + # This is exposed to SettingFunction to use in value functions. + # + # \param extruder_index The index of the extruder to get the value from. + # \param key The key of the setting to get the value of. + # + # \return The value of the setting for the specified extruder or for the + # global stack if not found. @staticmethod def getDefaultExtruderValue(extruder_index, key): extruder = ExtruderManager.getInstance().getExtruderStack(extruder_index) - context = PropertyEvaluationContext() + context = PropertyEvaluationContext(extruder) context.context["evaluate_from_container_index"] = 1 # skip the user settings container + context.context["override_operators"] = { + "extruderValue": ExtruderManager.getDefaultExtruderValue, + "extruderValues": ExtruderManager.getDefaultExtruderValues, + "resolveOrValue": ExtruderManager.getDefaultResolveOrValue + } if extruder: value = extruder.getRawProperty(key, "value", context = context) @@ -650,3 +703,25 @@ class ExtruderManager(QObject): resolved_value = global_stack.getProperty(key, "value") return resolved_value + + ## Get the resolve value or value for a given key without looking the first container (user container) + # + # This is the effective value for a given key, it is used for values in the global stack. + # This is exposed to SettingFunction to use in value functions. + # \param key The key of the setting to get the value of. + # + # \return The effective value + @staticmethod + def getDefaultResolveOrValue(key): + global_stack = Application.getInstance().getGlobalContainerStack() + context = PropertyEvaluationContext(global_stack) + context.context["evaluate_from_container_index"] = 1 # skip the user settings container + context.context["override_operators"] = { + "extruderValue": ExtruderManager.getDefaultExtruderValue, + "extruderValues": ExtruderManager.getDefaultExtruderValues, + "resolveOrValue": ExtruderManager.getDefaultResolveOrValue + } + + resolved_value = global_stack.getProperty(key, "value", context = context) + + return resolved_value diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index 2eb951f721..88218c2f1e 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -96,18 +96,18 @@ class GlobalStack(CuraContainerStack): if not self.definition.findDefinitions(key = key): return None + if context is None: + context = PropertyEvaluationContext() + context.pushContainer(self) + # Handle the "resolve" property. - if self._shouldResolve(key, property_name): + if self._shouldResolve(key, property_name, context): self._resolving_settings.add(key) resolve = super().getProperty(key, "resolve", context) self._resolving_settings.remove(key) if resolve is not None: return resolve - if context is None: - context = PropertyEvaluationContext() - context.pushContainer(self) - # Handle the "limit_to_extruder" property. limit_to_extruder = super().getProperty(key, "limit_to_extruder", context) if limit_to_extruder is not None: @@ -151,7 +151,7 @@ class GlobalStack(CuraContainerStack): # Determine whether or not we should try to get the "resolve" property instead of the # requested property. - def _shouldResolve(self, key: str, property_name: str) -> bool: + def _shouldResolve(self, key: str, property_name: str, context: Optional[PropertyEvaluationContext] = None) -> bool: if property_name is not "value": # Do not try to resolve anything but the "value" property return False @@ -163,7 +163,7 @@ class GlobalStack(CuraContainerStack): # track all settings that are being resolved. return False - setting_state = super().getProperty(key, "state") + setting_state = super().getProperty(key, "state", context = context) if setting_state is not None and setting_state != InstanceState.Default: # When the user has explicitly set a value, we should ignore any resolve and # just return that value. diff --git a/cura/Settings/UserChangesModel.py b/cura/Settings/UserChangesModel.py index d47468b808..93274d61c9 100644 --- a/cura/Settings/UserChangesModel.py +++ b/cura/Settings/UserChangesModel.py @@ -70,8 +70,11 @@ class UserChangesModel(ListModel): # Override "getExtruderValue" with "getDefaultExtruderValue" so we can get the default values user_changes = containers.pop(0) default_value_resolve_context = PropertyEvaluationContext(stack) + default_value_resolve_context.context["evaluate_from_container_index"] = 1 # skip the user settings container default_value_resolve_context.context["override_operators"] = { - "extruderValue": ExtruderManager.getDefaultExtruderValue + "extruderValue": ExtruderManager.getDefaultExtruderValue, + "extruderValues": ExtruderManager.getDefaultExtruderValues, + "resolveOrValue": ExtruderManager.getDefaultResolveOrValue } for setting_key in user_changes.getAllKeys(): From 6dc3b2904797b46f28536c34bbd8c4259a436566 Mon Sep 17 00:00:00 2001 From: Buco Date: Wed, 11 Oct 2017 11:51:39 +0200 Subject: [PATCH 008/218] Add Builder Premium Add definitions for the Builder Premium Small, Medium and Large printers. --- .../builder_premium_large.def.json | 118 ++++++++++++++++++ .../builder_premium_medium.def.json | 118 ++++++++++++++++++ .../builder_premium_small.def.json | 117 +++++++++++++++++ .../builder_premium_large_front.def.json | 27 ++++ .../builder_premium_large_rear.def.json | 27 ++++ .../builder_premium_medium_front.def.json | 27 ++++ .../builder_premium_medium_rear.def.json | 27 ++++ .../builder_premium_small_front.def.json | 27 ++++ .../builder_premium_small_rear.def.json | 27 ++++ resources/meshes/builder_premium_platform.stl | Bin 0 -> 1348084 bytes .../builder_premium_high.inst.cfg | 27 ++++ .../builder_premium_low.inst.cfg | 26 ++++ .../builder_premium_normal.inst.cfg | 25 ++++ 13 files changed, 593 insertions(+) create mode 100644 resources/definitions/builder_premium_large.def.json create mode 100644 resources/definitions/builder_premium_medium.def.json create mode 100644 resources/definitions/builder_premium_small.def.json create mode 100644 resources/extruders/builder_premium_large_front.def.json create mode 100644 resources/extruders/builder_premium_large_rear.def.json create mode 100644 resources/extruders/builder_premium_medium_front.def.json create mode 100644 resources/extruders/builder_premium_medium_rear.def.json create mode 100644 resources/extruders/builder_premium_small_front.def.json create mode 100644 resources/extruders/builder_premium_small_rear.def.json create mode 100644 resources/meshes/builder_premium_platform.stl create mode 100644 resources/quality/builder_premium/builder_premium_high.inst.cfg create mode 100644 resources/quality/builder_premium/builder_premium_low.inst.cfg create mode 100644 resources/quality/builder_premium/builder_premium_normal.inst.cfg diff --git a/resources/definitions/builder_premium_large.def.json b/resources/definitions/builder_premium_large.def.json new file mode 100644 index 0000000000..e7a5b9c24b --- /dev/null +++ b/resources/definitions/builder_premium_large.def.json @@ -0,0 +1,118 @@ +{ + "id": "builder_premium_large", + "version": 2, + "name": "Builder Premium Large", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Builder SZ", + "manufacturer": "Builder", + "category": "Other", + "quality_definition": "builder_premium_small", + "file_formats": "text/x-gcode", + "platform": "builder_premium_platform.stl", + "platform_offset": [-126, -36, 117], + "has_machine_quality": true, + "preferred_quality": "*normal*", + "machine_extruder_trains": + { + "0": "builder_premium_medium_rear", + "1": "builder_premium_medium_front" + } + }, + + + + "overrides": { + "machine_name": { "default_value": "Builder Premium Large" }, + "machine_heated_bed": { "default_value": true }, + "machine_width": { "default_value": 215 }, + "machine_height": { "default_value": 600 }, + "machine_depth": { "default_value": 205 }, + "material_diameter": { "default_value": 1.75 }, + + "infill_pattern": {"value": "'triangles'" }, + "infill_before_walls": {"value": false }, + + "material_print_temperature": {"value": 215 }, + "default_material_print_temperature": { "default_value": 215 }, + "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, + "material_standby_temperature": { "value": "material_print_temperature" }, + + "switch_extruder_retraction_speeds": {"default_value": 15 }, + "switch_extruder_retraction_speed": {"default_value": 15 }, + "switch_extruder_prime_speed": {"default_value": 15 }, + "switch_extruder_retraction_amount": {"value": 1 }, + + "speed_travel": { "value": "100" }, + "speed_layer_0": { "value": "20" }, + "speed_prime_tower": { "value": "speed_topbottom" }, + "speed_print": { "value": "40" }, + "speed_support": { "value": "speed_wall_0" }, + "speed_support_interface": { "value": "speed_topbottom" }, + "speed_topbottom": { "value": "math.ceil(speed_print * 20 / 35)" }, + "speed_wall": { "value": "math.ceil(speed_print * 30 / 40)" }, + "speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 25)" }, + "speed_wall_x": { "value": "speed_wall" }, + + "prime_tower_position_x": { "default_value": 175 }, + "prime_tower_position_y": { "default_value": 178 }, + "prime_tower_wipe_enabled": { "default_value": false }, + "prime_tower_min_volume": { "default_value": 50 }, + "dual_pre_wipe": { "default_value": false }, + + "prime_blob_enable": { "enabled": true }, + + "acceleration_enabled": { "value": "True" }, + "acceleration_layer_0": { "value": "acceleration_topbottom" }, + "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_print": { "value": "3000" }, + "acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_support_interface": { "value": "acceleration_topbottom" }, + "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_travel": { "value": "acceleration_print" }, + "acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 1000 / 1000)" }, + + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "cool_min_layer_time": { "default_value": 10 }, + + "jerk_enabled": { "value": "True" }, + "jerk_layer_0": { "value": "jerk_topbottom" }, + "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_print": { "value": "25" }, + "jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_support_interface": { "value": "jerk_topbottom" }, + "jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" }, + "jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" }, + "jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" }, + + "wall_thickness": { "value": "1.2" }, + + "retraction_amount": { "default_value": 3 }, + "retraction_speed": { "default_value": 15 }, + "retraction_retract_speed": { "default_value": 15 }, + "retraction_prime_speed": { "default_value": 15 }, + "travel_retract_before_outer_wall": { "default_value": true }, + "skin_overlap": { "value": "15" }, + "adhesion_type": { "default_value": "skirt" }, + "machine_nozzle_heat_up_speed": { "default_value": 2 }, + "machine_nozzle_cool_down_speed": { "default_value": 2 }, + "machine_head_polygon": { "default_value": [[-75, -18],[-75, 35],[18, 35],[18, -18]] }, + "gantry_height": { "default_value": 55 }, + "machine_max_feedrate_x": { "default_value": 300 }, + "machine_max_feedrate_y": { "default_value": 300 }, + "machine_max_feedrate_z": { "default_value": 40 }, + "machine_max_acceleration_z": { "default_value": 500 }, + "machine_acceleration": { "default_value": 1000 }, + "machine_max_jerk_xy": { "default_value": 10 }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + "machine_start_gcode": { + "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E15 ;extrude 15mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\nT0 ;Start with Rear Extruder\n;Put printing message on LCD screen\nM117 Printing..." + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" + }, + "machine_extruder_count": { "default_value": 2 } + } +} \ No newline at end of file diff --git a/resources/definitions/builder_premium_medium.def.json b/resources/definitions/builder_premium_medium.def.json new file mode 100644 index 0000000000..bb2b2eb0a8 --- /dev/null +++ b/resources/definitions/builder_premium_medium.def.json @@ -0,0 +1,118 @@ +{ + "id": "builder_premium_medium", + "version": 2, + "name": "Builder Premium Medium", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Builder SZ", + "manufacturer": "Builder", + "category": "Other", + "quality_definition": "builder_premium_small", + "file_formats": "text/x-gcode", + "platform": "builder_premium_platform.stl", + "platform_offset": [-126, -36, 117], + "has_machine_quality": true, + "preferred_quality": "*normal*", + "machine_extruder_trains": + { + "0": "builder_premium_medium_rear", + "1": "builder_premium_medium_front" + } + }, + + + + "overrides": { + "machine_name": { "default_value": "Builder Premium Medium" }, + "machine_heated_bed": { "default_value": true }, + "machine_width": { "default_value": 215 }, + "machine_height": { "default_value": 400 }, + "machine_depth": { "default_value": 205 }, + "material_diameter": { "default_value": 1.75 }, + + "infill_pattern": {"value": "'triangles'" }, + "infill_before_walls": {"value": false }, + + "material_print_temperature": {"value": 215 }, + "default_material_print_temperature": { "default_value": 215 }, + "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, + "material_standby_temperature": { "value": "material_print_temperature" }, + + "switch_extruder_retraction_speeds": {"default_value": 15 }, + "switch_extruder_retraction_speed": {"default_value": 15 }, + "switch_extruder_prime_speed": {"default_value": 15 }, + "switch_extruder_retraction_amount": {"value": 1 }, + + "speed_travel": { "value": "100" }, + "speed_layer_0": { "value": "20" }, + "speed_prime_tower": { "value": "speed_topbottom" }, + "speed_print": { "value": "40" }, + "speed_support": { "value": "speed_wall_0" }, + "speed_support_interface": { "value": "speed_topbottom" }, + "speed_topbottom": { "value": "math.ceil(speed_print * 20 / 35)" }, + "speed_wall": { "value": "math.ceil(speed_print * 30 / 40)" }, + "speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 25)" }, + "speed_wall_x": { "value": "speed_wall" }, + + "prime_tower_position_x": { "default_value": 175 }, + "prime_tower_position_y": { "default_value": 178 }, + "prime_tower_wipe_enabled": { "default_value": false }, + "prime_tower_min_volume": { "default_value": 50 }, + "dual_pre_wipe": { "default_value": false }, + + "prime_blob_enable": { "enabled": true }, + + "acceleration_enabled": { "value": "True" }, + "acceleration_layer_0": { "value": "acceleration_topbottom" }, + "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_print": { "value": "3000" }, + "acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_support_interface": { "value": "acceleration_topbottom" }, + "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_travel": { "value": "acceleration_print" }, + "acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 1000 / 1000)" }, + + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "cool_min_layer_time": { "default_value": 10 }, + + "jerk_enabled": { "value": "True" }, + "jerk_layer_0": { "value": "jerk_topbottom" }, + "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_print": { "value": "25" }, + "jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_support_interface": { "value": "jerk_topbottom" }, + "jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" }, + "jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" }, + "jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" }, + + "wall_thickness": { "value": "1.2" }, + + "retraction_amount": { "default_value": 3 }, + "retraction_speed": { "default_value": 15 }, + "retraction_retract_speed": { "default_value": 15 }, + "retraction_prime_speed": { "default_value": 15 }, + "travel_retract_before_outer_wall": { "default_value": true }, + "skin_overlap": { "value": "15" }, + "adhesion_type": { "default_value": "skirt" }, + "machine_nozzle_heat_up_speed": { "default_value": 2 }, + "machine_nozzle_cool_down_speed": { "default_value": 2 }, + "machine_head_polygon": { "default_value": [[-75, -18],[-75, 35],[18, 35],[18, -18]] }, + "gantry_height": { "default_value": 55 }, + "machine_max_feedrate_x": { "default_value": 300 }, + "machine_max_feedrate_y": { "default_value": 300 }, + "machine_max_feedrate_z": { "default_value": 40 }, + "machine_max_acceleration_z": { "default_value": 500 }, + "machine_acceleration": { "default_value": 1000 }, + "machine_max_jerk_xy": { "default_value": 10 }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + "machine_start_gcode": { + "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E15 ;extrude 15mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\nT0 ;Start with Rear Extruder\n;Put printing message on LCD screen\nM117 Printing..." + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" + }, + "machine_extruder_count": { "default_value": 2 } + } +} \ No newline at end of file diff --git a/resources/definitions/builder_premium_small.def.json b/resources/definitions/builder_premium_small.def.json new file mode 100644 index 0000000000..19fd3524cc --- /dev/null +++ b/resources/definitions/builder_premium_small.def.json @@ -0,0 +1,117 @@ +{ + "id": "builder_premium_small", + "version": 2, + "name": "Builder Premium Small", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Builder SZ", + "manufacturer": "Builder", + "category": "Other", + "file_formats": "text/x-gcode", + "platform": "builder_premium_platform.stl", + "platform_offset": [-126, -36, 117], + "has_machine_quality": true, + "preferred_quality": "*normal*", + "machine_extruder_trains": + { + "0": "builder_premium_small_rear", + "1": "builder_premium_small_front" + } + }, + + + + "overrides": { + "machine_name": { "default_value": "Builder Premium Small" }, + "machine_heated_bed": { "default_value": true }, + "machine_width": { "default_value": 215 }, + "machine_height": { "default_value": 200 }, + "machine_depth": { "default_value": 205 }, + "material_diameter": { "default_value": 1.75 }, + + "infill_pattern": {"value": "'triangles'" }, + "infill_before_walls": {"value": false }, + + "material_print_temperature": {"value": 215 }, + "default_material_print_temperature": { "default_value": 215 }, + "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, + "material_standby_temperature": { "value": "material_print_temperature" }, + + "switch_extruder_retraction_speeds": {"default_value": 15 }, + "switch_extruder_retraction_speed": {"default_value": 15 }, + "switch_extruder_prime_speed": {"default_value": 15 }, + "switch_extruder_retraction_amount": {"value": 1 }, + + "speed_travel": { "value": "100" }, + "speed_layer_0": { "value": "20" }, + "speed_prime_tower": { "value": "speed_topbottom" }, + "speed_print": { "value": "40" }, + "speed_support": { "value": "speed_wall_0" }, + "speed_support_interface": { "value": "speed_topbottom" }, + "speed_topbottom": { "value": "math.ceil(speed_print * 20 / 35)" }, + "speed_wall": { "value": "math.ceil(speed_print * 30 / 40)" }, + "speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 25)" }, + "speed_wall_x": { "value": "speed_wall" }, + + "prime_tower_position_x": { "default_value": 175 }, + "prime_tower_position_y": { "default_value": 178 }, + "prime_tower_wipe_enabled": { "default_value": false }, + "prime_tower_min_volume": { "default_value": 50 }, + "dual_pre_wipe": { "default_value": false }, + + "prime_blob_enable": { "enabled": true }, + + "acceleration_enabled": { "value": "True" }, + "acceleration_layer_0": { "value": "acceleration_topbottom" }, + "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_print": { "value": "3000" }, + "acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_support_interface": { "value": "acceleration_topbottom" }, + "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_travel": { "value": "acceleration_print" }, + "acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 1000 / 1000)" }, + + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "cool_min_layer_time": { "default_value": 10 }, + + "jerk_enabled": { "value": "True" }, + "jerk_layer_0": { "value": "jerk_topbottom" }, + "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_print": { "value": "25" }, + "jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_support_interface": { "value": "jerk_topbottom" }, + "jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" }, + "jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" }, + "jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" }, + + "wall_thickness": { "value": "1.2" }, + + "retraction_amount": { "default_value": 3 }, + "retraction_speed": { "default_value": 15 }, + "retraction_retract_speed": { "default_value": 15 }, + "retraction_prime_speed": { "default_value": 15 }, + "travel_retract_before_outer_wall": { "default_value": true }, + "skin_overlap": { "value": "15" }, + "adhesion_type": { "default_value": "skirt" }, + "machine_nozzle_heat_up_speed": { "default_value": 2 }, + "machine_nozzle_cool_down_speed": { "default_value": 2 }, + "machine_head_polygon": { "default_value": [[-75, -18],[-75, 35],[18, 35],[18, -18]] }, + "gantry_height": { "default_value": 55 }, + "machine_max_feedrate_x": { "default_value": 300 }, + "machine_max_feedrate_y": { "default_value": 300 }, + "machine_max_feedrate_z": { "default_value": 40 }, + "machine_max_acceleration_z": { "default_value": 500 }, + "machine_acceleration": { "default_value": 1000 }, + "machine_max_jerk_xy": { "default_value": 10 }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + "machine_start_gcode": { + "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E15 ;extrude 15mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\nT0 ;Start with Rear Extruder\n;Put printing message on LCD screen\nM117 Printing..." + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" + }, + "machine_extruder_count": { "default_value": 2 } + } +} \ No newline at end of file diff --git a/resources/extruders/builder_premium_large_front.def.json b/resources/extruders/builder_premium_large_front.def.json new file mode 100644 index 0000000000..159682dc1c --- /dev/null +++ b/resources/extruders/builder_premium_large_front.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_large_front", + "version": 2, + "name": "Front Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_large", + "position": "1" + }, + + "overrides": { + "extruder_nr": { + "default_value": 1, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/extruders/builder_premium_large_rear.def.json b/resources/extruders/builder_premium_large_rear.def.json new file mode 100644 index 0000000000..5e9cc062ae --- /dev/null +++ b/resources/extruders/builder_premium_large_rear.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_large_rear", + "version": 2, + "name": "Rear Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_large", + "position": "0" + }, + + "overrides": { + "extruder_nr": { + "default_value": 0, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/extruders/builder_premium_medium_front.def.json b/resources/extruders/builder_premium_medium_front.def.json new file mode 100644 index 0000000000..9a330b4f4b --- /dev/null +++ b/resources/extruders/builder_premium_medium_front.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_medium_front", + "version": 2, + "name": "Front Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_medium", + "position": "1" + }, + + "overrides": { + "extruder_nr": { + "default_value": 1, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/extruders/builder_premium_medium_rear.def.json b/resources/extruders/builder_premium_medium_rear.def.json new file mode 100644 index 0000000000..49d4734306 --- /dev/null +++ b/resources/extruders/builder_premium_medium_rear.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_medium_rear", + "version": 2, + "name": "Rear Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_medium", + "position": "0" + }, + + "overrides": { + "extruder_nr": { + "default_value": 0, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/extruders/builder_premium_small_front.def.json b/resources/extruders/builder_premium_small_front.def.json new file mode 100644 index 0000000000..2e6293d153 --- /dev/null +++ b/resources/extruders/builder_premium_small_front.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_small_front", + "version": 2, + "name": "Front Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_small", + "position": "1" + }, + + "overrides": { + "extruder_nr": { + "default_value": 1, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/extruders/builder_premium_small_rear.def.json b/resources/extruders/builder_premium_small_rear.def.json new file mode 100644 index 0000000000..d1606cdd79 --- /dev/null +++ b/resources/extruders/builder_premium_small_rear.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_small_rear", + "version": 2, + "name": "Rear Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_small", + "position": "0" + }, + + "overrides": { + "extruder_nr": { + "default_value": 0, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/meshes/builder_premium_platform.stl b/resources/meshes/builder_premium_platform.stl new file mode 100644 index 0000000000000000000000000000000000000000..b315d4b6d4720b7dc57123ae214a0f5c286bc55f GIT binary patch literal 1348084 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�hbTgf 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�oy?S1LD=wVvF zLIS;v*#xH!o?-v7U3ps&tzV%9iN{aVnb&H4#-OYun+DsD)h}!-OY2uipjY+ybmqB4 z&lyMxO%FcUyG*y*u96Dv)jMe{{|5cH^QebuZ0I)q|3KYI=`8wZ{+v&mlwfZf{kiQH zsnDVYiC%8$tms+(kA<{%?4-S8Q?+-HK(8es>8$%7{HZ1F9Xo07*i;o-v>@SIIGt^| z$p1%?_KuyjcWkQm4if0~XSa0r_AY;FNqa{o?H!w{y@M7cPI#oVi!}S>Xz$3Ry<=0g zcaT7@OO4Xm&=>rv{i(xM`{{C`Hj84-ag1TBlOn00*uM~(+ont;E+*=Ca-0FF_7f{_-4em6bs zsmpJRzmgsRT97b4=gWHp+ehV%5z8MPX&}%GGkwxt&H>@}8rxTiQLYmWIY5yxW(_?M zvD)6Q*+%h)3gZm~di~jpvJBGiApIX?|LFPlcKw%#9Y_xVEl6ONQb8zCHNRYa#APu* z=~-fyQ_Ox^pj;}u@rJKol{>XizO&ui=1=QaOP*0))G7M!^RbswSegF%tQK)Oh3%(# zSKoj2>(@)=Lhakz8q)d|T97z-Fog}JoTIvez`ONpJ`{@30eCa;RGXX`Ygxq=oX`qfHhQ^WOtmh^n| z9w=XJ=V5#4(ZN8V7q+1wJig~6_iR@Wz}QG_<^T3P>W>-pO{D$*Slxc3-2KiV zTdSK7Wo$*HFKtg@*XcRmb3$G5Y7x3we(E#GHtM@aGFp%@#;ACGr+lMHu&rQ|Qw9RP zs;o+39;^5aH)Fy&xkB@9wo>%_3d@c$j!aBpZo?v-ZyM(Ov|PUL;$xfHxtxL)B(P@% zA#mbiSw7s{R&3K}1_HgV1*EV_w1S{&ND0D`wM?#*@KzL>1S;L@rLb-p`dV=+U3bjX z*Vv7HUh_g<`IWD$?JVuaMGF!GyQi=M4QW(rD*ta9hREG&ma?rc)Y(9w7nYE+jCs$N z|1Md>Hg#)T!$?HJZ7{ViWewKfZC`&hPoD2t$JTnLakQhCvF3BSG?X){UlaTP9$~0C z)@i<53fp>~uh4rv%qLeavtRuE=qLp(NEqjmvnj9ay&lXJlP^s)5a=}^F`1?BUoHM8na$a&uV3AYPiDXD(buoU5|l^viwH^2w>@b6O?!vkBgN;meuekK z7)X;w%Atk!cb-+nUupdcEl5PSPh~~+^BAmqS$o5Q>$UYOB+$!Ps$xsa$q$NsCsutw zR>``Q%)UDuA#Hwg%)7(gWOj9@KG**B6@4BP;arU>@>O~H%9O>TE3HPM1&I=Sl335~ ze5Q`*Ajva(9u&tN8*U)bt6$G#X8%Rcsw@brF9yliU!M@0PZ_G91&OH??{)X2- zZNBV%^@X@F#@9fgSM@5%Ec1$<#aR%By}l@Knp(q_Fol$dXC<*<`esq{80?NtVuK#( zZyJ2+C9%oWy818V*#~3fpgI+7RmU|~(1OGP%HMF|0e{nQ)aRhwtX2WruT?u32=u}d z(l3Awo8)_a+-y-Zx+!QuVo1Sc=6{{PX{dX2g=`<2DBk<5zkxt6W6dRxOY)}MWo%t& zhiPchB=&f_{;si3@g&xc#<9Bh1M4RUA8%fhXO*sGJ6gJdp&m#aD4oROX_QnPq|khI zu*xlY%Vkenfnzlc1bShs(|NU;kL0>V8re2nEp6xzBrG0D?5{r}a+RiJQkt@g|* z^cohP#6EoBZ;?r9N+zW#ZGQ<`kf>TQiEX0QXlMSxIv-?GnzE_6Ado<>gPoJu?09;s z&y}WRQkt@gY-LadU+7Cn#1Rhp7XY09Q5O(B6^^=l@vceGNhD@`Tm|5^U4Lvh=4 z(gVOA#9k{>Fo~tCq*+Ou+mFmSENAVq*#03s0JI>1<4q83@)r5WW3R-|>HP;1=yfE%1oOpuW5Knj3GS$v>-8#>T%IO zLesn>#jLbda=-4^#O0(1fCPFOYyKkTJ9&GlbzX)%3P zEAky>oEpJ1zqd+WDqkzOS*%==cJF`%i6fm7S#r?`Ns-i*yR{?3<(-RXh~ops8VL0I zaaAH){+!3?n`frHrSw{HQp*tvT9BwVDUsDK%;)w+y=D2URkB#&)L=tBc6%hSmQl3F zFD%*{OGxinT&~NzM_d=h54{w$AaSZp0&8|QWlJU|+zXhGs|assWbE1_Hf|HLo!$pK|niKAS|l^srQoDI?!1+8d?jdc_u@-3jZ8C{<<^ zv(2DgdT2pnQ^5q*GcDY?bGbxhDJ9P?58Gd~mVpF%P3@Gx##G_6Xfw)d>2kG#P2IVS z79#uHnudzXc0_Etia)B5t5HeI(Ee zXADw~T>OKa&}Xf9m)7*rf<)P>l*4U7xO2zvy2i*A9eNpcgIe|vyc~j$L|^OlH4X@hFE1r zsFHFrj`fKMlMa_Z;awvtj=h){rk%8r`%=zXcYWp)gm;zi%1we7iXGYpDriAs;m$br z^efuAtd(k8%MWrwgS8@i)!#s%SF;6i%<}~8?AN~48f>hrw0v<_d`UBd*X}qrt+Kwq zHQ_}ZvsTl0$F7+c$AV}Vv!2I&+0N3+^n+Kly|rjT;^(9|7EiRU=@f9hg!02&MJ!1( z0}|+EEY-^Ug_Zq*=f!mqRs}6ctS%hSEH%QVg;UfM3fJPY<$;$DiJ{B78VK~lHWY+e zLV}!p{zuVqw}+vvkZ|>iXJtM4e(C``p2>OG9?_HZ0PtSu^;@ra=2naEfs8+1RrxjS zx_FRQQnBW3CdaW!f6xgIntia<1!3+&(liWxB#N|y4lPK`4~b)^;=*z@ofOh^5>-tn zB+#q%(m2+p65k_CnobI7I*DpNdbA+X&!0v~dRVTelR}zKqN?eH1bP)86US02@IAt$ z>7fSdBbxxofOh^vZywnu?7OY!Y;#&o)h5~}^a>eVccRVb^UR(KX1$5tHI&tuUq z%QHQdi7ETUN>>tPw|WjX;-66MOw3-JgRP4Tl^QHQ@14XPEX@(>T=oB- z5fro_k+&n|CXWwwt|#7}?5$jFuvLuvu9Sg5uU5+)Y`_zKTK1a|FXij&o5WY77K#=m z-UK_?$>dP&+!UQeTH09I7_>$lPimoPskYIXuiOA3WKPlo*% z;iBxVJ5)SF3Ia$R1F!9r!G2@WFz4wr()UqF-$zvSeLTuL*seRF+UfUdc^qu*YyCtn z_N*X8H|nd5Ui*XiH9fURpx1d%2kU$})Oot!{YX#cr<5PWR8k8?3lcaM=&k;fF3R{m zTSafm){F#t^=n8aJRj;*DVTUkRQ5JqFaAZ@n$dy;wmN-t(phT%t4qZ4q=bM3dbRH3 zV1YYAH5~;y%`r7rURb=IxSdu9>uh$g#zCRlsqreC9IR4ssCL>OTb=gFGD`ihy;2WYrgaBEjfRuGU7{G9mJYr35WdYV9)D@I?w9Ir|p-& zYG)Cv(OG@8AYq(K8pSP?`!zUfEk*f)0>|$1kb9Jz6t;urfQroRZNi7ubg)xw(Jnl7X%3YR6SQ~#n zT|o;Hjqb-WUus=_1#&>|DEp~aG1}QzB+$!PD!+T{?&Bu7m9z9pcn_Sy9_n@tXFRb>dIH z1_Hg7Hgd3K4??6Jn%2w8&0fmOKMIL&NeLl(Lo5qBsw*KpxE{+UpVO5PEazg`tH~kG z)j<#6rixc|eleWXLeYZ6$w#rQ@2^}5VbATV%7MgZ)>D-`7zp&j64K60m$Hi2^muDs zQVT^35`!u^*z~(x38BKh0!pO)g|#-Rg(87o#+v6{Jwj+Sz+NRiQkMBRC@Y}x)0>8os& z`0UR?%9YPcikCB86(rE>*~D13ZBB^vdYwuvxYSPxSy5i>T*zHP3lcaM=uKR=zRF9X zm{>f$pn*WI9y4ND=nPT{`CHY$>L_+nCY;SDhE%SkpalsWJ#<2$EmH!%jkPu?Qqw@7 z*Z3W=Y|)SqDXxr~edtE%mP#M-u667CCJI`R*c2VhZuy2tBS)&)3X+~RR-RVAVjb6^ zm4X%|_RFy>b|4XjRHEtBs>;j`XRS9fJ1A&D0>>L=5*Sia>1*9)UD~ggfk3Zcvtn6` zW+9UMXmu~no#}JrLjPR$nnij51HX2#8_$BZ|K|f2IN0JB!BQU5U&d#iM#=DX@@GY} zy}DMIpr8ebOPw4n*gZs=7=4^#461TYuH)XvdSdGNtoe@ zLSl1Sn&)eVNTuhgD|cJ`T$R1we`RfP)XzYmm$Bw~8{d(W-p`6DF=MFmbrA=<>!zz# zdFFF4*L}L?)$v6RcGg|j!V-jT>n_PtPW5ZI#ACRE79;}d&WfxxyG{Ol zUQ*jX(#9DG^zxtMV0}*U7!hfw<)0P}_o`8Dl!6u{ere)h8|}JUmmma8D5$(TeKTgk zw*w6IDEDhDE9pu-82ytsmXH+Xf-5ThcROP0FYThB1&Nt^V%Z;sf}JC=dh;?$tJ5W7 z7Io=qAkgcV$FWRW&vm@q&)bwz-^IjSp`CzTLSotWP+hO<j3x6klzxGLB68I_fPj73W-$uX2{nt*g1<9uQEt!RPIj9Gnz&5Ug+h~jlNL_ z2Rmo#m*@PH6=jOsFVRem79_5Ard9MFl9+#X?v&j?_{(fvA9hvyWTR``K=c4%@<1C;QaQGe!m+C^lDx;mbL3hidpoX zNHg5y(aN|hrR-VvkH~02;(fVTRz%{eTvD4kvb-TZW)tly&a>6Qx*ZPEX1GB5cen3I zkT%2N(<}&2x~`MUR4rupFF(QX)FRQjmxHzbBgi?!?Jj#>{t#c>{$TD11A$&R#|T2! z{kQT|OI!QmhGB-M7KuZp9jwLkAm%&o&PIwgbzdVTh_AbAh))1DhT``W#%m3BaAt&0{U z{yry2E9^W5?c}i1P7bYgkwC9*O9W{i>{M^9yzuaF1@qO+x!@xG9k1uw z!ki6)Fs~A+ehnTgR~a{6K?@RvSJGL_G#=x#+b^yCYv+*%(AY%+y)erIY2%i@Yu(_; zuhj!BNL*RwBHgAK>RS#vKUlw?wY7Dj)>cTMSDqepa%1W z8cbJ^KrdqtUiL2~UP@mg$B!PbpalucoJJ@0QhJLe-ZhXz&rLGq&A?nBm=S~au+Xpk z);*utYta*h79@l2NTklT zNV`d~S0B5H(G5h8pms6pxl|<3YdxtE9Ih1XY~8D+eipaJud`nKakzrYnqw$KLGzjV zx)|!w2||-^H;6aC`NG^(i8n_{m8*A%GsfO^^~E1qA?tuf(+vcAp@JP{wF;;& z{?_{!FSQ`(5X^&T(z1E`cOj{j90=?FZw@40&uUTH3P+#0`J@1u=VxR>H)Myoi z9m+v#iE-_{)F%oF^um@FgqZIeiOCH@z0`4q79>z{m43rDYb+++oP9cr#x4@*W$eLq zJvWOzYE+B~8#`V>3lgY8O?qT~R*Mr~J+($1pdIm`35Ys}sP;$yYp>N5n@^o)?LzYv zT97d64t{y4is*jnTdP`gB+v^r!~~(Cw88qz>Cdcc>!JmT3Y4j-L8UO~Xm2;NjJV5s z$m&Yp21uY6YN3&0@0wNCI`)=U^@&0Y676TZO4)mPjQ*oainBUJYir?1pw}AGTRXav zl-RUiuX7*F6AvD2BvzvN3N^^k3pI;KW%GOqaqF`4*59dh(SiiVqxWjEyEt;^Us~%T zfnKOtL@Qpc=UJDh57$~3El6}AMW8Va!kw*KbX%6S_4W_eLG*kefnK$$yGol#JxTvX zHtYH%>o1>=)>;=WNPN4^McTcc$N2U|n$`2`c&&AjK(EFWwBODVYA0E>yV*k z#kVwekw7mzQ%`5&T+dn8e_u@7PmLBNP&J0s*!SD4-yK@6wG|TRb+3|(l*gU#j()xG zytPvKVqyX6540eGIy3Y=xUZ9S<=jy~e`t@~-dLIS;vJvef^pLn82xcKv!@d{dyKqW2uExP=Uwf^44V&2pV2F(FfUO+Vg zI(Ii}wsk`Hnqo_OqR@hbQ3+woH+`+$-D_(#M*_X@9JC<3KCsVgecgRp>!JmTDTlJy zY0`txzn#xMEM{HkT~};R^A!^4g{QOW|6sKdUfcWa(MAbckk~LJlSL)+81u*d>!&>X21&J7s43?bDYwpw4<8=E<4aM2? zd?0~d#n*gfu5_A1pRaBm>vB5e=Y3l1q6LZhSJK&>6dpq!dhPU)>;_uvB7t6KR)1v6 zym{*mpYq!7-&zqr(7$aw4d!+|m5m@R95qWJo`?{HW@V1r3%^_|&Zd9cXhGsh<1}`L zl#TQrygs6b{oa(?;sSbVkw7mzLm>#XCS#{H8Lb{@LE?P#G`5D6TlBV~b)Oho_tDx4 z3G~|e6`fK2i?>ygUuxJ_bgm~~^5PK)x9@1r+ z_`2aF!>JTJX@loY=uJbOO?F3GC9y6&QD{NJc=BcRio^EDM*qlv z0noaSoz{J{k%$C(<$aOJCem(veY8($*I5p@K0*AJ<}2L)jb6B4oU#=ZdSoB9D?e#k zPB-i%M*`ys!d9;Yd*2sX+V3m87kc4-SV6d2e~$gqxG`Gmq6LXoNeQgIjn_PAk*j=V z{7dUWdOnaqFWlEFsQFUulrL3lU9=!^f%evJm-(+(%KIu)-dFAS6%y!Gg?29gMtg_# z)?NSCF}X(Fx?(MwuW)}_=&(38s*0|ri+eN#!S(oZ`O9E;@htuSKnoHzZ^f~{8}VPr zZzffdErr%tYtwv%1bX4F4%!zUS6-$y8Lb{@L1N0EacogzUG-R7_p#HukJeU5pcfkv z&j!*iJ^kBx^@DQq&bPa)^{GG5f&}jI6NH<;ue1N{-azYfB+v_6nnp>jQu2{)vNo>J zf&}hWq__Gh1>}^%_pDWEzCr@Mj6K-3*;M)EVM#ne|3A=z1n!h3)ri?MW#9M})=s@9 z8}`ZI-XGinLuw>)9a*XFZS|xl3N1(&_u`x_USHl;q^wqRB+v`rdD9Mv?g#DNhxu#& zw$Xxwhi4qS>&O4mhrO&X*Sx;b>u;K`kU%ed6R)kX*lC5Oo%(+eEl6x}i(^-h!wQQ` zD=gZ|1QO`=&wK~#_mr=&#C6&%e>QTo*HD_T@clA+;rnQMM_;S4e4%71uYuIMXh8zw z(J%d~jpgn^BTuWp+mS#oj(Ss-Ve0ZL9`&jR?vKPk*~d8Tu@Wq78q{-oLUzN^eWvl zj@_THXMNOiLD(r5gx0!fK_bgNo(*fjV^B^DnQ~g#)m1el(5pf7IQIKIzV=%7yB)Ic zvIw~gtqzW;9M8H}(zC-Bs29&3QyymZ*Q=Xr0_*ig&%I5ngFWZU!yYu#@@=C9i6kkW z^%>1q&#P@OD$o6J*$Kte(+VTlcZk zx{qCb&XGW`WxM0qw)H&5`zs~oNu5vG^HN)(1&JrE<5{68Jb&$sJZtPf+-_r6pC}~I z3tO7BUa~#p@5lY1jVrVu@n&@#+fR8$_4iTp&s3K$4O(cwMc)QUpqH@+M;%-(`+CIM zOVYP9T9BxpCyrI`9q2qET_)ckxpTuoa+UrQlyD`1#r5)+njAXr{qvawR%3>qH-65$ z1U795?{j5(y1nA~RJ)CyD6}APjZOo$TEpMO1$KFDA2Y#CR-Y&&(5pmzA`3|5Z{l7o zA7n2(aEaEsXhC8hqZ7cjc?@gi-|aQs3d_~iU$1a4^eVM3i52^azfq($89S}XXrlxz zNL=in%z=4&6gAC+u+MXNi6>y{f#Sn zzUYoaWYRUHY#shzq2hr-_&=KjZ=?Y(M*X`r3>1@C* zUu~D~skR^4sk6S$Cu;RRPy5i!jq*$Sw~ZDgwiHZfd2aFD3AMd<#|ZBm$|q^;B7t68 zrH{yXr z>bnXf?H}^gk{8l^g#>yTdoZNkpZ4l6zm=!bziqT2apYwR+nea?oUf{EjI)k-F-KlP zry3&`2~xp+e%jf`95Vi8PVpwM{Z818qtD8Mvx%6XZbpJU{^Sn zWnI~5n;iOVjDbKe+(jY?72XsQ3r)EsA0|aov>@?eST<{LhR0}HCc%2|_bYNZvrEW2vE?1#Jb_x%tiKS zo&#E^>Q3iGeNTU6rTgkij<|M4`R*pYiMBM17DM)pGOVg0fy!^R&ah&D*Q^EyM76E( zUg(8ufPzrP)7^UO@NH3TE3_bi3U-3fU_yZP`T2VOj(Y~b) zrDbu#9=R1|&qfOpj#4RXcYZ(TxElSUtQ>V=gEp>^KrfuZNe^IeS2;Q=MjKaXLE^U? zNvuo&k1_8`pu9Hnq&%D23JLTI`6-EYituxet4o!?mcOg=RG!(wPeBV3ch4oUvpxN! zb3dqiovZe%txSFFZ7Z~DOBDZC)Vx^@AAYT_A>zLmBY`_*Iib?HGuKF<1qt&QNT3(~ zBQwUpQsF*SjAta!f&}hpH7C#ucg-3JwBY_-jBO;)f&}hvH7C#u_o^BR+!xBP)gHus zq(%ZQNMLEr3G~AKutowcNEqu;Wp8<9=$URxde|OM+=q()Kl!yZ6wfw1nz+~C(z5h=Gf2tT2+L>*yb^iz&*+41bX34 zX(NFa+_U}PN`(aODmTW!d!d)H2h~wXW6O5Pdu9}_M&PZp`qc6jB)!j(KnoJ*w#2du&jX#B17-wz1)QW4ZVv;UN(g3z zoz5$Dq?I&PBV!yrABWEbIu$mM@cGffM(qrgUSB`qJ(JdS{Z<8PC;G9p#+suAiNBh} zvD*s*ota`W1`_DSKiA)-B7rsZyAaFX-4E2XB{=baw=NQ$3OHEggk!aX<+&3eHHkb!zx2&Yg4));J0Ow4N zG0=j9u^uTA;c~uZQGh%YF`+ec1=QmpaqF*q{$JsCO}gf zGbhjsOK2ppyl=mcW3A@X8w^r@!q`RvEl9jwAICDj3UKOQnbiZmaJ*4=E*gbIiKP-_ zcH%n^e8+-sYm5YzieIZ^3GZYi(1Q2nv_7t|RA@n>Sjl+yrCWeg8PAMBuc1Zg=}Px^ zX4ORkEr+t=SnOSYP4fz48|#4~W=W1s~IV?DOLnh{ey zb(Yfk{7ujLF$rw!ENXXJ9lT9%eumJsI!gGp-sk^Ds9r4=C$L*Y>k61i;JvWs{90EF zMFK4;0=#wPh;++Hm3A7;L?xNGeXR4xu8G&9OJ>uDZil=J=nh`DM$Fuu${Iwab z^PYINnyz&XQzX#hUo3(BGTUEMA;r>~mkNm?q@{S4=<8a39E^eYLND|Fz#49$Z?(l# zTi=;y|BpV$7)V4+if1WQb5)DiydLOPW=5i$)?py|wJx z!C!knP+KP5(mMXyFFkylX(Z5sgn5jD_5@ZrkH4mknQ)r)44?REvkxz!{(P9#1Bv5A zzrW|F<>WP%3h#wp%1;R_p59unBE4rL!J-qGW3it$`|xYEBoFEHvzz^#>XcY2v><`8 zjWLiwubxz@XZ!t}vk%5V3liq_z;?&}K-yR;v>*{c{j{X0zw;XhON9h_Vb78hn{Nkk zP_t=D-|JUB=YE^SHb(1j0q|`vzt;Qw-w4%fd{`2@d`y2gWsET}ERjWR@YCjxcSA{q zc%z?mvQdn;c?`555xpRhRodd`RL93sq2=+rL{?~zpO)no?_?|$T9A18A(7dL*7Lq% z3?$IYyyiIi__g{CfOj%46%tFIB(N9D{hWCk%u0n`r9aX)9KCVZ=XNB}5>Y6Td3@ui z;35p%;z?dV@uykSMuXhaEK&VNU_>BEYvbMgrg0H2XP; zecsJa+Dckc7~4po1&P+A5nq`3IWxs#snBxub`qOFZ^_i0wRk7<7)U()Gl}gf>!;<* zH7C&P+VdnPrTJ3G~9zBM4{HE{bjwhAXWuo%1|Y zCWTGO=ci>E+EgxuJ)!GI^jn1Q*U(Fa1bX3{QF8(b>{XvgbZMnar#S zzFN*GypypWXhEVz$rN@XubSeylp!qvtRG~YPpaxwvj*!5~aUR zW zd6ALAc2S-5T^1Mv@5Qgxv4nRrkAe5)v_7uPVj%InSSo9K-dEbLDg2oc=!Gp}EETp- zX4_QuYL%~+f%djcQrW$)eI?f#s&<=MsnDxe-&8hiqOUU>EfTI%Q<-;XeWvEu zYWs{Emdd92`8qSjB7qhp%&c;1w%Fg-nTOYmxRN)Gm7nG-&89adZEL2n zar0?++nt}N2a#xekFuiuLecXc_ip+ijaB~DSE`?I>_656iRO9I*<#v3r|vZ}#=x4R z7yn$Jsj*a8!wzyP`#!{1%Z1E||GRaO*qENmu1%u7Q6B2QRE&Z5LN9DLBY~~BcuE>8 zv%^=*EsS?E5@TeDK37xoira?mIwN;$Y~yeIB3#2t;eH_}L8sra?p z2Y4qVffl?kr}h58QlSNj6JMt@|1W90X)~M|fnJBdOJ{e-`fB-kjio|M2RWT(^z+s7 zeqwARffgjfE~K+rJ$#*cc+E$7O|VLJ8e%V$v}@Ln(cKCb2sn0SA{WIAG`bJiB2=fx^BN1bu1&P%mnJlyypG(XL^h#Tv$-1`Va|sdyZ)dVi z9{OCuuho)tK9$KT)aG*u5@=K#m@dW<;fu%wMy|8Bmq16#T+vedG<-2i%JwIN_Vx!;sYVSW#wUA%yeg1ER)*r{R zSPK32(R0fpal<={ji>UeS%B>mv)I9{zS{q2^B8DB;`*d4_T4sL?Vq=?9!Q{9XVX&Q z$l%xNyo+}-kAcMSx0%d~W;;DwGu9j}7g91=WGnsO?|+Md#7!ZKC5!t1PxDft*O*FK z?C}74g6pgQSg=%RIa(`=Z3@)?nf|v@A6_ zKnoJX-)FO_YxV!1<^+2EUQCcyFXaCqv8`O%3evk#`kctG)n_oPwjh<8%Kt$kffgjN zw8l~)fnEAb}@)jHN;Xz4+&9 z8yX4hXMU~DaGd!6>wy*|c6n2u&!z8kEh9A690~M#&|Z*!Snlh5(||%30 z_=TS!eY{T31my|CI~nVN79{dT3euWbU+L~|>e&p8fdqPC&l(9V?~r3? zb~n`DT0E-YA{DObC*AOg`JZ|qf%V|m>R7_q#!}&Z+f{av#2Whh4^Hdj$}9#Fc25^+ ze^vhe!;C<$!jg-$tBjxX{Ra}$#<)lxv?{NTaDJ_p?hr|ANO9k*hM<=&`;a3gQYdr94$yJAeH9%Df(M- za{|5io%ER+ONBLDNy^N1oA_xvQaJH{w=NQyQ(dG>q=BvPNWmC*FZ9B8Gu8uJvGqI` zsr7amOZ1(HcQO)aL1GZmUOW7pyLZe=gaW~Dz)8_ z=AY}Wi!soG#J|T-?}c6uGhC!E-upTCWnc`nw9e-$)qUru?XtnxpRR`*1BteET_wj$ zeP50_fnF7xx=IdPdKRp7#|Av>;(#4z|5KCb?aP`w(Bbd_!%^LJ*WMFLxtU#s)3c?`55 zacriml< zJg>jD*BN6A0upFJV(L^^X?#6@=U!(s0==+=#u!-MP2*gp>QiVJBh7Fa+en}ViTOm= zp6c)1>ugpk^fLCjI;MzHYQ*30#2EZq9apGHF9=9%-{~r~yshs9yn4n}I!$|o)wjC6 zsXyvm_m=`Tss9a-KnoJ)F;+Zxm16JfJCqOSvq&W$>idv+3H8yAG0=j<+M*We0?|*k z*~g4PuW=16(&8t4A2Jdh11-{x7y3SAeyx^dQ5TC;_&MK)j09Scz|tDq3JLU@;AN36 zKjr(7F$P+YFs}!;JN5_C#!{gLi3aywB^TSN2Y@UEZ}u9M?W= zr=_e#YJWvPwShST__f~W|3;`@!Idpi!0`ZQZdoM4dRnA}Qc4=LvA0qC)~>BzCk&E1J;R4EleDw6W%BLE@M87HJnLLg{&`F$NOo zHQ7d`>Kx!asfPrPK7Osv?RY2iQX$c9kVP7s=I=alh%xY9=w;qkSl;f9EmDnXbb^EC zM7)!EsgTHSWRa>)4{)A|Gb@)%1ZsJojWLiwuS2mG zDW-X#Gru#|<1Xdns1+8dWg0GZg=Wrifm&u`ypwqhBrg6+Pt?pn>4(hd|EW3N3%#&s zjWMviL*7}WkzRpX-e|m&kw6O)6Yp81AN&KI8KJS}NT3(C2<0-RQAm_BDSxyl=6S)4 zF^g|mq*7(Mb^;R56DVIvZCyLTjb@3?je?}9hkp8>K1Tve#jn+|gt3jK!uuXC;U*nz zqiZK{S|3+tF_73^-c4F=<=P2m1bQ87?j~*P#5Hb z$f=!x1X_?VuLlz7mF?{&P3g;(4ddB@ANf@E-_{A7VpjX^0iwET0`A}z`nERCa` zfOsb(ffgi2Qud*79>G!%Z6_ecKmxt^=lV>I1dcv_t`8j%W(jWo8Rcz!Ll?3Wt5Ng0k{?N?1$ zbvNnqN6JR4?L$Ul>_v;z)kZnU%q=nuSlT9tDl<`awk~(ortl`ONB&C zOE+o$`(WqqM2vy=LN6R+ntGCrD1|h(JTaRbX0O9Mct!$a@N0Es;GK*FTJXM{)<=o@ zZ17T{1&QNH7OB~ukX%itPZH>r{E>du9tqJD!HlIsOZDPzl6)mZ)A7RCMglEJJTL7g zmAw^`tK;>_QlZz3+HTUr_aV7DUO7as4sKG%lA+pfQGTtq&#*Rb(r`;?u8vm@ffgjN zw8nZMfnKpR6ID(Pan5kqA80|sSPxaBh%{wvq?i@8W0*y1JT+9?JGfwoMXLK{sP_JY zU+aDTZ-naAhq62F9Tnsc)~DZE-}uJTt-sj$3j zPg`T|LE;&$Coa7hnybo{Qx7E2YXhws{qQI>S2638MEwI6savryZ4I&IPZlY%eps$H zRSq%y4~vvEFie|$__bR0QnX%@-XSbkn<|Gu3ldmbW9uS;Ue(T6q&jWFoU;$M6f& zv^f#;X!2`)l&Gpk{}-WpolJL?A{T`@-w7k(m}-%_3=h+Gx;!0ekqV6plU@!u?QI?d zElBv$8hNkLVY%8=xupV2#g-Q7k1r{!5xoV#I~i+^79=XRut@IH!g5uha$*<=@G`GC zjy`^^egoj0%u9vDP)KhRP+$|4O33De$f|F=>h zQHS1B>=+i7tK;>_QlS@)1x-E4MkSL;F{>tKRmJ?Qev}3L&tv>@T0<|-}u7?!JGmQ!;i&i0XtLre)t?!z&0QZ3&`u7z&e4s^A3rK@C{6|U_(!#kPBKq8QKi%3N0 z=tkwlzC-f%@3A7+l#?>Nu&Iotz%rqm=t5lM!G?<7St+1TdMT^gSS7|zV zsTx}t+q~vT1YK~Iiqa^_(b&p~f%if$9Alb#l8x#TLmFGv3sSqkOb^%g*{!API+Y`| z*$3}rBrtO?X6v0;khbM zpDY!6VT%|`h3#{K+NxZw2yMUMe=8Ldf~Tvry>*1NsJ%j?-K-wy)r5$W9U^j-zjEpk zN0!nPBea>CU#so2jXrN55|OL?l|!Hf3G;d&fnHxwjOu+OoHI4n11(4x>!GR|k#3ER zG`6Dtq#fgJyGCePTPAjKkwS&{T9D}7+C>`HF~T{Qm=Wm3@1)Nq zNMQT$YjrN+#Q$9?BrX+qm8y)5$knFGsX5*Yz4GO8l{SxxaLy%IDkNT9bCE*ABed_2 z=8B8-DmWrn`71XD+$)fF;JzCXp`GTyJ82qQxkO7BDVau`T0Jw7~5D6B+zSoVHary<=f8D@ydyT79@=IP&JB3 zQ^rP$Sy2t>EaJ60`n=>`OQ3bP2yJzcU+aDTZ-naA*d|EZsc-a?#Yo`2nw}J-`;^Cf z2EBLQx=WBQ7K+qP9BT?qIi*4Z+lpW7>xmcx@6~3qAT3Lc&`vMooy=n(!6pe(O`=uZ zFmnRE%xjM29hWIcw<*W^{nHn`|68e$$dgF@)F3if$Lo`AgwIETYEVVTC;L0ylwFNT*y;>I)B;SIO&Kzz?prx{#AO%uese88nTd9z+ zC1$hVy&`iJv;M!DtMx#yqI4EHq+_I}A!e)xT7s@+v+I$On!4D3D-{y8E@iVyqaroE zEn^J47kb@1lFc?Qj?7ie%Be?{rP=J46Z)LUuhlvo+K|l_?~Ke<%*r9qf&|7kmI?{< zy0D8*eXr$nBK9C!kTBLm)hHqr8XGBQMSaN5WYg>Ex#%iqWU`udBegk^U+W|B-w4$! zwssbK)ke=`r|B)_#OUNsZMBGIgZy^y0a;n>!&i}-{*`$Qv>@^7aTfdb%g9{CtehBV zS-UigIs79v6)3!uu~cY5;@aXY){E#I6{wsTNT8Q_&9R^PwK|{Uoy<#x#MfVBvy{D& zxq4)uEERfr_s?e2c0}gtk>wC*dC)PNjo2Ki>3IFOQX#RhKsIafb!4uNS56GP7kc4X z(A1M`s?HWEWvuhsc+ZdxYGrV+Zkv$`^&j@wTWm_cy(v`n^pKD8BBv-%_bj>0}1rvpX>jfRXrzOj~62{*sdS-x%P{G8Ek5l zK67$HABjky1&PlqWw75DMoN;FpVN#$FKk0&J@A>}*Xo>zv5f>;ka+uR2J?8v=R~to zp;wFJ8SI;Td`?6HEna&vSoNFwoQSc_ONE5{Hd5t^ zII`_Ty{>WC+Zy!}}Yhu}t?AlcQ*O`%c{4||;t=6BShKJIbmA*4n#Vm|% zB+$aI)v<)JjRf8|eP=pLKNu;ME@=OcF_2ibBb{wOq|d>|7`!Cv7)7tTlhRrA&wQrF zwz||Poeh1V&(!={rT^@f&febTGc^)uK>}kNON9h_EeT0y-T&Y-HO4>-66W>5cE^53 z+E^;IAW=O&op~2HT9D|qJdKSFjLg;8`edolYqwt-E89F$suimK zD^m5Gcs#1x6txOD|S#-+QROX=Xb6ss(9U(jh-iu$Wy@q!(kAe5)wBCbeF_1VjA(gpx=l`9} z2=u}hF_sG3=Tx~=wq&UO@Atoz3W+7pQrP$@{GYH{sn9Fpathl|zoK$fxpG>!%BmFR zvC8@1*?FzD&!z1t>^jXQdrn-Srxs(Nh0`iwUJoSDtJcvJ_I?5Xe~vNGf`qXistyvV z>4>Dt6*V9+nWgX3*As8WC$nGn=XZYgZ*dHvmsrsJ!y>i!A9yEY&C!CywSW{>iB^ho)T};P5A?zk8e?F2Q|qO$j+y%V4~%Uj z(1JvFqPu1A_a9huB+$#)=jxau%0?PnQCXLg*>{H{q|Hx`8TxtgKgn#)UVWudQ%}kv z(1P*!wf>D`7UQq4C|*p2HYajIAG=7P1&Mw=lbQXO25?DWD z>mq?(!@`r;hY$SiE0zi^NSN0H+hj<=WafWee?Nq@u~cY5;s9ldx$r=LZ)8rO7q+yZ zYHTT_LSrS3t(~RcCbHT2^%-u#8_J24SD)edwLVJzjZnQxITBgVYP3#GzqO1p4wOz} z@ih7>4pO}Fz7~%p_SYW~+8zxfffgjHR!m}>XeB*Il`E$n7^6<{B-W0eB6ar$(#9BQ zK_awh5_`N|f7@$LpjVNCNi1b0J+)l*ch+GA;oEUg7 z^fGTNEbrm0MD}|CJ*l+M67OVQDkR1cebGN6S7Ymwr9v;`C{ahDs?0?iTTvLDU#qiP z-WQ2%B8^IYbEUqF^H1P%HT2nsU#p{ic)bKxokn|(HdRgxv>?Ijq(4y@0}1q++9`pJslsO;B+!C{c|EXw zkT}vQktG+6kQ7OMKZr5Vf`oa0Ac0=hCMB}kh4pVAV+`!6!^sKkeyIp;pA^P35@@DJ85jyd|f4hJzYq91nHS5Tb1$;E(q6l67Oh~z%pp} zr{06AauO%d>wMh=)~su|p1;_Xz*Xr!UiT}SI zXh9-6Uji#iqhy2j%MxQCfnEg)B(U(8^HiAx*5-7$wig`lWb6;L zAhFvcfwhdHU7BI4+5*Nv0==+jjRcl=Q^5q*Gc8=(PmOmn5@x^O(R)CiXrPC5NQJ*bXCPE?_J={Fjq>TLP< z>3H@>-Ei$!-~4&;tTXL<*8d43f%pA6DUQWg(|1Q>X^o{q3la%0;+U1_9F470!AF zW;p~}=7+?wQ*mM1IXH}MUUMYcOpard{-D!Cnm)BzJpLSsbfSmY*?EM#-d@)b9ZJ0dL8@6!Il&X%hd|Y zsX1D@?Q^htuKI~HjBTt3T9Bx=(ZOzKhvsU9<-|Y&z1{>n*vaJ3T&=Ji0^6NmtL=mR zWGoe0kigjH1bXG|=wRQ*hdS3Rv31dcgs~o~4if3s$fU~UdEVh*Zlyyt#e;ka4wha* zKa0$-^*;YMLiHN*r-MDO8>*==2&(c|P7JIqzgA}k^B8DB!lS%{?Ya}1tC*D&0}1px z@9AKjFNfwTW_^;FIM~4+Z4A|PCepreu$s$4ojMa(54=~uhV57kr(Ft)MgXhEWN z9|sHE5t^%J^~qA97naZ%1It@wlY>($}1H6-wKnoJl8)8}5 zQLbxXRx0$WJ1>?k+aDr*m3@wW0U&X$Q!LB3F+^KW4}lgW zu(ZY)NT64}FJjsEQ6W-dKUHlSONACB%!> zYyFpusvktUH43S6c@A9QV2fV_OL^$qdEnO$cH>#Fw%d?j>vQ725vtdvP7W6A9wJSQ zR^RXNlKbdW|1ky4ZI?F|QhuuLDOP>F(dRS!RqyrdI{S2r-sp3(`Ze!aGrRgEyxrh) z`aQk%(}?&5O>BQG`XC2YE^M2>W24V{ziZybmUr_RS!knA@XPDoqZjw^nbC2B&%@Kd zd+Vh-%l;H!_^*^NF7&s}KDEK;!Py($&v*9pvAtjKv-IvQ@4t8T@^RE$?{o3pRqy<_ zdQqv4%vo)HILc=4R&18-M#y@fK%YC_`}_CyDYjsp&zf0(dOw=m+o!qwz0cZLiu?}D=}-uINK$!bv{|*J@2?xy?s0?eeV%7CFNWQOM=72e27EE9k z1E?@va}5Y6ii(1u63l{N1k4E&C}u>#h!NwO6{g!9)`VdVsF-thS8-j#uexZT_ssWs z|J!HJ`FN=6nV!D4yQ|F3+kI$+-*PH=<))EwtYUfX!ho}i_W)-ee{?xLw!3HU66!;5 z*m7E3{=WJ8)GqY6Wg>lKcZ_jN+2X7HF}?(EVjJYvIwX%8`FtaH%g>z(?dCL z7w0acg-`FAbC2NsVSTlS;lGqZF`*W_n#*a-(C6lMS3N1Vb`tHedna9o!xE{w_Q*V9 zv!@uxp!)t=*x&hiyOe?|Do9vo4E*7%H7!@1*Z(oyf&{uoyCu@@q=)AFDSAeue!iOB zr{cUt(rgPVNZ^mS_} zPZ#SMTdxFipU_|GpTQq3s31|V`Wot=dEc0;pPxf{g>G-u*}HybAc3wS4c3s&{`=;- zrM*OkheIUqz2boSxppp|-%p!`4P$Sq#fz1v#a^~X!|&_FM;nZ1r8dVeu8ic}iT zW6B*QEkZ%0^bm3pf*rADodCkNuwQOL~ z3{;S?eZGeBu6k;AH0c>@8V%%OFCVMDXKuD4&}BXH(4=vE+@_xDKZRGBDwav5rv(d9 z>flavZsU4t@i;I2RlgH8w@;-%Ss~+GvSecnFKr*D9^OC2gbETrrmd&%v3bZ+K|eFJ zTpGo{EQ(dvA6sHU0$n&GjJ01knzOCR>XCs?CRC8{j2FkL`xo=4L;A?q_Z!K*?b1}c z3m4pwKo=fa#!3ts%YW=ov6LP(PwBlkm119(rpkpnljn+5`u3wZoxa$KeD9>v!un;6 zGhDD;6z|*cz9p*jGzAqT4s=ST$!&_zf3x+G&*~Dz`=80H{#p`cMWCy+dnz@{SA;U< zIq}5SNM7~vQqzCsb}PGMQ%UJtgI1mIOk+2sQetd1+O}K#g(p+##*iAuU$wN?D4u${ zx@pk0R0S0zo?J+!l1IyvEAK4+s!!ojyz0e6Z6+Ovvm(%i<74da&SUuVG$+f%0n4q% zfyBjhF>j5^QfehVW41PiH-0_LGP(5x>l}HjsN&>!7qea6!RenUI_7X+UX5 z+UE7Yzc{XKhwxCvNjb$&D)?K3#MSDlG^=AB`fTql{wl|1BlwAS<&{j2)m8+$a1I&U zxG0>D+kC?mQZK`5u8_DgSRBEk_Eh?bKJqUkBDiPT4paBm`>hCc;gMx5Z!JHbr{xNz zM96c+Tznmw+qlSMn>2MTHM{Igt!s9n^|9+HyNeU;yP}U{V7o#5m?d60kiOH3Ko`yk zW4Dg>hAf{mYur1o1mB`V2RN_`S?w%H@w)Rs_26%7C$%J=$@# z$^~UyyS)55}rtPje zQ-3kjj8(qhgDd{)lu?)8S`p~NW5d{=J?rsPC66jo%yoJ6p;h!`3X$np7fSkb6`fd0 z@|x<={S;co$ART3%Bs2+5^un*aEPNbOLJ?M7PjMZF|t| z{62*L5@SmzepAxp-YT9YO;#C5)OJWB&xc)Ue}?{7nU56bzEeLd$=;2v2z23?7(1Cz zoM+i(D>o}Ub5xLcZdyt9yc3lipl4L#<+x|QyUN2pPF4iEtmmpg$SWm%RYC4F%Y}QD zSxgP~^pSHlEoKR|yWmF|BmZ~gTb?~o%Er7@((AfgjRT3W(uvgRa1V+XSLBS%&3dPF zIsHaCUVy9!bm6gK>~^}Qc(9UuR+NeFDl(rQb?7hus#`}El2e;NntM%L^}}Dw*el!Z z%Ai+Ilp`&Ct;T`G=5~vy_<{h6KC1s!Q)?ViY7Tm%w6EFKia-~RiLpLjHp=(SF^b=# zvAkB_c@%gjnDp!O;!or0V1pofIjS3NX*`d{RS2S>Vft10&sO!7oAC>kpV=chDuW{u zC}3t^%Chf9_%AWmH`!0|9JV;zu>m#4DZ?M8DWescxAda z)>rwuFUD%Fknq|PPYq2$^ktl$@hU5?QmRRq^7>bl6@e~1{*3KCoIj&n(QBa z^E<{{5$K8>8%IYY`ccni`d_s&e5`uM{-8R##9*tx>f`kU@(k!npU(S`d!Gcl>)wlw zKh!_F?Melz&z5adW1bG>XPswNeDXZ%L&ef`XX4N%fwfcB-gjEI-Q7QAN_^#e` z*Gd1Y2K&`k&$-Q4pQMbkBG84$iLno9Icl_9VeP*MP8>TB*qI3OO`u*^yBoiQZ;$+? zE*_JkzWCXmqk_cXqKjzwdmoxTKp%O*oKtGu#h=tq^S!JHbX|#GNF{!DqZJc%Vou(g zT9x)>cz{bC$%^Js#U)#X}i1LRvmdGjtUaT z7AMk>u5D?a{B`y>*=n5KQD@g|Vnv|q?<$Ej`D#15-y`?exx99z*j=^IvZfrBV4Fl* zT(~`5_xsR5+zTGM@Z)t+`vRvAbPyDrADp*?-+uV(*QQu8g1iG+G#n_Q;jkS7T zj;P&g*5r8)B~f$UhT4lhRqYK)w0=z+irv+P@HjEnaA+fK%l-^?z_*%KM-YkQ!AZ1X zwJYTlS8AeP5?WWAao~h{-@(y}Ko=fO#=uW<*JTS-$lHmCEhddAL{0ouc5$5r<1pn?h#cIQ{nn7vNM6>`e!?%LzGscPS_ z_f`bDO8Ts%pOu=CX0K;Vhz!xLwhmEmKfa;7o}EmeTi&T_ znfyvP8W|^)!CKw2bJe-)wkfC}fq9H=bMB+{el}0teCdvY3KA_FBvWX3Ln?M$uO@0& z^VdSpFIOLIdSXSO>wm`aK0-TQd#7de;yuchW+~LdzB)yTO8Amv3YD5$gP5qc>J&<$ zI+dy$<2c-NxR$5hMN7F4hZIzhC|@y!`aHI$a>ez(Dz)@TZM}afHFivj6@f0C5ymdh z8LSm>b5R35Pg~6u5^>4NG^Uj!wGcg0CQjA;wJDc+s0D4WSP|&L<0Lwe6QZ=Q9rC9? z^^Q~QE2mIGfpT($Zq6xG%%cJ&(f^LTalX;o{n!6y+~jMm#(~7S&M8!VLS;G@uUDxN zt43%Ga;94{4{x&~(1o+k*rkjPn+Oas$w=xT2FqvTkvg3}~Z>V}0@8M|wz(D!_0>Gl8Q zF&6T1jAm*z%=F~LBCEMVqGbIPI-IW@CCJXi>PcfXAFn2+DlHPN2z24RiSPNeFk$9{Xu5y>>TNKvCl_H%cXw!8CerEkZYCRC8p(i_o}W9<9L5Uu#Rk4mJMua_~e zB?Gl0y&owzUL|Fqg2dPBNz^RzA9F8Hy{l%^b*Scb@VxTj)=di%=)xIcY)VSFwtV;r z#UIx0x?%)f$O)%jw6@2_XvZWE#P4^LP65Ak+I0$q5QgR%N9RW$E&HMNi_|ERlN zT*&9y4)cWz?Wtx5X9`K*mfH(I*qFS2s`CGf-cqr~+8@q!wIA_2)x)45@oH@&3aDx^ z`n&D>G}U&ju#p)^petmO1DQRq8X0~Q+i8hG#bgF5NL=n%my!-=8W|~N+G;NbJXS-+ zIFLZs`R(>Jb?|c|V_Ef{TDg_?Rec<&AQ9Tnj&?geGcrEp@zKKSZBv6q1`_Cc8d{CY zz5iikJX;y6U8}raW}t#Z!@N~#U!@;L#+4_%HHT(FavVsY>%V=KspX-fq#q~IVc8j` z?S0->W}t$^EssjHXv*(z)c3hT+U8MbEc!7=0$uUDE77YX6^x9p^+#yE+C*FQxk3er zeCCQ2zrTXtZ8J_{x4F?^JAe&&p-uEt zjDVwkwQ4IXDEc^%K-c^1tfxAPrh+3PKpCSVlB%-?2prH6RM#l8BUK*`CE;Eoo*O}UNsocKy zM#k>DJ+yniPvkgIL1M_u+H`DG2P4C-y{neD@xL+y33RP5--uo$bTKk|yd=#lt^}8J z1qu>xa~jZ|=&nY_=E{!R(h=pkemwBsLRW9!mXs&J&&W8|q@nhrmZQu-1&NEjTTtC0 z{zk@vZKbujAq}|xxk3V6SqByB`m&#q(W+`$?NGELGf+XoRC5P3gPddxFLIPd+8~KvU zsi8*3=Bt0GVW~kf0~I9LfgbeLKFr8)9Y0C+$@G&MNT4hGS`evs!i|h;yZWp7Zw!@l zWu?HsJ0~HCc6Nv`G6rYoRYT|WlNm^$YybH$>f9;9$k@GHwM0*dlo_ZX5p_6>qS7Oc zjK`M`q_2A&EHjWmSJtg)Dq8$^#0-mixm8PS3JlFntKM#i$ie<`U4{rGqB z*+m73)+6TA!ul6;9vBbk8&y3TA%B*(YDMn;c9HF>qaon!_oNQ5_DPBtHV8W{mjb$OnJwlc$t z09R(pO4@a)laaB$Zt!KjhOQt+%!2<6r$y^m7Rk=vw@6 z6*=rABcsv9&b-5)-{tQIDoFe{eKkD}YHMVCn(fKe6KCYP9SL-u9J-e7TAYoH#)JCs zd_9iI-w#xf_*Q-$<(OTJj43fa`P#$t75%)61iG#`uBU!28W zyX&drtOiC#5cTETvh3wtAz|gJkSfk4HH?f7(;|5PZA@k`P>@Kvm`cNk)i5$HqzCii z5#>z!Zxj;f+R-qTZkx&)8TMO8@VKGd()I5LDoCtENgZM^e zw#;ClAc1%L8Otu)jSsuGQC{yNfv(o#9%QE7LnFhxYal=7a$07ff&@N&!I<0BcHDnd zwj2i%==vC#Obe%6Ffwk0bmA-0n5O^MqJjiI&%#(t^=5oz?;@H$S4g01+x+G9`r=_D z-r`UdP5+*wf<)|40||76)?7lNL$?|k=Ze_zXO`wN z0~I9REL%cD8*DZ*%zX;*A2nLa3?$H1p=kn5Pfa#58buf2Kihf8xk3erxP%1SQ-6h# zv1$KbN}V?yWCjxG8gh9KZ8*Bn$SAu!Q)%(UUycJ6BtBM{OCu{K7#Z*8rYM!OyUPqD z(AA>K3>u#^$H*Anbg{C((?B^6RFDYunn7io%rY`YZ!jx;_6KVE`3ebi?F$-Di4n2C zkH;f>WvAP4ISy2iNQ@s(&lXQJGCW_+G2QDBtm)@=B+#|Jr?^sbn_*-Ge|YG&Xu$}X zfeI3Bx|DxrO)xUnx$jnveu~sqi{pU=y6{ZISdb!~ zawb^%jt|GlaUg*%JQIoMuUa}P6MQGg3@ZixUEjImDes|a zM#j4xOHJcHO_t+80$q3}VyunFUvA4YCd&*|kVq2e#DAwwH8Pym%(09uK1GfL33TC^ zh_Ojmo>_)AnItn%L1JIkP};L^x{+~uT{m@!(|9=!B+!LtBF4tLPEoh-i;|x!RFD|d zv={B^ILFA?AGt%di5?-xfdsnnOvIS8%?WjDc$gdqDoB((F&i$BP04(AFV+&lNm^$3%kRN9Vi^Co$2;k ztuD@qs2~v#X-5h4%*c3rI9yA6byU^Q?MR>tyTgnnwH%?@RufPBiVRecC{eB|jjH{_ z$T)s0T8rv5US=SHF6<67wq*Y}ZH`kXnSlxteu0%JczRLe9_04gleI@D?^yJ6A`c+%-cXRYT_Tdp5- zRFD`@upwoIbu}`2#VFdT3F4Uyk%0udusbZC%+y+HT1qpSfeI2+2DPB^0scnD$;Y)d z$DZxD{vAXDUDzEKSA8|AXpI|q$qZDG`10OFVTFT@jHF71H45>U8AzbZsyobn{QXUB z`)6O7feI2`M|;q?u7iw>+1;IrsM9S$Ss!PS;G6Or!NEFTJK^;nk z85#HcC8#B5jFsa+0$tc07H@OB9j=}`8_o6a2P#OESsX;><`G85#!jWxs;feI4AN5bgrmPjLG@&HN?UNc2zAb~FI4vXhx-Z`0$FP+Tw?;t8j z^!^%65kr4xEbMBdj4)No@Q9irov?Qe6B z2NLMQ?yy+p=I}bD&*qUb0~I8SJe*CpZVxpwZY;Q@Ouar-&J_~q!tStmQ*Y>FrB|^5 zG6NMPc7)BR78?f`8OyE|$A=ZD%86!IU0+;i8gq97v!GyTf9&Y4_gzbFBh$u24Y&-$P(b z4I9X-jC-i)=R_pXh23Gs9_=2=9i7k1-w#xfuzo|~%!5%pC2WoSjY0xl*d1o<)`3us2NPZwnNV<3I%o>vv^NjF`e*u2eSZ zbA<%Dush7y(9Fp^Gp$61el9@;3F|kJs(4T4^R>(J`U(kjVRu-(yW~BQN4zbeCb^!p zdS49*>vynTj33X3Z7`|r+NWC)=)!m97#sGq6Mwg@uvRB%k%I5L;#;lQb6`x|1mNDG z`LsOSZYroCVg2rF>!oeDIjgjm5P95+Ko|BL#4}#8b@?pUl3L@b`8X;_%pJd+_LM(j zyqEessx}WAR9|KwfiCPhFgD^#DLyn`9hrd&63)7z4Qg)e(%s>T+bu|+x=|{4W@q%Y7o9w&E3?$HH)pKB94yP+Wm$=IeRFH5vHHQ}3 zFETQkKUk+^F6bvSkg#$=&q2J^xOTcSdVe>Wf&B|4CY75(Mf=V*GBWqJSMqKhEHjWm z7xo;)TM#+Lm2b!VWdFg@qtG6M;8Vb6iF<-OLpjZF-c8K@v} zpjQM9+c?9>XtFKVvc{B~fdsm+=OEr)Dss{CXYBx)feI4oeM0HcrI|*?vF06A=k>XB zg#@~==fK#@&;8W;V|-->Do7OH+>0iA#2Xn~s;yVo#pWJ!B+!LD2gW|n-m1P^>m@T# zL89D^X=lnRd;!yf=TS`Z*C5B&Kh5pwQ`8jSLq% zZ>`3GH>!T#MFL&ea}e(pHEyTh@TpXyeHv?n_66nI717qd;`)M<3HB=jkxk3eryDutJ z`=jD1J-KQ`;W=Si`0P^_eXfu|7xo;)ll>h7wIyy|7X5gjg2ca1D$%KQ@sys-__#e> zJK45?NzXt6UD$IF`$0Yr(7NVbXwoxKL1KAAWtwUcPwB~w`OZVNidt<&&p-lQ*mDp& zzjx@RrPU`z&p-ukl4S-eNX)x# zN4K7~HZo$b`D*pF%Q6EAbYagyT$gMyYb(E8l^LiYvA0`Y`Y-ACn=fNJx7Q*kvBKn01be<{>T6;BAsV?N{2 zH}z7shs;0%UD$IF@3H)QL;W7lx&9qQ1&O~MJt_Kyc+yE`RGV{DO$+ju8AzZDdk*3a zo`q{vzYU$`I8Z_2yUCa4ED=v^$&CIH)78+l{xSmzbYahdv7Aa?YQAGVIFLXW_8i19uT@JabSR>-U{UyI15zgLA*8@9l5=ZiJB+!K`J&3L|Ys6E$)0KIdwXD{FKmu1t5ci6fR^?Y~TvdP6X~c2mCtTkN zD^|u@zst|#1|CqWXS;J$kg#3_YJ*cDu8jRlt<~RTMW72SRm2&tCeg?U3mT$0JJggJNT3TVR`ERChB`{wPlaR#Do7kZJe?XJNH8*D zZ`vq7w>ZiSB+!Kwt9WyA?{3rS&|)$J6(mX*7*D=E+mXH~!AW>pq1np=v*T^v2b+L3kk(+@8y0BsuZ(;9`x703DT#FOO0~I8qE{4*= z4)I1tqfKSh{+)B@3JG*!#mbod?y~A4*CKKps37rgv>)YNywJ#4^fE$ym|!pG3JG*! z#VS_*+SpHRemt+tKn02Vt2)z@uSrHmyLPE+zwNd%0||6t#VXG2>ldp@bDGkShsTYKJM9Wz;coQyP?fdsm+Vii{a!9UdFr>DvcRFJ42RGZSCy)-gj6tvSy zXHS+HNT3TVR&mUS71Tb&wvrjBAYtQbM{LV4Bg4O!gJ$PlOJ*Q}F05EZFJrci_W0aQ zi+)Z-1&N~@s!`oWHpZ$E|MhR6<*hc?qMzH5Ko?f5VjZtH#kIo$FEjKERFG)1wJOy) zUBSp$Q>CGHy3t)XJp&1JVZ|!0MHdv;hEMh|=^3aX(c8NkDFbU78GFXn(^lJmG3gmd zpbINj#)^z6s$Cet6g>kKBtFfrLCZ2585v#UYl-(c{S`d}33Oq_DxL&flV8i*wzJGY z1&Q-PwaDXgD~Wca1iG+dWsI&oQkQsalNqQWv7&zyTClUTk#YIPPj$_O=Q0BcbYaCR?vkB4tL8L5 zCo@n%Vpne$s?)Hik>OeCuG(coH8;433Oq_D(-*8%~jtY`6@F|LE`ifFPc6g)W}Gl6{qgrS50OhfiA3A#r1B3 zPU^+O`MLhtMFk19W=~Q+5BhyP7PL{PUaliEkU$q!tYY7cl%JOKQ;W(BRFL=?8cg#) z3^g)VKRjfy+g)E~Ab~EdSQ%@2r=2BjS#g221!V>*NZ?ve;yIap^Oae@s>-=S0$o_KGB&x> zG{wK#5Bb?e1qtgFnp%Y~R#?Q}%KZO)tyca*7q00g*5vqOl=8L0ekCS#Fh>Om>-Ded z<*ZUJ%<@%VZWzvS&0Sns7b_&OO2N5yO37*k)kB5Gaa547UVrzB|6pa;KsR;elQC8V zy0AiGY?ob@snwhdmOV6yqk=@)R?8@O!Es}a-^LHTlq<&rWCjxG!U{?3of(&IYWVDh z%s>T+M7u?_K4hwTH3j{_AX%FLTbmbIIVj6V++ zRK`}GDKn5j7gk7&^>Z9z`gFF4%s>T+VT)$d)_EyLM)!k9O&N{n%M2vYg%y(MGdNW; z&74_EW}t#ZU(f0Exz{oyBV|&sY0iwrG6M;8VTB~tDVmbt_HAT2nSlxtV^YRZ-r9?d zjDm;4-MoG-l^IB&3o9g15BgC0sqy7y1}aD#i;AEHg%=tbUl!iT*t|G50||6tg(TL? z2vjq)m1SiHDo9lA-Jix6U2J4DzdqY?pzR_#4kXZp6_U7D6yDUL+$kY5P(k9+cztxHD9))BEDoD7O=|aaFtuZoo_bIIwcAqXYkU$q! zNQ_mVmugA!{U*PIs31|XM|=8EJk7}H-?D}J{>*Thfdsm+LJ}+doj+;GSM#CFKn00k z!(Az0?m;8Nab6EKZ~yKx0||6tg~XVz^CQcq`6pxsDoE5{(3}GLo-s0Ros3Y=JZ&a3 zkU$q!NR0j0`ajFl`s-x|DoDJz*N~Fh+%__vZkw*wep^yzAb~EdkQjTjy^!i;o**+& zK_X>>1ARU7#>j9V7Ox)aa^0ez+mS#QR!Cy?y^1B(UG9x!1}aG8ol%S2uQFpzz<)mLouvC3M;arA34kXZp6%u2k zCzn@kcN9z4Gf+X|NCi8paIJ!o;q~`YmB!6*(=(7j7gk8(Npk;k>Wf0l-1H1okf^oK zj(+6W8yO=57pt4!4>IW)NT3TVB*yZ0Eu}^VRW<1us37t4ZcTE2-O$MB@oJv>j8-3AXdp9?Ko?d>jMcdJ+!B5zLuR0YM7d(ks86hykk0~I7H77n3Fiw7AQ;~JN+bgZ^iW*~tstdK-C!QZA&?onQ5pn}Aws^RqM*Po{9(i3Il>!RkeP z&vVMCv&UR8?JhBqqk@F>t|Xx`|5$1^*)G4eNT3U=7sf>8rHaZ+&MqoQ{F}3cN|?_W zeNj<)Sw!U}Gmt(WazBYcpbM)PvEuu|f~u&zWCkiolzu*oDrT=Y zGDPKN5tWzBKmuJ@y)Y&!FN>(WWCkioe7H4@GIElQ3{iPmMCBzjkU$q!FN}%G%OWZ- znSlxt&zg^;ou8H)8KUya5S5qAKmuJ@y@>U94~1ul%1dUTf<)|`2pakL_x(XpdAW+p zOJ*Q}F05X}TfYl$xQWV3W}t$^@hAPM_T}IAibUn*CMqwPfdsm+dSOgdUM5j_$qZDG zxGRFDXn-IYQ@HyRnD@-m6aOJ*Q} zF05X}^=_Ziim1F~1}aF@YVJ-A&+jraMCD}?m6!YuB7rWfUc|FFEn6s}@{$>-AhCFt zi5~6AFfv5tWfGN_%s>KNSiOkdJm&RKMCBzjP(h-ygEN)9ecs3rm6u6WUNQp-bYb-( z_RTmMp@_;$W}t$EyViuJe!6R9h|0?(DleIV1iG+#VN6tBim1F~1}aGWT3(-Gx4t(r zMCGN3%1dS-fiA3G#M_y};uTSO$*XWwkofjzU5d}lWAt}L<)w(qOJ*Q}F05X}y}Oa( z?T2--G6NMP?80i(+cw3F3{iP0qVkdz3liwU>P0+9wqdCvDlb_Tp@M{0Y%O|z|MxvF zQF$q%@^aO$ERjGLRxje&sK1vgqVkf}9V$q?tz4T{#n~I<5S5oADlb_T{E*ykrI{NNnisM^$5TclnT&mq}D! zG6M;8Vf7-`bP763_vmQ4sJvtbDo7mq5=D*M{mu}TSB9v(WCjxG z!sRFLR$Y$`om@cTZesJtwq@{$=ypbM)P#zf_15tWzBKm`fh>q4yl zy=SCl*BM)N^`VIz33TBuAL3fnJm2EcsDV1~%ml0bKajBA1*37FQ|h3fGn7u3Lpkox zh`TUi^}^W4S2^n1ooPyfZC8#864rY)Mz(&Wz9_X_-ibp3U0A({+TdwEZO{CB@{T(y zNNoJPm@XAQZ@il^xa?Wgr9RFH6QvVd$0ixsWqGr}Va zr->c-a__h!fiA3G7|S#LsM`N#37LTk67xRCkzM;gj12S6IjU2Of8|^ufiA3G82fcU zQGIx;vdlmQiDi9f(Tp6iqMRH@pt;RRxjfHk8STPK^yAH3{;SqcRz+2ja+49Oeo}L>998UZa5O? z!s>;wJ@+jc8*As@aYqG-3yBf*DNL;VCFiPVgFGg?N4XhDpbM)Pk+FH9sZpl}avZ22 zF}ddey4qp2kga6(nXK=t$1P_Zb;)N^MX^*uIb%NT3U=7yVw*b>-d8LNWstB=$_>H22<7BctW1 z<4WeQOELoqbYb-(YUh_ZN&%<$@_dB~67Q5&v^e^*k?~{aJ>|rMKV$|H=)&qn)M^85 zc<(-c$_!MH=v$^4E&3#Oah0E4Cy#%W0i71f3?$Hn)eB?Ct5@WGm#>o0QNA`SpK$y%x1&Jpk>XEuC@9+0NB8%_=X{BTa66nI} zg|Xl%j(ph15;6l7B=S2rQ0C@hMuwApalT{9Oq2foKmuJ@y@=nB>tbyN#^qCbs30-H zqb?14_4~a$yK*J?wJ{wt^b91>h1CmV`K~tLwI`B%q7fA&cHOQ^eVW-D74f-E^e5&SJ%0`MGL+unnc35%oyD2k}Ko?doVh72bYs#oIg*5r}C)7(w z{PVH{m0ps&dnIEo=_`~UCEv>o{I}4B)r&aqR^6^NX<1%opn^m#v2RrWtlq|4rM?}m zoG+C}(?3^8pbM)P@$AR*smj>&8ZrYFBnBz|wC{FbBg5xJEoD-L!ZHI1bYb zV>fv!xor&b3nZoFIUQa3jzsrVfDgT@!Q8U+SY0)$AJnGzYauE#XoFWa=556o<`H(?bfc8Ya()%vC}{wVvkf(jB5i|KuNfIOo%3o*SDVT=a*;q6R$=0K>OuLm&ILQj3{;SaNQk40U-lXqWo~Aw zJ={o+0||6t6(*ho7<5tnHK3==Kn00OC1;WIy)+|ZOo0`u%VTeufdsm+3KP%CdTxNW?B1K>32#85zD0nkuPva^GG?0$o^ziTlp~4poXw9LN`l6$DU0 zBJxxKE&j66$e0whL}~b}i#+B?pbM)o#w>^TD($KU%5k8A#H65Z^uTS0kx_W{dF9-i zwlV_=bYT_7Skat!%AuIfG6NMP7A*Fl^Cf<-Hl6qKFJ;|=W-KNScNfm%DDl5xvG}TKm`ekY)yM+UNJIW)^EtC z^)D+4AjWB+!Lb7-RKzcH_4i z+?A_epn}Bx*^OyUm%ojSc-u~VO6Sco0||6t6(;tt{oIc?Pg^51P(k9$$NJR0Og>}P zy4%Nmc?FLEnSlhlunH6FmpmKH|E*+}8K@u;x6hIGJuPNr*mwl+3XvyF`l=B~pbM)o zQGfV`^N6`)*QpGB6%QoPg;f}1mmI?RQJVz0It(gE z+!^9XO_{whj=Br{dBKb_s-A%ay08ipy9tI4<}MdJRed!QRFEjur#|^Su5V;)@bAW_ zzl)U_NT3U=FtMUs)qZ?V_YE=w6(n}1H6q_3EsTr;CEfY@7Z#a;1iG*a6TeZhKD_?C z2kLw=4pfkEZQqPCf=oun%va8Qa?`(M1`_DPDom^jd{^Ny&5LRJT%m%*$|dc4D+Ix+(lB!+!a=-QXxt2#!Cm2_u&JID+q(1leP zV^6M@;_rf8WdytsTy^z&t=La!Ei;fn7gk}6IcS847Wv|pK3%tK}%fiA4V#B*f!yOh^O`p67aknlL_PdR=1{LZ)?t=JvzE;Eoo z7gk~V`v$>EtXLCSKjx?)QDSl^Wqs^tWZ2jt1z)!b5K2Xa-N}b9H=1itnE}9+w1pSRUaR&UY*-RW*~tstir^3_s~+c z&#hpYfeI4C%Fd*izJbO#e&*~_Czw5D1`_DPDvYtVcdn?9yZFisRFL?-elBe*=VxS8 zcYme^7IT#uNT3U=FtJ0$7_kd@YCD;M3K9>q=F^r%-HeRzV#PG)7WHHX66mttX}oD@ z4K1)<6PbYu5;mI_(b@N2Mn;ZnO)aNXIhlb3x^TC4aV^@?SsUnXD>G0*V#CL!RKus8 zkzv=arS`=3t32-_fiCO4$>&b;)chWQmA@aTAb~rAi_W$yX({Wjr~ys$aU{@{_t5{_ z7hQC`Qrc^4;?JvN;+WNr=}6$7<>F3t6;Ewqc0pdM{w4*h-_{|CbmzbWv)`CbgcYlJ z-ltG^t&~qGK79BI6DmktoV$z`KD}$~MDwDnrxxd0Rj$8_1iG+d755Fo#bSS7>c};I zQ9+_ypT(5nanZ;qnc}1!JmM@fkU$q!tc?8?QBONOn9H?_Q9+{hwgk#rF4i5CJLI{J zuAmLx<}KGlMgm<}v5I?Mb&6{-HG0YnRFFuW8%Kp~#l0e#G3oFJ)iXI*u7`{Sy0Bsu z@4mLWt9tw~NM@jd#2uSiwEma4=Or_2?(I_ZHjI?xKmuJ@v5NZ!_g1JWr$)=;feI2n z9@FUN#M(? znb?oqbpbINj##)s2;Q>?1$#I~9M5!_2{lWByM#jtbeR!H3lNm^$3oBN!e#!n&zNYCL zxn4LbNZd?nOuXOUMn;v-VZ6iWqjF7hB+!Kwt60n8!wA0lT$;>41&Q1F8c?QfK4X{4 z<;A0U+=X#60||6t#mZQ?Sj#)4MrWCU3KCyWJJR$Q;$Eu!4wm+t#P@HzW779&KmuJ@ zv5I$0YER)Y=f=zZSWrP?`A3Pt;>`W_>wAYm6#pCYpB8yQZ? zqxisA$*MkANT3TVR&h-|Hj+PhxkuH+ zJA!%ZYk$iORFG)x+l;>UG#MG)5B1=6FBjMJ_4JWI7gnsIe>KaSU;AmR>El2JiB5K{ zsP3ZQyP1c*G4Zlb>uLI2A%QNeSjBtWLC$JWxTRYCcX5FFPCKXcAGIM{RGb z>FenufiA3A8ME6~g%>^UCC7mZ5|gvsX=3XhM#j2~Lj13-esUa0pbINjv9m+=e@dm% z{bU9zNVJ&Jl}?BL-Z4GqVy3cc%n*4zkU$q!tc;narYqXz;W7giBzm0or}mx1eKq+# zZ(lk=seX8j90wBU!irUVuD(PlBjaP_@jwNMq-miPe*gE5(0yx`R@~Z5lo?2%3oBN! zrtJKaradDj%Wo!`eC>*2caYVKZiNT3TVR>oR-J6Y<4=I%v@3KEWs zqG-5&pHt4&<)uZ{Mq?++&lM8r!irU_@ms2mS}t&c90w{$oHtLU4()%>RmsP3>YYYo zT+5~XHR{?38MIJTd;sAk&@mB#}KbYaCR)KNSg|tp{75Nn=DzN79H=1S_SbwmIlY^a zakQRT|0<)MoGT>Ig%zu)&o?&ID$H<`8K@u;wq_Bnc;sbd6cPJ>UarwVW*~tstXLUa z-@Jq7zp19oKn00+OkZ5x-AbA<%DuwoT^D7@~i)mu|QW}t#Z{*B8i z<#HP%BW2qFZT_L1Xqh85Mo$fx|Sv@8{+32P#MmJidbNZFe#p>f zeJ;61{zf5zt_S91@+;wJWW4VZrTu+uj{L1f1&O0B$<(x{qmhw*X}p$9E#x?mKv$hY zDO9IYbt7ZO@JX6`MgchvRFJswBbgT1RyQ&tQzvT^W2;#7-w!0vWnVdk5(<Zbn=qJqSqrBY~f!E#2%?tPQApubhq!DlB-NT4fcO)?Ekv!Sc8ok%=6P-T+# zt5QkDsdPUJDoC^(kxYY&h;``YcQA3rc#Ul~DP_G6nUFx&>*2{%)ut$I7_4U$-Y`xJ z+ul=I*dob<3KAy@BvV#eL3&ePCrUocQTrWq)!f7WQCokVOU~~8a%c4C_2{S>#JlaJ=3SMwxPGnVUcX473%^~AO&wQJ za|^5^_xeQziPAL})5K?;jEoI8nrS79*~`6tkw6!IyTm$Ptg&`yRtZhtn;aD+)=XMP zH|^US8E>X{)T%8nD93>Wy71d2_M509)}g=kQtso93KHS&N#sAx)yS~*_Sb9+U6cE` zBY`gbc8PoR^SWqVE9{Z`xTAu^(ukGxwMjE0W8%XB+L)6|Rec|KB+!N5F0nJ|JAcjd z@NiY%ZyOaPhP+OuN_`xSjPN|ewF<2rWCjxG!f%&&*U~mf%kp|^(f18U1&N6LDYVvkm~m!k z9p$Gjsya<(pn^oti!15mAHR(Kw!75{(mr+Er|5Hq1iE5tC($0ecSa>VB&4(U{aU)B ze?L$`V(i%@YM=SW$hbD#M;n^@LDA<533Oq{Q@pR%-K0%>{7KP2SEwKnX_rWf>5h?c zcC$%)?NE;E8AzZDJD%cQfF<>{kd!i99|tN(On}fFAU=7#XW#ifjIVw3Qi1pbI;mjKx;VQ6GPDmE%AK3ELNO znXp-(Rh}r zW4YW6B+!K&PqC`J#}yMB6eKfHK_aW~0P3}4wUKe6f`_tTNEp}8B}kwPJD#E*{N7&) zUe;UA6)H%y?iWDS15%BQ_@oWWU5DIbjs&`}o3B1qtm>A6j}M&B$2z z@uA{5HTScN1iG-}DfZx*^;9`HlH}(K6(pRmb)?Ft_8A%dM-}JU`*Xj8NT3Tlo{Y_1 zRE&R4Y$7vIK|A$r|pbI;mVxNY2!F=X8ACvwYg$fe?POM8cUso_PcE^t3`RWw3=)Z$VpbI;mVn^tP z!945iVvC-E3KCjz2Rhln-pDwfcQ`*!jhXfwMbPhVJ2(=(7j7j`_wT6+Ck@T`D>ntnV` zL1I>37s?#xZe*Ol(~S2lXfHF6Kvz|(PHOY_HF!yf>M{crBo-7_sB@0Dkx_SlWuDkO zw^l;}UD)vyHD|xV-1UAlnSlxtZwk57x52(fhP&-ArDKK8vQ|R^UD)vy?=E@WRccmk zFEda<;_9s~w0>J}BctiX6H4){K$(FAy0GKP*u@2@O7`q-G6NMPx^(rY0$chT858%$ zDuKNQ%j1Cry0GIZe$P8~RTkb4kQt~T(bg@L`gjH#8P$svRC2mS$P6UVg&j}v9KgLz zrnG;8WCkioG>HhO<JD!Z~_;ya6_{~F(0~I8& z^TL>O(O+s{<<9b$BY`gLqlou}+xuum%3fEBea%$xxfOf@CM{+KW%mATj{4q3^kiNi zEUP_t8m>4@@vwTw1XmFFa%3fi*8bak@FX~X2w+imNggX!qF1wbFo_J}VRZJiG+MhAJ{P@9^ z11ATmo-0!6+mGUO`eG;Qy*HI&UzVoIg*sE@t5kA&RGQdcZ$aE_bVyk}>Wh+RZD-A< zb0Wp`?m=e?`cR;EA{Fk_gAxk+P^5n%xwq{>xAXf5V*jPFTK#s>%G_GnGRtL&BywiNS*lh~@&x5|S*ls@Lc$?lwdeZ3aJIv~fTY}hL7k2hB}y-l6D133TYJ#at`@U2@KoK%ZV%%zwDv5ya(t?%LsE_F~WN zCvG2$EhWp;zs#eT+@*STmr+u?JLZ_(cWLUZ#nd9^l6i6QyMlP(=%p3STa9=3o8pG9 z$I;8EQpI~_=fnR?)XLvkJG`bcpY*Gk8~$5J1io8FowfVsN2m0RA@jX8o8=Yxito;@ zNTBOT^+dY(=z+Pxd7T(`v5mH`Vq;z-d68-7szu~E{ZI4OUU%uP=VDqHf6+W<@c;f* zsrTHpK{gF}sU_1*n1RHFX^Y8c&L#89a6M!71GDzmO$R=%V`nP@T{ws0ZpO75T08#^ ze9pi;3Lb+un-ZwZPR)F^^#2}@lc(&p2Kn0a4bMKC@JJ!?^F;zF(MQcwZ1um&Lv_@e zJy7_)sb{SSbm5FJ*7sFmtz9o){LGP2hCN*r$?;z zwy%J8@l8*jSiP}=3KGNS#ZlgT`^-ZQ>x9SOhg47+-BJ9dGwfK=i{9C7a3MxpntvrKvuHI-)cF+mepO4g# zJ$?C{%y6p=pFXoG@9yp9@R&P6W~UhcR>AM1{%PQh!;Ro7+_{$f|vwj7z+lb8L=#)_C)B!XrZS#9>dcbmK~Mv(WZ6!WK$ zEHRFi&pKIBPj~0_(@SwwkT@W^I8)E0m;-`!;%AcJJ48bXm_;iT}oB zl=tYu@6EU6Ie~*IzQiiCxn35nw+W-6uTsoCJ7f`#NsOaqDT}vPH*Tp@mZO5i_xur5 z?P7}gd!YVTmA_}U)Q{@U8}iat1iGx}>TB&8CUf16JiLG%|BxL*OT~IC8-Ls;PtO5# zH)ECgMyV|Fs~Sr4cC0nq+3UYi(+hMlMTUFvPED(FRFJ^&iEr%=N2Th)`g~}yHoUsK z55=z8WbQTeHr)*GNpt$9nwuqxf44<1S~qsH`F1z`H!9yhwG{J)ro8077915Mrug@w zl(Xy2&a3sm>gL4%W9vM_qDZBSus}0Z~vy zF=vITGOc0`yJpv%BkHcYy1HK-XPZ9te)Z4mI?vswW@u;nuCA^rq1~-eU!O3omPF8$ ze?~7zF0_8&xj3f3A33h!tRMBarNg;1I&>_ZXaPQ{-yz&Z#6YMnuK!4k@g7nHM zk#NTcdL3A6?0kbg_O%GNSNprU{(DSWiJ&R^uG?%wU9xDumVU1F-{Py&@9;nCxkLKK ziN?CR|NDJDD{BsILDw%@o&0@u`b|%Xf#T`wnHx44?R(>>YS+xAWvP%sKmMwxM9@^0 zd!DfOe!Ov2TycmU9da}KxB5|9!`QKUOR)>gg>8F`{nu_lNG*Ub;k%7yk8i-IV;VgC zmTaWYj(@=(4x3i@%>nIJ(g>YaD3N1JOXz-YyHPzm_89RszqZ!nj22yYh(yp7y}}Xq zIR|cKgR_rip52D(AHo{JZ(-Yw_FJ#RTe|@tQnnZYsW;$8ViRCv_82>Zaa5biO<*sB z-#Z!{n5feVC0J!0Mit#=3=^+OTvLDO#a4e_?Fbt%MIvbG$5T55SKejZy@G`O+%`wv z;Ro%$S*Pin&)eZjuRX@ib2lJ-oErp1958;1y#cozc9@fOj{)bASaLHv>+AB^&0|K8 zPAin4qZKA>ugcCRR!N@kJ5?fRYULq2R0-T|%)Nj;j`eHGI`>cKsJ$pqrxi-buVahb zdPjQC6ua-=LDK7}cFPWHChalq{LgC=drcY>^FXu37YaRqrs7zdyGv#->U`_`#YvgORq%+2kEr(pq~a+KI}2xiC0T| z+icxGyE)EI%c(tUD)*p7j%^x*zS?8lyM&`UFmAGaf<8w(ymO-TI%tZX)54=Z&ah`W zJ5MXwVWNEQlH(?br_a7V-ea(zXGyb6VfGDkmT1GOOppkgqW{xuHmyto+gC51ea-8q zUmDg7_KKC(=d<2~zgD+^N`0e^YzuF|n@i2Wb<{>9MHqni{it2yYH8aZ_TjRRPAinS zyt*Z1I<(GMB|Jg=KM#py)i-A4&9b=b4{~*ef5Vm=Ma8G{v`HNy)V9L#S|GcK%~q)8 zT9)aMjrWM}pi@hs#JY|ikbir)@$1jek_It5S>mzZn6{^f9=ypN3M^i2g!H%x-aT7E z!^JVi*_!fe5^D#i?_iyZpI|4#d+T)Ulqi@}tR4I_#wcDLUq^iY9qi9RN7PfvqY!@+50ZJM|J)t&c35mw7vCB5^@%kTSdumJ&fz^j){v-jsGYw$|>(_a|l7tHz37`mQ_E=qBF9O3Oz; z<0Z3=i(SQ)Os!#%zH+cpPFz3OY>WG}U~dMx^Q1rW>tm`6gvb7KjDO4Cf=#3QgKOek z;}7wDe!G_sr0*MSRN9PZ`H^^tZiD zy#c&Q@I7rzz1dJSaGt@%)pp^#(_ndAuu=Z<|GtiQ`!?Aln)T=9uDsIdE2PAO98=+! z;=#s(pI4UOrp>W`{i`4M%lAPdXo|jv;wqzpua@+xKQFfIlIGHT4&)lM!0`L$7G&u* z2M#(G7}JCay>C7new#bbh{=j>@Vv)nZSUgY+<#wptq&}KBjuMG_xx_d+YAff(#0i4 zRbgR!M$duZQS*%fKd<`gEZ(3!|78SUaJG*|E0p+Aay|qsTWt7u#va{=glVazNAaUw zd?kXW=xD{g?NW2K84vsOv&)Z5uY(dfR?mScnHL%pt74CdUB+uYGx_nU@Jc3bG-deV-?Kbu+kfQfwgNh~ z*kl|Q^9*!^HrqyCL|;9|orhmLVW$;J<`=!$QBdX7MZ-nRs{DE}3OssUG`jwr#rZtD zyPjogb{^sNBbinxQR;paRCHW4&Y#0kb$>aCM{K*T^@?ilSd%RRiuZhLY|7&<&DMSS zJp$^C{?q8*)?E;JPYmI+UtQ6B?~QlR3Z38UmT@(_EdR-P*At0G!G8QevzOY|!OxRv zk5XmAVf@f%M)NEGJ3CmWd_NxD>a$jCgj+H_E+q~P4}%i?q2a%&t?2Pj2X7ww@Vh2v zypkwEQ*>rh>>zMoqPG)Qe@+@bwe&cvPk5$^SK{p(< zLWxT*YoKgD8`M99ul(YGF}&o(1T9;tT_R|Tj#lhL?>T}`%y~q68^6s#E0nmnXf<3d z@XfeC2YYOsDB`zn6IW* zw8Tbf^(Q4hevAa4A9-Q!c$}vmGJXm_U8a;aqfU87k400->mwoiq3m#T4$cVY@S4K= zToJ$U_^k`eRV4}zWylXpTs>f?SZ(%ChJ5f!%xqIy{7ysvDg1r(345tNofxf9;%eC_ zNco%>atm6lTn?YY>vc}2T^-U?B4|n;RWUDr{so%2WvQ~0xiyG_U)mIe2=IWmd844~ z?2^!GUVAw05d|dzi@?zk>=D;y6i>{)HregTVMZ&IxLhX+>Xj}56VD>yKeit)cfKyO z8&BA+XKP^U)~ax#rYFpAD%QH*t_mX$wue{qBH=^B$}lJd=k#|@?9WdRugD_9?=f0g z7#RuU8&!gO0qubvN&G$X4dM$j=U~MuT$OrIqCnv&=<}#F^R*@U2IRJNni-CJ{6xzgODw z4t!ToIBRu3J*Ur356Zs=W^AkrXPb6_(6bTH^ z?{4XB-h9F_jjet1LLz92{{6)j@;QUYd2D0ZhUezT`bEHowM`*|*!_^crUKW)V7)(p zQPETMco*B2SAKSh@qVuvtx#g*+~rbr^ls){8W6m9c_8Q{dFv3WEP2_Df*Wcb24ii^VAhKzEpe9 zhCW*k3zFQy<6IZ`STqc#U1<*Yx_E;8I!dms!z)fc$Ij@5IjvCQXlNJ=@oWZ*8sd93 z{8~Le~mnE`yllt;e1r|f(sh)7FSSM)JX9?VC)g6vK=mav zU7@f){>`h|&#$^w#P&_;E)g_E_X-qG7Qem0nxE&a zY^g4sR_M-ww70m^F!m9fx%C7~sp~2Apu}L8?*p?|Baz{CDRwltg5&C% zshs{+8~qiw%{S*mxjTI!uRFf-o=}m+_Uz%vSZ^w)6-vmzRn3gz2B4{c*UkLrj z_k~k)@Re_@)P*IuWM+l*$(&Z6RSbch^ZLMD@%NWUwP3LiYa3F8vC9*s9+YU)Ed*MX z?gKl9VUHQtC$MIEV|KaHc!{8?iBXFn$Btfbr#2EUf9_J(t1DZN0(eA^wl*w)}wBrr#$mF-2aTa7PP+bYsO{QDSuhU8x}M zX8hQv^-A|iyRWt9v_gsDdBULGp)L^e^M7sO_M5a^>1=wfjxs@0bcAB%K)Wz4^TBW0 znERbLtx#g-3ZSU1e5`{v9{S9@qhv zTv`j8#f*K}0=(+W)33JPXV_)UGgDzsEBETGg&fayc#$Ah=#e9dJ0`2E>&B+5THO62 zQV&W@Iv5R)rvuoqyy1WnP`B%T@FUPhl#@154er#Pn-N<6$5 z1)-f7k9L#N99{wtg*X@P>8L#gx(N@di@RA6cl1Fu5%TWE=mf_m*vs)RhP{Q|mEDXp~ z2@>70N0SwU^puS=G{1m-5F+}Fe)MWjNddyE0lPAE)H@XDF97%bhV)Gf%?*M4!6!<>PQ4l(f3fyuuPqxfBie! z{(EwW^j=Y7!iG2q3oZ_cJF$mf;#mEA&6ZHP#9{$zYO=>9+N)gCrp_f4M7{>__PdgYY(J~I~n z2~G!&g7`Yl<)5fmUq6WH$I3_qP0_!T_(jjyu6lBw99$c*!EVk?;(EdHsZn5*zGN&C z>j+yPih=`WE*aCOVUPP|dg+Z;XXcd;&bHGEB@SF(3$YLH7$yF}*}=;ty!Bl{-pI2V@OxeLE%!3<#us#npeg$L#68Gz9r)2Rg>uqXW(eBInij+RY0-{O`+89F&k!?YqK{5nj+F6^Tq4 z&uQm3`|)ch2QnL}P@;LMuJFqZFBleeS`hvJU8e!0LNLkAm1^ z$(jjT_j6hr3hkwepl_!seydWxhD=v(A0}cBjDs?AGqHZ zN7XHNjQ#1h$^7xrfs9rt5mROaIC}PjJfBVpB5_+_vX9p^{^`sU2PJ4K{^KOru-pe0 zF2zxe+MD25uyQg_Ju;Bd3MG2lCWB49mZYZGBYaQ;RV-gT_>~AF=M#bnSqQ}DADBoOgO!(F9c6GDTtC2wzETjjp84~c|{4DIu$<;?%(eT zA3h+F^64BaHqMV%Jw1@o3MKyJ^B|~gFDM)Ht04UI|6mTkKD^tNCk{%`RFh1LVdkvP z(4YYJc(47!CwJ<=8=M-*XoV6k6&C}$-x&rSJt2rzHOlf2<(u8ZHmlv(euZ#1FRw!Z4gjINYTo5-3H{*FmmE%RuKXFikrVg)P1vSzEY#oN9 zYB!`U4{MN*dmbCeXoV8y+}YiN*yH0-FTVTtbbPQluP8xN`NPFsxuXqW#&#t5Wp5rb z@IG@B=M}9`!kjhS<#kLDPjZgrIr)i~ZfxQC|yI*`!{C2G`*ge)sFLlGD3G4k{n zUaa_9Ekc}El%Of|K2_F5NR)j&h!;AatTAz3(F!HHHe3zM&i!RHYQzL_x{@y+eEhYx zOq^GgpegJ73JF)}$|n`dpw|@V6|GRBo_83$WcQ69lO2M{e!`s}jB?f6ioZD}Xv+My zTb|=*kCRRL-+wm7e7g%Z~HV6y0Owq_0f-LJ9UT=bv>O<8Nwaa12G6z4xU=!xRI zq7_O+l@l|!wH(HyXGwzCb~`%{6i>x}73UQtXv$idjiY*W^aH#6v6ucvoL96$iKc(d zhuVodjQQEI$JU}}Se0=@^>gC9q6AG@>#UJDbT5uQSwCFgEY2%hp~R28v*FO!jYh8; zhXt|muaV5N>my51;p`+y+w zWS^sbnKwcA66X~qXexPWcWBjXv$4?!M>XjC1}$auaQ&V*uV{r5s|R(5fEfwKwd~l# z=hHQ9`_e&rGx1$Z37UH9)egp&+iMI6Mq+C8M{V~0UV2M$4M!`KI99S99O<*iSXFDk zAWCn`qYqfvQ9LX2#6by~imDHgd)F~zQ#=w+!iww0K+toFYdBh=#4j%ma7lN}xY>E1 zAl`b{)m!=2)0c?ziV`%%mNtSM9e+1kUqT|)!%cs)p{%|_oL96$i53kSLC@shjLB2? z3Zk>_sh^ycPY)O86(wkDkJ!oTN`dD_ZWrtk{H&`!ENgn*MO?$t3MHz0)`nZ_pBb=! zk05sJ7@(i{{jOGDybemx)cY;f;Op@3#$it!m1pO{`j)GQwLapSfmSHdUaJP9i+nd; ze%mbw-@nG`M=LDThKuux5;S$*r!q7d>H^JY!#%spNX_WiCb?fLBB38 zFuo@C__1ZGKH$YG`&@BeQG%w7LY3gi(Sp!#GZH2BDSEzPmF=s5js#~vEuSR>9WO3>88zbZkOhGn78StPu=OwzkXr)T5Ec||LfcsZ*Q3}{;x z7ERhIh3??|!ZM3%I7-k|{M)L~)U77Ceng^v{!#k(T&tK({5@!e5~pWWg}uHt zp=sL zTUWOWV#CJn`lsNmys79x37T5cq#+Ee(E?IO+&YzyrLCKSZ=sY5NhY#PMmWaaZV)E z&bdt@EH~UL2(@!=11a^NSvF2ZLgk!Tp@iv%!=n-fp>j?nXv*?L?4fo}nXue&iy+j_ zxfN*2@1kWBG8oOi8v~?b8e9c%MG!I+BvrXO zTHNv2v=wyCo8YL_&KV~WmK&}YgxWddfTk=@#8Ii8GgcxjH^d%l=ZpoKvOEz9wR5hQ z2+IxE2}13h>w%_BPds-H36*nVg%Xw<#t1^?oJi1=>4~8^e)do}Csrt7x#3#TL*<-E z(3ItgI4ZSs#z=(ahS7phJ7)~gl;w#yDz$U2l?clXv4`3@*8)vho`{6nIin@Qbi!gcIoC*p<%ZZp?VM|XrYuiHLhYQZCBkyU2tlZwb2ZSE<%vkB zoijorEH?}ngxWbHfTk=@L_+PH;SyoG;gqRif>1kWIM9^kiP%H!oHAj#;VMC>oiiM0 z%JM`UmD)MOB*JpTm4Z+^XBg0w<%u{dwR5hL2+IwzhuS$;0Zmz+h=kfXS4xEChARZ2 zcFvVRQ9sHn~6$YUh+wrgPRWfIU>si51II z7Z5j`F9?-$B4Ih_e6XAoN2PX7`M8!F&J%>%ITsLvoClV3;;7WlIbR|yo5UV!=bTRr zavoUDiGDoO6hCVh^=*%7o>d z!Gcgb=Uift!NfUnRBGp(BN3KO&K88)Ip+|AoSpWh-t)dVDz$S4ON3>U*hB4{!NeeE zr#%yyWf2l8=fnyb+&Y5Wji7CrDaa3yOoFNgWP39^z zO%Q756uV6QcQ+JMrgM5`#8Ii76DyQ3ZE{zise({BClWMeI_KryL4r^@Csrt7+GO3m z0fJCDClWMeI%nN$fr3yuCsrt7+T^MlQv{)MP9$i`bk3W7aa1bj#0n)$n{?YhNf0XM zM1rPF=XB?j1)*|ItWd(V$*qMZ3PR1dp5;SEx=hAiK1fg1dp5;SExXNmkc zDwT6$g%YMs&KxmX5Gvj?nXv%cXIhk=(D(A!s zB}|)q?ma>fD(6IkrcCEN(iumka!#yJ!nDaUiNge;a!w>@%5=_yVZ#NXa!#yJ!nDaE z?}i9M<(x>+l+ zl74mX z;;2;4i4{ti&N*q4mmpNmi3ClV&bcuZN2PL3tWd&q!z{0Q3PRXs#NN2Yrttmu*V&V<_Dx%jiv&&4T}s50#jiA8;$tD* z_ud*tpOrBE?7P@a*Yc=a;&r5(UW=Dqm`~5K={}6~I{<3pE zeNU~toDwwka_9>lT@yDf#LC;F?AGkDBGUelC^K3MJ_ON3q+&t{<#L*HV0( z=s^jZx?XKQq|4bGmRH69gSm43&8AFq<58DW8Ld!)ey)f;ggzZ(FEiKU>G!yDO3>6F z^=CoqN+0Na13!JTUfjc0+CBN!yQz#;C_z6T#mq$Gne0)6X59anE2jiaHE1{)T72<^ zqXY0$wCa*BtjC((ywm$sMk|z{pY!6m)YQ+8d|lo74(`e+K~t@>jDP|i`oqYZ___Pw z&#g60Ry`lt7H45{A_+|aTYb<`NCI207ulTVa zkGPb|XoV8=d)H>`S|FFkR=4H1#NV6}G&RLreBy2D1EnhT5k2Mw57qkWUc81luV{r5 z^!mYO%iTOg3t43F3!7azC1~o}yVh_lp*vK5h~MY$N--_ldkp8LOY5xrR)jx~z z0P#1c1WgU>TpxC9ZV5}u<2BssMkV#uO-k|iZ&DepP=a2Uif8*=i|OG5GV*RmUAaX3 zxB3sSit}x*0plk%g?}UP>NVZUhWdcm4E*=Usf*`&IEOeCINEJ z_tO`&zUp{(A(hbzC8)RAZ299n^goK8OK!izRqWzn9gC)R+A6}lKeIty4|KJ^7WwM; zZoAtBO@p#=3$@joimU0>V%m3?!vE2jia6&z9p;tzc@N9reRScW9BK2dz+o&Ibrr z3#+gHox!0EIOxhLK~w+kZUFDyE*njsqMv_gq3fmnQ?-=eQW>pKg3fD*zu<3W^~r1g z(z0xG<&>bQ@^LzZW#-1WP@HF|7F$W5+@qlG5a$)GP=e0Sh~HgG{zdP6Fu&eVoL7{f zsqm8Sko?aMV?u{9qQ_MKU-WICYUz*9r!rch1f6FRPhlT>pcT4QML#B92PJ4~>E3S8 z;_3$Db4Hw7`e?td1*~hOyI)Ubv_c6wUnXWC6JoXRx0>od4!Lql(A47VzL5MX+L#-M zvue+(E!8&b-StV&QW>pKg3kMi-K;)qTCL2j^{crh`Af0ScG5t*qmGCE^spqKs+laX#^E?*hqrpZbcm z`l*aoC_(38#qYj$33Gh7*G?a^-IY^Gw-)CWC1~n;rv-4P_Ey6yBhDcgxx1R}9@bSaCVJ2cCFs1kxMR|I zE1Q0_u|8_6xV|FCqN$6HB~ZV>VI!9VXU`LgK42a1H`i;6_lj01A>TJx)$=7wyi-x1 zdcc)af~L$XE2jia4XG6l zUaRjKt?uD{gQuR=_*j>`y2qDPMk|ysulj#X#ychuuhsH5K1cv_c7b|4Yo)mTbY3+6>o1#d$>un(9_58V3KC7mD=7`%w|K`|^tq z8fr_$XCkdoLcTv(*RvhxSC87eitlqu(3HzB(J=l%Nod;y@7*Px_vP;@K5+9CpY60l z3DXVZj^iE0_5(b4-|CGWmG`-FO3>8Yn~~yog{r~)oJe$C<-`BTnvP9+kjiL<5~kxm z497d87aO$ZS4)VCSTUW}uP7~Y2OpLB`!zn#ixg%akR!`*^-H+;Td zb-wGsO?FRQ?^1%MOy@k?2S;^gdp+KJZ5H0)Vk)B*N|Arc6)#r4bS; z=fnynOg9{K6ju(YoD&I}GClEh0VGt;i4{tiZdfh`S3szo6A79!J+bm@?4fc_tWd&q z!{7G`@XpDr)Ik7?s(+%ez!xcg*=R|_0Oi#?64+)iXVucc>8xD_JEC`izB0*E8 zC+2^TJygz#6-tLJ89icXeJW2$gdpK~ttDo(jcL zshkrllrY_}Ofg)gr*h7pMA{Q)%hH^4x(AL*<(ycd$2Hy1xjs?loJi1=>4~WYa8xSi z#0n)$H*6P!D;ibKi3ClVo>=EC_E0$|Rw!Y*;i5^nGE?Q8NYIq&i4D%-s8r606-t@ikWpLgk!D(3I(k%f{lURL+SNN|#RJygz#6-t@%Jjsb z(>N-Xb7F-OrW@Yu94-izb0R@grYAPtgzLgp&WRODm~ObLR)io_&WQv~nVvXx7LH2g zoLHfR>4w*`uNH*LIgy|#(-V((!cnQ56DyQ3-LS-M?4fc_BxuU?#CJK6P&p@7C}Fyx zd-xhbsGJiCnle3+U&0G^l zsfC2fIk7?s%MI~~DwT60K~ttD#=XNHD(A!sB`i0L5roP)k)SEd6LC~(=UgihrW-bD zv`!Fe=Ukh%q7hS;C*r8o&KV;SmK&}YgxWb{$jZ$1V0j{rO6{EMB*Jn-?4fqfb!3I< zdN4h)O%o(k&WROzT+0n(1)*|IBxuU?#CbW9P&p@7C}Fu_oFG)ri3Ckqo`^lv&M6a? z8*UJU+Bsv>?jqy!wU#I1sMO9GClQt#ZWM&tIpfmqhTko?F>N>Yvwd(>YUkV_5tbWb z54Ce{AO^WHZEy8o8X=)}&W#dbxnaB@)Xuq)7-T$H&WVKDIpZb5a>Gr6P&;QlG006| zIVbi|JEu%oZkQklwR6T3gG>O+IdN2K=iDR_mK$ysgxWbb5rfg5{jp zL+zY0VY%T}L8zT`3o*#8U^yp_O6{D95@EUFHbJPJGm#kNHn5x%N2PYotrB6m;dVi& zol_8L&bd9!IcIp_s8r606-t+l;xZ_Dz$TNmk7%ZcL+l5oZE>(?f}a< zv4`3@Wx{g9oq|w1=XPR{JH_uCIPXn1IESNBJLe9Gu-tH$Ak@yegBav4u$&V|rFPDp z5@EUFZb7J>b0;y#-C#Khx1P&p@7=y6Rqbnbtpa!w>@%5qK|mD)M?NQC8v`vjqO&OO8+_kro0O*ZWn zgvvRwLXT^?;eJ7=oD&I}GMzJU7LH2goLHfR<%S0Yp>j?nXv%U<9F^KR_e+H3hS)>x zocoDE9stWZkx)D50g15O@Sq^n&Ut_scDc?c}$#8Ii8 z^PohSZs^>1Q0<%t(+m<*mUH5$)XsTGA}lvd5`@}04-tb*0@FF?dmk2r$~mz@k88Oh z_E0$|5;SEwClYGsOp*x84U+|-cFrVXkjY>2&H9F^KR zlO@7(P9_Mob0!mmWW+gfRBGpRNQC8_To7vKbP$8r+PYUgAUVYwmpP&+3h2FZzY zBB6FpE)kX+9ub7vIXN-NBVaiv5^Co>A`zBN9ud#{{8v z&LhMij}hm@QK_Bts6<%Kd0Y@`=R8Ub@;Gr$9F^KRk4c2-oX&ln)y{b=%^)#l-RHzn zsh#t7&Cyq+(oF^s1a!%}_cFvQ;AWx+^XZ6NN zsGJik^thIDrU*jioJi1=<(x>UoijxuOy_j&r>}O-lr-nWl;xb*L+zY0VL9g+L8zTG zg&5=+;+&@ip?1#G5@9*#SwR@xv+_RIzG;`b*5Y)fz4hI96Rhvrn}R5{^e(#^_&}>& zq;1*?AzY77iASX(;9a>pMzLl;iJnnxtJf)Q_(X4spefg-E8+9klSYDmL-g=Dw?sQN zDzTIVxBKbSkYQI-2&~Wv!fvGe&$}yr7E%lNdWUT)CVmy+zctPI-=|2#4QK_= zTK9skHvD_E$mFJJMRM`!|8|fFnv&0wMLyf@FULG*i8=hz)>G%smjaadTBS3bn(G4{ z%iy^iJ8irDMYaOGuINFJMN{Ssi}P$B{OoJfh>ovWVj;h@b>Uc{#M~#|aCfyIjB11b z2TR5@O+G!nAYYcpQzB@}nkhme>ggQEhY2s(?M8lS>)ZE_I0=-va(g&@8#)j^1>$E( z!tAS#dtdVLlvNzr$o?{{3)t`>CV>2US{a0yHYTTE+Vda3G&-L4J9>EB4eOV{JX;U&XpP^s9)CY&ej|>u7vDQb z1Wj3MjgaWx=@jeTa2j*Z@0a%E%h^81q~kU`umb9}?Eu+F;5EaS%jx+3DG{t=4)F}g zf4}vK1Wj2p+eq}^afAJFvI%=$+mEb`Iw}z(o`pk$iY?%H6khwZF8m8Ge%OlzR`rw! znv$=U#yon&N=|>}SSHRZTA{@Ig5uX`OEiY?`*@u=>U&|*d$xAlx zt8RZ$!7pviU7IExC^0%>EfjVs1q<5ZHFdjB`T5w^yXw zm%04N+Cc`Cc(`vZ{1cfMyhflK9C?wGZ=9@Y6~%c)k400~9V{dc9Q>Uf7|}snmB){) zfph>RlD0&{yxy7M-=*j{_E#DCzX6N2S=l@#f~I6ED*XHiyPR#l7F1PyUZt(&Oa@A{ zTo?&!556}_Fm$!Hx8JdR%lB!!Du~Z3LeP};eTBsB_{}VRnK;d(mtWeN)VOy^K#82w zB4BRq+s30G=(TSqUS$2--_(k>^OOjhvc5U7$I>Ywtd-cd|9)>j@;#UYl(4=Bu}ABa zjVx1vZ<=QrPl=!@*|sNC?!bz4{as6~=9jic7~Po?fA3rhEh_9YQbyt&K+Ods8TWP3 zFJ<RIa-7TX+?S2rj?b&V z{ilOO(3Cv;F=(TkqnrCHZK*hSX@wGZZ_I|fo>7Lj7w2Sd+6p-S^eCv;6t9C4G$qgC zOj`NDZD#x{ZGCyaw6*8_(gC2v)RO_wdSsYkyN~l%xi62fyB#Q?UoYh;5i}*wM%kyI zwO4)nL|fX?FKrF|yBr6A5*1&Jgcj*m88wSzkEE@xTF>Tr^kd@liXMxm*%WG*T zD&5i=dHJP13vj&CexO7_-4|Rgh8r1uajviAgQ;5mDOvTdl{_VarsUbdq;*rZIxS9V z^XvMhJ=1`5eUvD;rYnS`k1>*$-qr4>pvj3std2QbCcqe5}Np>J%i;MzY{3&;(b{t>zxg}_TfF2Ic*B+d+OzM z)XeEA5i}*=mGMmfTw9i7uVZpyzqDt`@P3U%EGq-uHy4D7xA9(4<-ojpx`1C;(H|Wo zq5?_DcbBxIceK*GDzgaT2DCzn$3rp2?03Acw#UmwpIvkm%P6iBDM3^6U9v@e z&T8q``?K9e{nDQ8OD(V+DDlgl3h*RjZKzcqdvu)iT|43x%Z!4a57f!Rb&HRW#CITfa zo5XvA;a>m|Z+!*!yE z+Bw$~gIq`M{2-xr&UF%DxnYbT)Xuq%7-S5&gN20JIb$Tka>KQPP&;P~G03&#P8j?nXv#86B-G9sDG{a{j$Dpww$;uV2{dJSA`)un zTq6;d8?F|F+Bw${gIrBk4j`d+&ealOy5Ya~A_Sp!&edrKi7Cqyv4`3@Wx{mBTE(%4 z+BsLJ86>7G=R`v7oDmXXx?u+2a6zb@Ga}6(F=aZZ^C<|Gb7F-a*K)%!(L?2&KZ!Kw z3`<*C<9wP!<(ycd$FO=UgQbrW-nL;IlGn=UkO$keD)^)A@9b z$~mz@k88Oh_E0$|5;SFbA`)unlnK)fE4bmaOKRs_2{dJyB@$}qTp#31Jo=R`v7oO2|?vdLgUsGV~TG00%DDhvs=a|TO<<(#txp?1z- z;+(V7oYT3BhsrszLXT@XC-zV|ClWMe-sg1gMxt^~tWd&o&RL>|$~lpsDeK-O5^Cq1 zB@vc$&J={&IcE`roJpJ$3AJ<1lnBc?X9z;=oHL0*&LGZ-gxWc0NQCK}Zd0cVLhYP0 z(hL$)=6z1*ZapgJ#0ovG>6|CO2Z735plT^-$6-t;kx%75`=%I2>BxuTXPUkLAD(A!sB}|*VU1o~tp>j?nXv%a>=WbRi z=fnynOy>+5GD-AMIVTb{W!~p>?#iWdPOMNO%{lo5(L?2&NYIq&oX*|FRL+SNN|?^s zugQ4PL*<-E(3I(%&Rx<}&WRODm~NQm*jUj+<(x>+lGoD);#y-DY;bt>n?3O%lAlb?S6l7PxNk)SElIi0)jshkrllrY_J>aLOEb*P*Z z37RsU)47YF$~mz@3DYK%Gma2FRL+S6O_|Q=+znCXoLHfRX_Fq4hlw64=R|_0Oy_j& z>Zo!~tWd&q&UG1viXJNGM1rQw`<%|*DOJvi6-t=Sxo6m5(L?2&NYIpdpVPU^rph_7 zA`$=D zRL+S6O_}#OoxAC(oD(aQFrBmduD+s&$~lpsDRTv_b5~%Mb7F-OrgLt#^$|T(&WQv~ zna=6l-B{(ESfPaJoabH4f9UGz{nClWMe-sg1gnyqq9tWd&q&StZ_i5@EFM1rQwwYAROzg5nO z6-t=SdF4|V(L?2&NYIqIw${0exym`QLJ8A3^SXByJygz#1WlQ1YYY1$G5F3__W0|1 zrhn|8wo(==l$aQ`2y*P`1$Sz9!q*YJm${T)&&EXhN(4=fDzF$LPxXXb#gG^o(wB8A zv{IXRU=*io+Rf|TM?Y?)U6(r7x0mg3(lPmu-dgQ*leu}tiWN%CoWB~}rra=Mp4|{V zDwQi@pE&zZd*DAo5Q~-T{<}CID#aCrZ(4Y0kwnrfcK%^qDS$sl^hxCxwBo#0i0GS zK|klkorcDb9DlPV4%^uviJ+;+#T!GwUtQqgQ2bW=(IPx)W0(i~>uLa}6-v;vf4Yxv}7+`0y(Wvf`0GXY|XPoIzloY zbqp&xO(JOOW@shoa6*H6{&+a75w8=GdvIR*2oK`47uS;#V+V;pM-n%lh1t)_ff~GRpD+M{@v%-+Fcop9Hd{r&6 z{C!9K#Q;t#l%Utw!fU_mcbh97_zrp#BoQ>V@O4?3f9I3YEqRFOF?d-M?c1zyM}RGm z(+VZ1C)jL#PF1k~DEiW|x9Bv9ps6WQmEpnByGFX&XhlO=Gwn_Nl8%7Vft*$-L48N; zoscr#UOdw+$LRvoB!Z^g`qYNC!&3}@$8gbO*TS~iA1x~+Z~Gd+X@wHh+ibS$q49Q& zopX%;BS<1>s#WQxuyyucqxLYg)M2ANw5Y35ZbQxma9W`R^-nR^H~*ZyUf3>2vm-$g zK~n+Ytzb*O4aS!8qeYKAM_Owhjk?-fi}Q+BC_z11{644mGyAL95XXD*%}EKG>Th&` zE)TBtH*Ix<>L8~kk@aqQQ+e^ z(Idb;i`F7t9<5fzKu#<4xO9F->@@ZGll|7Lm?S7YO(JM2Z~H)aet(IvcQVdKm1_Uc ze!pS`?O4V@PAin4^Gsr{?@c<*wtT)@Me$xyf~E$I42AEVC_(4T#1+{GoAzZ=Y5Q04H>U(mje4^X`oE1amffB#dfc>+viG^&QhOuLD_Wrh zo%gfZqR*$=r@2nHHx=hDC1`5#tz{5hY=_ZuCC+kgNMUYCvpuwFzXotxp#+`36i>^( zzG6SVcdfmj_&-Pqnli5}GdIH7+6-%kC(mi`t_^(?z-fgN=2fk8es@LWR{Mlkd+j^L zX9*=}%B$cSh|PT6n7SWlo$r3@;?P!WTJP$CoK`4dUM)N4se9C(Z!bCVjJ;O%X%azG zkK05;)y;2>5A|^Nyu}|I9qa2g(1zp+EKCSs1`%3ZIP6?W-7#ssx z$7B>wRN}`Yh zCQ=(^W4>LAXp(@4f7-dY_Mrq#y}lR)rFj#0pNw~~;&*E-d+&bsA>w*UpNq;o4MF$M44wfAks4op4aRx4j1rxi-b_Xo$kT;^!o z@Tz^cxE7@ZO^wL63OxVp2m{;TJ;;QM?bzc=Gm~2058$*y3Hd%J-*VV->DUo_PH|05 z37UH7SPF)#7sQvvd#QUXv}5n<<#s$3zq~{%l#uV&P6)s4__965K3li}C1}bt%K_=| zo^X!B&DhJpMGnRS(wq}3lrY^eTX`f@&WQv~nPz$7Iua`9#0n)$Hyrv636*mqA*KE^ z%Wu(m|6JvqSfPaJhUj?nXv*}&lybOc zLgk!Tp@iv%quL;$a!w>@$~4QwA4sU26DyQ3-LPXBTwkJcP9$i`G|L@#kWe`%Rw!Y* zp>v&#$~lpsDbp<9@5Oa8D(A!sB}_LAyMcttIgy|#(=7W>!!<=J=fnynOgGFDi-gKK zk)SElEQ>b6wNWbP#0n)$H$2iC36*mqK~tt#hNQz)VJhdu3MEW8tW_Qfm2)CNQ>Iy- zzlns(Ik7?s(+$UdM?&SCNYIpNmX{CUdN`GHVucc>8&159gvvRQpefTV_b$h^gDU65 z3MEW8^xB7n$~lpsDbp;gc!vr?<(ycdgz1KtW+I_-P9$i`G|L%L zMODs;1WlP{dFU?oP&p@7C}FyxcY0jKs&Y;wXv#Fp!uya=IVV;qVY;Dn{jSP6k)SEl z6R(D@5G_IEW>sBD(A!sB}_Ne_9CHjP9$i`^u$vm@tFpdb7F-OrW-n+ zn@~9?5;SFcVp(^5Hbdo{SfPaJhAAVFP&p?OG-Y~XhGO_sipn{$LJ89iozJnToD&I} zGR;!EjXhM(i4{tiZusa25-R6Jf~HJQoV+Gl5Gv=y3MEW8EWwaaIVTb{WqBe#yQFqb z`AH5%uC$1BO+BxMX!z?#MLhYRL(`S|^ zBB6FpnXudtpSx2#=Q^^YaXna`h=kfX<>&4!H$+11oa@QT%=KV-Vyqz4&M7}XXt^O0 zYUh-nYP38tP7rG6l%Jfm+z<)1bIMO=TAql{jH;beegf2TLnPGBDL-XuIp;<}sGU=O zlGSoUB-G9+KP_uHClYGslnKiXkx)D5Mq-d6mFArIoUqzC<>!PgH$+11obuDlmUC_r zgxWdfC!{SmL_+PH@>AHBb0!Ev?VR$H-j*98p>|IBX>!Xskx)CQOjvHXSrBUHOdtli z87${SLhYRLbM&SgcC~F0gxWbbrx_%sEayZ*?VR#{0G1mfp>|GrmjcT<69u7mPI)H; z%MFoGJEy$cg5{iB1)+A%t;9JKi5nuJcFwI*%5u(af>1l>Hi@v@5DB$&%DZ2f&Ux-8 z5-R7!3O%mnhDfNK6A7BKoO8P%)XpjI`(e2u5^Cq%P7HE8SkAda5NhY#ArY1vBB6Fp zc~=$7Id=*|?VLM_bM7E+h=kfX<=tUS=bTx1mmpNmi51H^cc!_ab6*^lb0T3HB&ICq z#2#wrlnKiXcMC%8oV$oY?grC2UH2iOa!#z!h+^0z8oJi1=<(zv&54CgdkqFBT zkx)D59%7Jtz;e#Lf>1l>UWu^W5DB$&?j;7f7cA%8CkVB3ioL1Qp86HEwEvabIpy7~ zEa$`?YUh**(+!>bc&VLpUz$N;%5+Yzn|%Q=xyJEu%oZis~1IS&(qJPej|CJ93AobtYd zmQ5m|c20RWM9Vpo1)+A%WMZjFS#HqLlA1`bV$dwoD&JPbIQ9@TF%J? zp>|G2p7U~$=gN>!JEy$MrsbSSsGUr7a?YcohuS%hN`&Q{NT{7t-i6k3&SQd5JEy$U zt>v6ZsGU>ZP1kfzzjVh1p>j^F(BoRpiG<2Ik)SEdIgwC1r%YJRiGUol_<(=R73{wR4^%&UuPBClYGsl=lm_oHIobYUeyfoHKBQm-2m&m_J$z#bzP_}%sR_4`2B>m6+*aa}AxhaT-6^>}LUe;%kkA_GDO$}`v4lS!VjK|lp$NlI1?BiVbX@|0n<_R^# zt_KBuz-L$|$nhiu4pjAl7h^lYt>Ft{zTW^?5YR;s_IK6ot$T0RvW@rWv_c8<|G9Gw zefF?b_U!diwY%+oC4#2h*Ug3-Aw$8vVmHyFL1&lbm3OylE`RxRTA_sb|J=ETzC+Ji zNzZnF&~gv;l?a+D-D?U!ixF^W53W`}nP-e+N$1U4u~K6=tx&@Jf9_mEU-d_{Bh#0+ z+LML85{2UhgtdI8Sos86{z*_^OXpinpmznq|4+1bI11+ zJ?;)!$AT(+wXZ2OhSLfq%(*4!8v5=2_t~)U2HKloUx}cp1B=Up&tL;SJ@XYk#va|o z?u}b+Z(MT>rxi+=b4$)O^y7EEW;Od>vR|9wD-kp``g%#RCwX1C9^fZ>>?paFx%oG7 zt5#qPrxi+=b4$)O^gSFO*w~sOZl`+tN(4=H>QM|1*DDWwsty!A$`(sxmp6GjM!fas zv_c7UZppcZepqrUd$N3iqgWeXiJ+;~or*%!1qETivq7Rq(+V5dg`W2u$HjR?E0i$j zmYi$okFq!kk-juA#4U zf#m8`3p@ccNL z|6-4bOk@SKj^VUI33G1AxrY8#!!mZaHSbyX0AGoqsRsK-LWVhWjqAfEh#oH{Cfa?g z#k0?~#&BApggLk5Tth##|7&}$OD|ceWxf(YQ$0@x!l%6RjftrfMUMs}a%$HHM6tjM zV>qo)!kk-juA#5#-B!za{|*~H$X6n0s>esMzs#&9#>a@sqR0Brt+dtM7qcf{{5h>q z!kk-juA$EpyHJ~X;1rwU;VTg|wds)9vFXNYqjQ%4(W6v>N!rm`;~0D3&uN7c=G>BV z4gJ!ZiQ4$1TUk%>T}ug?`u*v0$d$O+$o$Jx(c`@D67AsZmTcE!e@-iuFz1$>Yv`*t z|5ZEvcrp9f)mI{D%Dl2XwIfLMh~FQnt*u>vl}|T@(+VZb>s{v>`hv@EXvI5tu|pGl zC4#2L&y9pBEq*h!8q-COwJ+kdiI2`WM%EG6KBPhk^J>|-hJNLar`n2sd0DLpaqUA0 znhL$W7S=s|Wq5U;A$nZ0Z_!5IsNuMPpNXVG33G1AxrTo8;Z)5h-FS!p2=SRn2%1W* zu^s}WGeDC{GewV1gSToQbH%w8{MVn;3MH($B^*`nLm#w9Lod0_@br}knkv{O7V;O( z3t<^&2_mLbg7)sy2K%)~{+w1QVa+Y!s2VsyK$Ns#fuSC$)ojS4Lb*2=Ycz``t z9bKzA%4FAiKlJCcLJ4bb35oQz?`sjsO|^2Jd?kXWHeOu^Z!^|}4EtvbqKwOOE$f}8 z+Uc+UoK`4d%`IV%>vb<^7ZRsybw>M21WirpyA~V`+~Bv#!GieRF+)q5;-}@RJciQ> zC9L%fII4d#9MGD~UaNIl?kf>Ab>zVsnA*Ax{HQla5Vz0w(88zB(JG7cidHCLt!Kbd z?Fx+0#>ORUcgFfk1WomB9|l?bbooEF&O5rQ;%mbZk*Xl5AiV`eRQeA?x#!#gk={$_ zMQUh*C@p|U?@9-OgdQNF69OSQhmeqj(3>J)!A?^|6cxm8w!>uJ`PTlAwf27Qo(U(p z_c>?YL^RGhLlUJ6ggQmeEO)+rYNU@9B+R`fT2;Sq2RY|kU33by?_&|zRl)mMT>iGZ znDrISsMPCXApYz|XUh*Ge5@d0?ky2+ zbyDPeEmn}wZm7=CbIwVxgC*6(qD9(z*AL5Y9P?z%Ff;Uv#0f=bUp= z1qp4F>I^;Sod3O6_8q8MLYrlc=jX^7oOAwH0YbZ>Iz!JnClT1C&2r1vG=pU23^qg}NfnC}xKVCs+&pGF$3KH54)fsxuIf=k7 zZI%z(oO2R^UD_;nETyyOoO4nI3GIgJ3_a(Z zL|~Wp#66?v>^bM0R6#B(xi< zGxVHu5`kUXEdLs@RLlPXAPH&kcnIp-t-yR=#EZ$)R%Ip?Gb650*b8G6n+iNG#x zmiJ$wljNLpQUwX^hUyGG=bS`fmo`iHztifRb5aEf?S|?MJ?ET6V3#(_A@M8ZJ~-#3 z3KH54)fsxuIf=k7ZI<<9x{-HIsvx1=P@SRYoRbLb(q=in#V2wG=bThQLc5_lL(e%U z5!j_YaqBB|_MCH0svx1=P@SRYoRbLb(q{Q&E;<*^IVV++&~8ZQ-sLA5#yN?=E^U_I zeMU1l=cEb}+6~nidd@kCz%K2HWtOjzGdSm@3KH54)fsxuIf=k7UtP#d6qvZ_VIpyCKd7KBQ*EMcPtKywA+Un9~xisfmNpQ|d6?|RehO{cq zIf=k7W0o|7cTSryZb$_0oNEPk8M9m`3Enx^S%h&zn!!8gI)PorEZ0kdch2<|Vcd{b z#XIMEIQ6hjXtVsc)&@y%&Pf$~UE_wdD$Y5Hz%FB!8zsRz=SGV#Zb+-*opU3cde|V0 zC(;bwIc>tYArZWDZWP$1&9YJQCP{G4NfjiF8xp}eClT0XoO81zc<0<~5ylN^2Jf7k z!5}vY4xSpmYhA+3sc&Mjb&F+w}%)~{&> z=bTi**EMcP1m~PYV3%=DI<3w-=T?g_Zb&nD=iCYgxkVV~q_gL|b8fQ;<@0_s~Vcd{b#XDy#800o#oRiL;^UfJ(5ylN^RlIY?fkDO!dBsx$PwbMDAC zNa`}qNoUV_=iF%##tmszymRgZgWMsEbJE#!-Z^(!gmFV!74Mw8z#w-DeE#ZZODQ!Z;_*;GNSZv>U23^t^NK&NfKuGR{e-)p_UKV-dy;X;r*)?g4|` zEsS&Sl?3mcdo4n{p*lm)JLlePgQPCwoOJe_cg}qlVcd{b#XILdFvz{aI47MX=bba& zB8(f-s(9y&2ZP)vjC0Zq-Z^c;xFHd|bH;-~#tY+|bXuKv&ixi)+>mDQ&bc29GF}+x zOppZkoU`881dGsasLs&y&Y6&Hkkn0CJPoQW1;+>lnqJ7*#o z80Vz3=e%$s&v!(yDmpOag;Ele6d5!hv%lTMQJ&gof%u}NAL@0=buXRY!oHHfcIcI)FGdSm@3cjv!Ln1imBm%pPbEZmycg|Fc z&^D>g(DTljnr)EOrJZxr;xsvfb55$@>l){zRdLQq1a=wcJSqv^IgeU|aYI@a@0{|r zvJEl~oHJb#ymQJ55XKE@RlIYigFzkz=cF0DbJ~QlNg{aXOb3HZ7sfd=B*8mphD8|X zq#3+(W`IGagL7s|f_KhLi!jbftKywA6AUr~ob#9@c;`H35ym-bRfm`T>GVpT>=oWSsJt# zpXY2N>g8H4_N8|acj~p1MEdS8orUZ3xiw!6^Ra@2{&}?^Pa8?RwfVO5)GuY+Z<5Pe z1a>{$aiKUotEYJPZhJ{Yyp!l8H!bQ`Z5-xf1qpqRtf1dk62)fhac;g;!%a*mYZ2I0 z>FONOq4ofAYkNmY{M3A^GySECZe)WnA1g@cpI0giu-P5ptV(nKn}Gy&75#ClcyiJZ z5!W?b&iE$!Ip@T=*WF8UA6P*`|GZLJfc<&00XT% z#usy+3alJi-F>4|n2!}C^v^4m1#r@@CABEr*!|%|S&P7~xUNHl6FXdFbn7Z-?DsY$ zPw!LB-O?w_#|jeqT!zX5oZni`%PP>&oqD{iMPS#a&$^4{8-|Mbd)?%WGIyJKq4g@e zgFA=$SV2PHBU4#`v=NKF+QsU)@A+jd0=wQ@-b#G=+#nITrH7pHaCx+MKCQHSyGfXj z6(sb}E0qNpzx1qEF!B{Q{6JZYz^=1Ghzl?D5mWp1k~0>zyx?7#RlxmNURPK_Lf<1( zS%9;Ra{7;Qzu-2L*Dey+6*cUCV(o))kz39Q37MJ{;=lIqJ*V+oVLn!n(D%qx79e+x z5`Nnoe>vevWi0}`#>{_$lUXIivQC!hX)w45w-PFdr*O=zC-;3y`zR>wfLl zX-<=4Wi0}``lVM8?RpB)r9?kD!!26QzqVkhbD~$6j};{JJu;OA$RDWZ7q~Oi`Q~I< zi@>g$w@ZnQIckY|JNnBRJ3e^Tuk&@7bFf>Oj};{JJu;OASY7W;e`;1fe z;l;(^=@o_7bD*4YB1d(<(X26n+s(p!tRSK9k*O>|-3E>Qw;K*iEPb%7MPOG#^J1di zjWGV|Vufd!Cr0aRTJo36i0=tfWR$MfU$}Q%f z8Z2j&Jn^dk?#2Ikf4wPxmOupweUD6K0gfls^EXCK_eva+KTCkXu4-pWi%YqF3yvQ+ zRL18bfyFR-XD$2I{JowU8I&~i` z@x0&p=`^oP&oCb=Na%ZHDhsfsL`gq>*nO|vnX(pvU70VvE}kEo5?ngy9XaDbpC|l9 zoqqFb%WD@aNa%ZHHU7&29O|6YpMT?d|B2MH7J*%>7QZ2i)Qt;vdSRrT@veKp>p!`G z|60p1A1g@cdt@pLF!1ylZ}R?E{KAQ4EdsmtpK2&B@BAcq`V5`AFVHF4TXvr#`Oeo&BkSpIhz&3G8}$Trctbn(4u773oBLRIPo<%>&i^Jgwws2B;vR?~$o2 zz|A#n}>`4`TWwFvAw`^*IKLZNBF&nt|RGm5-Zz#01Bb^q$y^8EuUNa%ZHDhu$_6aAeo zXC42~H2MAk1a{SJFkP&QnG*~@F<#C{czUYSBebF)(>lz@3KIGrnaToG6?>gi_p19< z<@Y%f*mbM=Jkhk_vS9p-33A5l^hBq8jiUY(`LhHoNa%ZHDhu#k@t>WUS!I0sd4&Xa zotw5uG#I@(7~xKmGiLsL)2V+mr~j(FuCRiHzDK6A0HZoT>z?nP*Do%A?jnI*`V(^H zZ$FSTuJq66R{G*g?@;qFA1g@cdt@pL&?_UE>qapDh!5qA4k<6W zBg?(##S94Zv4VuTM@FkU|6b57cCw{cAfv2BU{{;U>&2gCpA@&m6iKxCrHWf8^L}!V zc40nNkTB;mXjRpwyyZ@*J3D!_{9J+rb`9>hK@_@QNHi`zRT6jhRdfZYP_rNasUW*kZ%sn#N zdAapLcjMLOP6zop5ee+NacZ5|v9PL$KRrzn#Rk6Y-tIKq+1517#|jeW9vQ7_-iH6V ziHA2hb>!z=B(Q6J<7n~oa{)1J(R7-zv4mTtW~|epOPG%pB+NZBTGhdO6~1wf5^+89ySd9;b?)>H^Ra@2K9`}g0AqceeaqG*^iAZ3V zHp@Rt&6G3zQMa7)%W}HSIvVGs3KH54RThAAP9m^Nn`NE9Xa?t;R6#?HqU8}FP{K|;Hs$^vlCNd$Ijvs^HWPQ-K0 zNfjit8>%b-=bS`fmp04qUZ)fBoO4nI3GId|3&1%i5!j{8vfJM@gL6)*Afeq*WdS(n zBm%p%Sq3i5lQTHyqzV$+4OJF^b50_#OM9Z&L#OUJ=cEb}+6`3}fOAeFuuGfe)H!q_ zo^wvBAfeq*WdS(nBm%p%S>9_;C*nEhqzV$+4OJF^b50_#OPl5PXXr#c=bThQLc5{L z0&vbr1a@h&EcF@9;GB~xNN6`ySpd#CiNG#xmc4c^lruQzqzV$+4OJF^b50_#OM7D9 z`E=@@b55!tq1{kr0XXL*0=u*)zBQ0e#B(yDmpT$_D*qi&^WVLWl2BzWgsXA#;Bm;RRp;GJ`wz%Jv7G=q0en=o!j zJLjEq9h}}+D~un*~#A+3sc&h>D5W1TRbxPfM{&bh%Nj2qIbc<0;zr#IFM z?TNcuZIlG(oK(Tr)o!S=0Gx9YfnCNqH^~{ib8fN-=A+3sYP9m_&I48~E zozo_?8>%b-@0?q+4U)QybJF>C-Z{5fgmFV!74Mwez#z8@(eg>gNUP$Vb2}JhoG{KwXU}=( z++h*M4QU4NoIAiEwrWu@bQUzbvxFOBpoRbLbGS2zm`F7?xXY+k~EyB1V zt%`Tfyl!ztRdLQq1a=wcq_gL|bH-bQaYI@a@0{^qko$yj zPC60KJLi6jFm6bz;+=Cp7-YQA&iQNM1W9ntNfmru^;GNSZj2qI< zdFM<3gWNBSbJD4M-Z>9ggmFV!74Mt}z#tQZan6I1;GOfJMHn}vRq@Vw5DfBwFwU7M z3EnvqEke7Y$^!7tnV4;m)McEL&YttmdB`G+8`7$H=R5=knJA2N(hS}?ZNk_j&ETE$ z5Ex{lFwRNm+j-|qvIygxv?|^?lfWPkfpgONcHTLYEy6e_t%`TfWH87ia86GWymNXM zp`BA@0eI*1vJH~DjC1;O2Jf7{MHri;Rq@X0gLBF=`;VV?0 z!q_COig(TA;RP3q{i@S;4KHu8PSs7KvJ8PX!k}b5+!SVu85( zQ*v;3J=(|ds#W}d`qpt9Uidy4D@eSudy)A2^2uQ8L0Z*sFO~8i`NEAo*55+{yHO5?;Q9gdli~0CuehUrbNpQmx&)BGu6x0yV%EmE;P7fhOn&wmf6v+uZs=>90^1(U z72_8q1gm{^#riI4dSsS3GIm!mycex%`<48DRZZP@9b|~ z+}j!bJtVNJ-WRh(_1K-kS^4R!yQRc6ul3gr-5M9~cvwLKzYFAVji?jneUMVe9UfQA zM*_P(Ydc$HRgVk4HifRls2A3HbjgMFv4TXQDj$oF zhpY*%zDVyM18@E9JgVB=U;gv64ieaP^MeJV;DVLGeg}zoyZH%kchVqtUfjJvbg>zt zP~^5?p!XGlSAP2^rivS%Z4OqNLaT}^k>yn$72%#Z^L;W_kictN`o~uryzkcyakn1r z?;(L*j|xu}2mjs_>{5lky2Za->FpWZ!7X|6j)xT_@Vg)+D$e@gqm6VWwu;Z|eZIM{`^&>tK30&xYdR!kz^3}i9h=>BJ}TJPBCt#U)jxON zML7fiHXv4zz-wCl{lWWV$_4&DGSNo@yY%l-Sotx{px?IOKmM)qSV01>>5!1Z@;BE{ zdHkE}k-#o}r)XRY`dZ7hfz1 z7G6f*A3faz&c@6Le{W(#2MO%zE@q3v6+a4o)t893CiiyprY~_u{hjJ9`D~q-IlroS z>Of0T=X#O!O;vIAg|?EIHL;hwbN_NDr9--h6(rVATPMD3RbA{m z+fov34i0qZ-QMklt{HC;*tPvsw1`?95Rt3eN#baMj_xZ_nNH@(Ob;ta==%(LDz=uy zPZv75VVnMRmd1{^iN~j|scUfc)ndE#_ozdao#QK-%r8dr_kPIqu!4kswyiR}|9k48Q~C3b zZl{goEdsl4l$Q$_1L0R9-1olA^ss`2zR#dCyl=mFrvAjTW8M8R<1GTadN&&) zmR@{E)ICQ@);^=FC)ckv#4RNM&#{7pezvVLyc>SZ=RHh&-<`C5yhUKw(52nQ<@8~q z(vV(q#?f5?x*s)LIS(eH`EfJeb!lwpW9E)Xqcn4Ut?Jn zcdopyu!4kswyiR}Pu{5QFFN+JTSnRh64^kC?7csYlIJt13oN?{7R{q=Lzjdztl<8pw3H@wa zWq8+2?CV$iDBY>OW4uLR*U)n%#q)h@iS3~gaz^#GJ^dXot#Z!EpNUvOLOYeBVQBLBXMqQ=F+az?QGAivtQ7oA*kA6P*`KigIr-jpq4{FO7O z1wP(1-XgH8aJd&n;m9JQ?!uvRM(TS*{OBC7COsp+&#{7pezvVLyvI(B_KV~>pWJBu zc#FWU5qpY>FZ<^f|Gqg~&X_uNpugtftKK|$U10?Y{cKxhc-N;4_s1p9^xDYl3JL6* zd7zXi`@g%vpTBrV&KO*vhhNiO@2!y66;_bY&$d;DH>q)NzuS%rUR}8lB(Uq5uPTVF z3YUT_+l`bn{`XZ2|GkPodG+M?IaZL+&$d;Dw^LSgzu}%|{Ga4?g#>nu2)-uvJ@A8h zzj{~BD7m$^e{SjX{`Wu2uN72~(9gD2hIejeHNSSfD*oJU@@oYIcD;1Awiy53wqWMm z_vDPI!NvXasnvb@{=f`s4tg-p{du zgnqVt?Y|7~>x(~4jy*EkkCro#z^=EWhKZV?lY?>3N6Hx~BXcF6X*)aTB;m+|Efn7P@m>`;_d>Cx;$pkqg^1$zb{G%fLkUNu+ghiB~jzsPVV3-hrLq2W_nmb z!knk3o!2Zm#9dM`+RG!|0151Bd1$?;{&@~j@gJJe;PrlPwONBa??$GF6(r1gYTEh0 zrtiC_9~AZ0$j_okVAnf0Hi+uq6cQhPK1~v(P7HRJH(HQtZukkHSzRfe}zqe1SBXLdT5<#mMwc4@QpTF#U+ z%I)gtesKP%b5H(k#|jeK4ONDhb543K?9yg=BkwFZgL6)*Afeq*Wq3K~Bm%p%S=RWR zW^m3)6(qD9sthmZoJ3%kHp@}_X3H6zb5aEf?S?AD%Q+_z*rm;~+M+pf2IrhqK|;Hs z%J6c|Nd$IjPyA>QrA#^JqzV$+4ONDhb50_#OPgh;{5#gXb5aEf?S?AD+lO&ZBCt!F zWvS~lgL6)*Afeq*Wq3C-&PfDzX|r4sPf1qJIjMq#c0-ln<(!iU?9!e%=A#922Irhq zK|;Hs%J6c|Nd$IjPmCP)k(|LfCsmNpZm2T6oO2R^UD^|q8&S%Xb55!tq1{krcsb`J z0=u*)zFu&loWVIKRglnbs4~2qa}t4F+AM#_q#2xZQUwX^hAP9$IVTa=r9Clx(IPp6 zb55!tq1{krcsb`J0=u+Xt{hBBR?a!8f`oQM%H7IOuZ(jNfnC}x*ECro3C=mGf`oQM zmEq-_lL+k6o;bPuQaOWjPO2cG-B4wCIp-t-yR;|X|CwfR&Pf#{v>U1nFXx;@V3+p9 z7F(Ce8Ju%c1qtnjD#Ob;ClT1CJ#pGQ%jFEtIjMq#c0-ln<(!iU?9!h2U85Cp2Irhq zK|;Hs%J6c|Nd$IjPh3}FrJTVzCsmNpZm2T6oO2R^UD^}Bc|oRbLb(w?~F5zXM7lPXAPH&hv3 z&N+#|F5`(&at805Q5K=yP-S>|=Zu0=*K36F#ArE#cg|>w&~B(Qyu5SD-_Dc$`&ZY% zsj#(j2Jf8muK@#L+>mz8JLg(BbsZ&)C$5tO@0{x_!nh&roOjN3aOyf*Xit3UADY2A zCspuujT_R=Ip-t-yR;`x{(QY8IOn7a62=W_Rh)AYfnCNEH%Nka&J7k}+>mDQ&bcA` z)b;2G>$0D7{yc~BoV;^xvm*O(=xOnK+rWD&*opW=xK~k4-PMX0xr%f0)q@DB5xfu*{lQ7O1BMII)V=ThB zAN4Qc1Rb8Z2H+$^+nemrQaBsk}!3cjv!L)tm# zoJ3%kaZbu}a?d$4t8B9f|=iHWUkknd_kn)_Ib5aFg*SI0=oO4bhu**0n&ETEW zCX5@>&UxqD2?n`C80VzSDDRxREW)@U&ETDL7Z~IYVVrZfBzWiCZ4t%|Y3ICi?goS0 zDU5UOkp%CYdo04ZA?=)Z&OKm|yM%F0%5(D0xz{4J8>$R1@0@$H4U)QybJ7gnIc>tY zA?=)Z&b?redxUY$eUjjvbDu?MH&hv3-Z}SW8zglZ=Zu##c;}3_2;+vdbKW`Q!65ev zN3umAZPH-nP3sd4Qc1Rb0&a6#tY+|G=q0en=o!j zJLjD<0St1#FwS{E61;OBun6sjD#Ob==Yed4q%Px}2jvXjIS*QdaYNcU@0KJLlp@G=peDK5*Xwma863H^3IuT5ylN^2Jf87V33EvIVsP{ zJEvz6#yM%{ymNYBkV)X2z9e|(^ew`;A?=)ZP9F?18Jv@5@Xl!y#tmubymR_ske)Ek zc~}y>a~`$`W0SNh-Z>A0LHfctXNn|v=S;B(?VKvZ%R6UEwn0*tc{X`O&fuN%h(&1U zR2g3WIp>jVgQPCwoT+jK@0_U?VVsk8&O2u+7^M6vWIHFNOnK)_vk2pyv~%7$)4(~8 zfOFCe-Z^c;I4A9#cg{30$kc4-e0SebNpQ|d6?|ReoHT=TP9m_&IA^*fc;`&F2;+vd zbKW`A!64JXIWr`|J7^Uj$826eWweB#+EpqDnWUL^88Jdugo*2^8?JW~LSV00)Hz6Tj`(?>@ziRG|+)>O&0=p)6 z9xuwTSRM4wT$D2|hrEz{uSF5Js?5Y;1qsa1goKP)a<~46n{PVnD)zMq?3$21UNj!I zEEw|j1v#U0%-+C>YGICZZoH2bBrroGlP|ZQaGqE=tNzR1PqYZ^GJnODW~{&emb0?c zeDC`|NBCGl0y8vnM$e|sGhbizMhxg<5!hvZpA3Di@VCQY1quC`QRQ)dguk?b1a|39 z$hQ}MDreM^=lX6vKG%m8B=jd_mB+dC`0QX4d3F#9>@uI*>Dqng?r5j*uVego6DI_) zf<(S<(?!9Nvx9vfUY0~;-bzlf(9!7@g;eBzj#d?zC^--=A3WQ;Wc^k+r6Z5|J~5er_VZ>o~}*CoXv7 z9?S|9{V`hPSo3|bQlOa_(sZpj)%SX^QkQ08;B#xm;neHF8Be#8#BV(!-0jbw@&1jU z7{Ce=?c|xeox86GBf2${#Kt`X-S4U4t& z@fPo&5Wor&`uRumzne?qo8s@eKRE5YeHncmB(Tfhyg}^0Sx7t_)K(IISDNV7?4HkS zeP}`eD@f?iq9J=J?ezDQac=NR@#L&yeHp zR*=x2MODtLYnkEh^ybT)CMWthNMKjbh0$Vtmw*`Cwv(LkV#F}F`^_ZhQs#sJR*=x2 zMODr#@Lo?h{L(khQ>lF%B(Q7CU#rB><4whxW8rc}mfzLAlP{9YwD}UF3{PF~SY(ddZzHziY9Agns^^a$awpdCirf zAGe*nu8_d4kEbmZ?Vjl+u9fa4XB28#-mTTSksBhfE36=)pMR*FSEZWy-GeP!yJO^a zg#>ne@b4V)`mq6`+vV3auisZ>Iq%f%=hl?h6%yFh zQ=VS^s`yY*VrEY{Bkk>2=kWd!ZkHqS{~Rhv=;t3Q=hdvoD5u?P@4B_*b%g|Wt=KS5 zl)pY)%zdu6oUvtjRcFHfNcYE#2?4Aip+AeNoLA06Q33b*Sa*fIu8_d4)V4!Jkyh`B zH)i#bGdh2fqkirWKX7ZxuN791(9b_q&MRTt*5tM)#=4v2&nqObYwF(aVsnFGBD7pz zIb-npa^C&s6Wks0y21()`uT^-d9|+=>1~S}>E2D3-{$p>E6xi;~;@uqyDWWyiuLSXfa66*!rN1Ke%pVH!@{H z04qr7=N~HPRk3vyziL(ux0t-Hkiaf4->c&C=9VJ-LWG=gub=B*dg~SUxAX}CtRSJE zf2f?-tFcY}(}CyQ)AIiu3G906jSAxTSRsxz9wKLSUDMfrZdz`)ygwm;6(scY50&$J z^66gw@yTC14de_YuFk{6EJE68iav%6WzC8}4si zw8&W~uPY?5YuWx{;#5>cQDyFMIU}_0IKNZ#KF&(IuAqX1e*U3yUSki9@e7E*0~wj} zx&i{bc5Qi4{vGimqITmEa>m+PANT|7HVLedKijc_gns^^a$b2N#`%A|7);(JuPY?5 zYx^6;#pDlii-&)Ylry5{O!Pay{ZI1d!xI8nK|(+OP&uzEn@0J=R&@3Lls^-Zz^*xO zlop+r+zsAXJW9@JGwwaV{*onL4tZT+1quE9L*=|S=O5@d9gys8k^dh^VAtFZp`vN* zrQotW@5>o~UG3*LsQaz=jr{(=3KIJHhst>!9@fFX8FS#l`jf!skN$YH}Y)VAq&e-Vn1I#0HOwv2sT9 zeKq{W(Y5`F^18wb68iav%6T>0P|{!Xegl7)ysnVIt|gHTMW^K}gYG}$sd`oRj`Jhsb%g|W884YEXM7gDA~5HKoFT6(tRSJ?N9DXGJhr0K@-rL~*kyc& zW}tat1qp3oD(7`9ZnN`wpCNu>d0ioaU1{O-#MtsngNr`@P|i5<*(s<0rU-w#+y_>W z(9b_q&g;~>zdJME@8TDi*A)`j_3{2iV*jX3!Q1gu?()bUPEw+jyEJ)}LtMHasSCUdJW`u!01px#aI7E7sACeJO`u zR9;s|V3+p9hPkH88F};dbuSFR;bqDH53C?z&fL+?LpBU_$4^Z3hRW*-3GC9I7U8>*Za=bZFf*rh#j(!LpT2IrhqK|;Hs%6W0lNd$IjPu#w6 zrkue!CsmNpZm4ozoO2R^UD^|G^`9kYaL!2;B(xiYkkD?Za$cNs5`kUX z6GwhDSI*#^lPXAPH&i(<&N+#|F71i051S`vaL!2;B(xiU3N7w4QrV3+p95@|G}1LK@jK|;Hs%6W0l zNd$IjPh9lzM{>px#yP2igmy!f^WvP72<+0H`2Ju@J8{lQ6(qD9s+*Za=bS`fm-fVt!aIVV++&~B)5UYv6hfnC}YD{ZB;6X%>%K|;Hs z%6W0lNd$IjPwd#Al1Q9$QUwX^hAQX9IVTa=WjrxT&fuLh$|AHIs+wTO*7oQs#$u&S;C!Zm4ozymLlppUk5!?TNSI*UA~3b5aFg z*SI0=oO4bhuuFU5shR5}!8s>YkT7mYJLjB}2<+0Hn5Qx2aX9Cs3KGT*Y3H1C5`kUD z6E{eLcg_tKVcd{*&O7G@IGMLjXtS(viDq!lNfmru?S?An#W^Pt*kzn^qnyDz=SGXr zZm4ozymM~MHc09+&bdj>;GJ`mMHn}vo%7DQ2@GY@O6zF z(hSZyiNG%7oRs;Rv%q8)$;D)qw-Z^(z zUD`RvH=#TZ=bThA&KU=8NIU18lL%vw+l6sX%H#0PxyvGq8`92s=iCJbxkDJ|q#3+( z+JtsPmGk1Ab62)OQkQW~N;~n+x!WR)8`4*och22lkUNEOPRji7&bh}Tj2qIV350ocFt85_DO31E=%LObU-We-S#b55$@>l!ztopa7f1a=wcq#3+(+JtdK z+Bxr>2f!c`gm%trpC6P2=bTi**EMcPGdSlY0=tZJCQ5>LPWcz>9{--qZyqIp8`92s z=S;M^jB_561n-=OEW+3%?VNYcLtu~xg>g>G*Za@0`im21#AUIXyXpcTUeDj2qImuWU?^Mc~}y>a~`$`W0SOV-Z^DgX$J3{>0pp);G7wf z;GHwWBD8a=oEPt$8QBI&UB)>x4dGAikH{8hwR*9=A=YrpDY%PX8y;}7C;cW1o zIjuyy!qH;KjGMu(71~OoLdUA^z`7T`PYV`vv4VuYld2LUUj(bUk1B8XPS+2$2<*By zXq`AQ`AJbCqn(@)@>EN=Q(&z(XH~p-yOHxQ?;E6~sFY7yA=P2pAIletaA#;?1|eS8zr&>d9igi|6h zhl>>?^t+l$jC`2)C3nt_v(5-7)FQC!sjbG8VkGP>0fnA$-O%)d(MTlS4^pP`WJhQ{8RJobkJt>Ea6(sbXRFxR%`^0Fc`a5;q zi!DPf0=vY3aU%Djp`v%?zH-LEubMmgi*<7MrR8w3f`oooQ;Cs3pS%(1TfTvtqj{)B zU|0BvA!1IcVIqHYKRM&(^pSyzOS`${gK)|pTorp68c?DB}Ss#=J%?-CESYgX9*J6RkM0)(PrZS z;oTf4XMFK*f3Ly#4z4e+E36=)@1&~4$hoC6yuOpe+!pe>LIS%Eyx2hWPVXf$Vj|>> zl7kby)`J?mNpc@pK|;T)sl>?6wP{|Jhp)JQ20|?YyDp8dEpA`zB${;|B4Na#DMDlzio$%kJ5up(|n`G1ZCcI8ihP4sNlLcDr&sGRZoyb}J8drG)9 zQ**djK|{=aKQS_02l^tK&!jld$?tQlAffN1 zs>Ddk%kpofHu}hUs!pgyU{~#HCB(qS6-AEqBjt=QpKb4t{&}2}DX%N6AffN1s>H~O zo>?^qo|d82Nl;UH{?d?|UD%3bhFA zdQ|r%@%+`x!NFz5${Fs~X8!2dSWn0qSV2PHNmYrFyT88fr&QYSwR*;) zQK`YtW5>xEz4O-fA2hw`Wyy zOu31^*DCni?iKcL$mI)O}xAEjQ8bv z;paSr zX;rscED3~6Zs>Qb7itmM_0dz)#m1=lGSfi0iNAj+>8x4N*{>x3&#{7pIlV(O(iXRH z7Ox5TY4W;40=xQOoGUKpTp4`WZ>l63m0RxQ@LKtei!}5 za~BEhYLS1DSao|#FkDQN#7D!gI&aK${AUm3aIu1fzLTmFBd4OSIWNSQ^{+GxwFvC$ z+kd$jG%G3i#&grxWCV;++z=bS`fmp04m?kqWjb55!t zq1{j=MmXmr0=u+X7A-Yf&fuJrDoAKIREZJJIf=k7ZI+#Wr5T)aQUwX^hAJ__IVTa= zrOooC|8f(Yb5aEf?S?8b!Z{}q*rm;~-H5qzADnYi1qtnjDlx)2ClT1CJ@FHFo}9rs zCsmNpZm1F?oO2R^UD^|`6rV3=aL!2;B(xi<#0ck{L|~UT%N2jp49+>Jf`oQMl^Efi zlL+k6X8Gr-1#$-GoK!(VyP-;qaL!2tc4@P$wv=)coO4nI3GId|F~T_~5!j{8a(ZjZ zO>oXh6(qD9s>BHAoJ3%k_QZ!J7Rni%b5aEf?S?8b!Z{}q*rh%3tKVq`=bThQLc5_# zjBw6L1a@h&{PsNMCOGG$3KH54Rbqs5P9m^Ndt$}7#c~GcoK!(VyP-;qaL!2tc4@O* z_Wlw%gL6)*Afeq*B}O>sBm%p%S+=f9xe3lWse*)dLzNieoRbLb(q`%ZNi#U-qzV$+ z4OL=++z=bS`fm-fVF|K%n)=cEb}+6`4=gmX?Ju*-NNo$TkG zGs+^g8>++z@0?KryNoB&4Bk0yLc5_#jPTAGC9unwWwe~ZJ7=^-7&oL<@y;0yXMCcB z@x--~;GJ`=MHn}v8N73@g)=@;LVMzae(NN`IVV-{b&VU+&N=5K0=tY^Qf`8G&h-|d z-B2Y)c;{RXXMENQW0o7_4Bk06ScG;%l^Efjb3?X4QkU^Wn!!7#O=ve%i4op8H^3R6 z_1Vukw=di%XYkIs(ISi+(yDmp+z1A_K^W)UBnjR*H(7*sLrQssgz(O}Dcc~aOFQRJ z?q*4F&Pf$~UE_wdbIv)5z%JvQF_Pe&GsYr}8`92s=Zpb^+$4;1(hS}?ZNj)A?VNYc z7%<4q!Z_y^N$}3O#UhLw(yDmplo^A^zd!GgJQib|bE_nH=iF)$#tmr(@0?q~AY+7a zPCD7oJLfiwFm6aY=bdvK7~~dVoHJGuymQ7{gmFXKIq#gYV31pdaZZ}SJEu(;H>92O z&KU~^xlI`7jFSZKoN*Rm+>lnqJ7*jir2HjekDqf^Te@8mymM~12;+vdD&9G_gF(g# zZ74D&9HwSzX3CDLueDXS_vdH&lrc z-Z|s54U)Qyb5eSMch3D5Vcd{*&O7IRFvxwvI47O#=bbabB8(f-&Uxod0E3Jd+BxG3 z(#d|#IjMrLYuu1_&N(L$*kzoPX7J8w6UGf`=e%hru8{aLyD-@XncH5ym-b=e%>KfOGoboHT=XPMa{!NjvAAGX)It zFgPcr2YBZ^ViCqUX;r*)9sz?)0q0DW1n-=w7Gd0wX7J9L3I>@1&Y30&-Z|4O!q_D3 zoOjMNFvugqIOkDG@XmSEB8+p=&UxoN3eK4d&Pg+P=d=mqoV0V^Igf%trh#*&OM-V! z`S(#C|CaY#{nN7DP$foq=adPFmHkH+nkrmQC46|y}CEKX}F6OB=ntBl^B^d;+WI<+Mmh4 zHI1+c?5g$IT5$nnVAnh4 z)`&_^*Aveb>n3MRadW%18hjmCHz(Z13KIHGs!EJhyms74sF)f!xgf$Kuxr?nm16M0 zx5SWz-Q|pHxt?(QZh6c3>b-CmD@f>fHI*1CAAQ7WSgnlHb8v)3U{_}QrDE2*ZN-DC zJ>`t5gMV?tbIo;7UZz8`|Kwwv+3-UML-tHsruj?acv|GE^ zDSG*w)3#-}ixnjFyP8Ujl$ko!`D@5Vr&ZSoi@>gg2zRbM&d>brBDeEENI zqWXlpSV2PHNmYrFG9w2AD)a_WH#*N%={J3xzD@f=& zsVXrN>CXs!@y==Imk|*bfnD9d?;*~G3=)Tb8YpLsiV3ejw0l1HVE1qrD@f=&sVXtj zto=uI{XOTLX>B7c0=o(fYa^cB-B-+59U*5_d+_>KQxZ82<+;0uAzAPg&tzTf7y&%4JvyHC!cf|${AQeLf=VMiIJ$tXS}0*)14C? zBP;^Dp4b>BBF1+Rh4T)R`^YFh#k=3;p7Tn-`^k~4H-xQi7e^qo|d7#Y!crZ@cMwazekT_J&8jqklI zoZ_zNUvPw+5o~qR`#$eMC**^07b{5UJEgI`fnBHamJy$3goZ7))UejMnJ73D{3JL65^mJ*_c4-lDuE6_p#9mkP6S0DXzLTmFBeR}5~3|2ow*^F;K%<0z~QPT6Lg}Ycm zLf=VMiILe}hWAv?C%kt*h_DFks(H4WC_5t~xVC$wobkf4zq~155BI+5AMRoW34JG3 zB}S^}O!Cfs9Pm=RL|6oNU5c$Mypel@z4KBwIpA5VWMXT1N_U~hJxzrB_t<$DxVkkEHhRbu4DH$%OnR}OoJK9cWI zKw#IY%wb~O-*bZ%j?s*`Jq5i#dOYRdk)PqPf`qw~N<07Y>9ph-zaRJ7&y?Ti@LJe) zy?>-gjGQ05JD0K<1?%-o{%Ubv|H&cYE>@7xcT!bi9K* zAHO(Qz4uf(qe#Vv^7sBm%p% zC;nP*mYl&kCsmNpZm1F?oO2R^UD_;Lyf|CV;GB~xNN6`yi4o2@iNG#xmXW{H49+>J zf`oQMl^EfilL+k6W|??wj-0_cCsmNpZm1F?oO2R^UD_;X&zmb}aL!2;B(xi<#0ck{ zL|~UT%l%E}$r+q;QUwX^hAJ__IVTa=rOonD(fM))=bThQLc5_#jBw6L1a@gpbbq56 zoO4nI3GId|F~T_~5!j{8^1+z}at7y|R6#|oRca@Xg5@e5zaY@z%Ff; zdvY(6GdSm@3KH54Rbqs5P9m^Ndt&+jvKgFnQUwX^hAJ__IVTa=r9H9#R?22@&Pf#{ zv>U3#2Jf`oQMl^EfilL+k6X4#?-WivSEqzV$+4OL=y(?|oRca@Xg5@e5zaY@z%Ff;#eSk0oO4nI3GId|F~T_~5!j{8vdxZFat7y| zR6#&fuJrDoAKIREZJJ zIf=k7ZI(L&QE~?7oK!(VyP-;qaL!2tb{S8MmNR(gjJ62lhO{c)Ic07l`*#^c3FC=0 zgLh7wFm6aQc;}23*k#Oett5EoTx$`=4QW-pbFR%kn%dNp-PPK&bdDOj1P4gv)mwO@XooxB8(f-s(9zzAh1h& z;;Nf8gL6)*AYt5)2+lc)z%Jv78zsRz=SGV#Zb&nD=iCSexgq;GXQ9EHB*8o9CW|m` zNUP$Va}yZkMq!+Dvm|)u+-woX4QW-pb8ZHM+$4;1#z=y9&KQf(Zm1F?ymQ868zglZ z=cF0DbJ~P)Ln3(Ri~)m;5ym+wp};%m7K<=$NHcin+yVv}BeZkQnYUFEoO4nIU)Q)H zt%`F_BCtz4XMB@wlHi<^Do7YNq*ZawNd$Ho=cI%J@0_s~Vcd{b#XDy#800o#oReno z&S?|I4T<2LGZqXoRv71`6a?>_aTa0RkY@1C83zU#D~xk)mjv&e+bzPlA+3sc&h223 zal$y~4oUFNxx*ri8`7$H=iC7Xxm_6Nq}&AWoI5STxFM~Icg~$)kUNBNPMX0xr%f0) zB!YL&onVkVg>g$(hS}?cY#6f6xul($5BFob55$@>l!ztRdLQq1a=wc zq=W+RoO>+7xFM~Icg{Uvkh_I(PD&{7&bikjj2qIbc<0;;2DwKV=cM!i@0|NA!nh%= zig(U^V32!-cFqcCX$I$lnqJ7+u?no54HhL5nbMNUP$V^B@@H0b!hz z5(>O?CR&7cLzNieoij1pAgRkZCnXek=R9N)#tmszymKA`gG?00IVnBBJ70wnMtJ9xxrxWlNnP4G%O9f|oO4nI31gGAbIv)5z%JvQ zo+NnZ^ejTVp-PPK&go?vBy}0*^yLiRIptrdfFz1}9!aa>ozn+{^n`IvN+|HodDtSf zbE?D$@0^FT4U)QybEe1{ymO{lgmFV!74MuWV33D}aZZ}SJEu(;nCBZvqszn&*q*d|GnFg#fp^XoYIOlOm@XmSMB8+p=s(9x-4hET(?VL-7Q9^-pPO9MR8t0@{an4Buc4_Cl z{_;slaL!2;B#d*?syOE)0=tZJ(hS}?ZNfMw5xjGr1cN*Y&Us1_ymOwi2;+t{gLlqT zV2~%lIZsQ1ch1umVQi9C#XIL|FvwHFIOiEj@XmS0B8+p=ss=rKDY?N1^O8gEPjs{D zuN04*&x5}%Y%89fu~IDi;8O6bDQ(5guB*l7W_N-Eo^3A)Z`y*oW7j-L9$RpdixnjF z=^d3Ad3nR^q=dghywqD0Edsl~pBW{7x}8&0+SftOcze|Gz#B^{c>fHGbg_bjzLTmF zBco$JtQVY`%Uh8#(IT+xe=DO!&k2Ra7ehPA8Fw508}LG&^AbBmx>!L%-$_-8ku_y5 z)z7;>r`P20M2o<#f|1dpQ=PJ+?#rF!jQKZ;I1jJiOFr8<(!~lA`cA4!jD!Xn22Mu( zkzC-?M2o<#p0%RH)3aX}2ToJ|W9$A(&Vak|$!o_&x>!L%zpJUl$o}`H2Trd0G&z6% zNfv=!_rF^uUbt3Agm>&FXXHCq!wLDWYx1?-kuFw{(C=z0F_Ip)F_7=V{^TYVCs_n` z#jjr>4pnX>cAcdB$6urCI(-^vB|Y2_>0$*5{jR1GBV$@+2KF6UpFH{Zi57ufKXq9m zTFh!Kf!L%zpJUlNXVR@0`q4~Prh(`qD5fW(3d_E-@V&e z94X&h&S>$y>vT;1r~bW8kuFw{(05W*Vr2E?M}YyUb(35B6DgRI!L%-$_-8ksA&E4dgr$TjyTLB#XeV*AI^sQ!Wk=LyGp7Gp@%yB|K^qo|d7)dYrTcB^=-Sumgn`9B#l|OZeC|G@B|K^t+l$jO_VhMxgwp zD}hn+Jqiizs`-9(F=1O15q4>~oKe-eleDT!T_B|K^qo|d7%6|GR^Y^g9|Frt zO|l5=O6gWvtUVEs8Nv~AMxF&@lK;9>%~=>1>0$*5eJ52VMxJ=2Udfp-Ez-pb68cW6N{l!$U)GzqBBzu1=|qdbu1?A2 z#D%V*qQFO^B1K9mP^?Ic6k1AYzd7GBnRoh|zt8*JvxIx+-e-5uj)@f{#FYwN3*_agPtVhekd5;-8yms!IR**R-+{6kJ;!LVLF;Xeyrf>TGCEm6_MkoZP zmJJJH5z7x+n`_hjN2{ML``YXYabexVO{^dx&ZN2%BOkNA^#vB|<=q}1p%9pw8&#L> zTd>9QPce@7SbRUo_Leez$6JJ(SV2OZNp&Yi0xSC2d%phMd*ft;LSSm?pDmfSW0iHO z<9OcVeY>)D{>D+hxNhMlR*(>9Qr(G>p}qa=dz~r=b$k?|5SY62xEq_;Y_XNI#01`> zWy#$3sqVLZ0W-r*tRNxJq!O`b_@BOZovOrL{A#R1V5-;c0qmQh3#{6YiO6)?W2Z=w z#?E*!+{6kJ;!LVLG4fm8-+X0?rSP@QH&!7q)#0;nHuTX#D_hJ&-eZdIhA*sqZhO(v za1$#?$TO)#gzfmvS7&)E-@XSC3W2Fw`6jb{&z4&)$4=tJ`M$BfW(!N&KlTYXv4Vs= zlS)MV?0ddc%@_MB^8a%rFm+=1Om=SS25Vx+$#hiRLwxLJHM=EWudsrIJd;Yq?dqp| z4L>{VD{wqQAu#o!`h1qF)gJ4|DpNQy`sk^+dtsIx+$r3|3KH^6DiJGYuklT3f5mtG zPJ}{W>S$#?@4VooDoDsPsYHATN#|>y@tN;pv9St)DPfisr%&TVK*8nS zZi7nN1ERu{4U#HI2sd;mMs&_e1g3;pX6rDW_s}^fRge&F=uV92oRbJl39}qnc?R#H zb55!tA>7cN7|}T=5ttHYxhCsO-b3e{R6#s~EAR*k)ofy$MClQzuW_hFcY~DlXoK!(VxS=~SqH|6nFeS_~ zf8{y!x6(K#Rge&F=uV92oRbJl39}6TaxU+ob55!tA>7cN7|}T=5ttHYneR91p>s~E zAR*k)ofy$MClQzuW;yoMJl;d+oK!(VxS=~SqH|6nFeS`#|E&4Eht4^vf`o8GcVa~6 zoJ3$sm}Q1K3wRHmb5aEf;fC(Sh|W2Qz?3k{iCJhiL+6}SK|;8pJ29ejP9iWRJh9hv z>Y;N^svsfU(4833IVTaA5@s2axQO@AIVV++5N_yBjOd(`2uul2+`fJ>@1b)}svsfU z(4833IVTaA5@wmFKh1yWoRca@2sd;mMs&_e1g3;pUMsYe_s}^fRge&F=uV92oRbJl z3A3#I8}-mRCsmLTZs<;o=$w-XObJh%e&+x49~$SR3KGH%-H8#Ma}t3mVV1KuE$9CZ zopVwJ3E_tB#E8y0iNKUF%Yox){zK=SR6#OdIVV++5N_yB zjOd(`2uumHte$!m@1b)}svsfU(4833IVTaA5@tCpiF)XqlPX9EH*_aPbk0cxri58u zSx@sHI_IPc62cALi4mQ15`igUmh;Bb{D;mtse*)XLw90C=bS`fN}452LFk<`QXzyJ zx)URM=Zu7Vd?J}J%dbn&6ok$>se-R7-H-^Ka}t3mX_iFjol_;G8xo;+&b7(+_!K<5 zmPxaW;)LEgqZC5AArX4#jAEFQp16(^dgolH5Yi2a&^zZkxW{K5lV-V|j!NsC>lH$} zArX4#To3p7tY^|JH*iAloEsEEx*-vI=iC7I_-tU(EH`pO@0=SILb#zjF`{?QjmZW{ zDdC*&6R3yIIjMrLE8UO?opTa_De0V>IH7mWO$s61kO;kVZUTec#H4d>=7iokH!Fm6 zLn8Ffxfu*{Gn39qQxJOR+@cWD4T;b@=N2%?ElfJ+R!-=hbE`r~H>4hV=j5{)pPru= z{&owK&PhG=&Z!d84T;b@=T6|gVhu%5) zbj7D9?$PTCH*_aP^v)Thq@;6hqra8bIkzc9|K^|bzIcd^D@0Q4=cFkJy>lK?2OiBoTV&^nr8wm~>7e^v40+{qodL~=P`wl&PjycIgf!s9s}o$ z=Y-xl;}t?WClPw*j0b~^Pj*f_-EmInoRcc}y3!4)ht4^Pz?5`O>Y;Z|m5??`gx)!i zgFzlozPGl*^b?%WIVV-{b)|C>p>s|mFeRPyBq#LFc~T*ya}uF<&XZt}C&4*SaYFB$ zrxZduClPw*JOu`M3Y_yaC-lyFS|Nl@x)URM=j5{)pPZ9Y(mAPz-Z@o5xS=~SqIb^I z$p%R&>6~YH5504qQ3&aVMChIK3>f4YCY>{Z6ME<5(-q0ic?R5&2)%PAC@JZjGzFn| z&a(<3os$T?bDjl*JPXcAQxJOROjHQzoYX__oQdF^XTdqChu%3=LOLfAdgn|8gG>bH zJjV&WbDmQO>6}F9o%0+RhuMs&_e1g4~OUf@0S&Ury0q#M#v>7DZe802|yPU@j|PL+^0Nrc`xFMvT_V8S{3 zC0^u&&N-=quPdFC2%U2hfhp;nmpGw!&Pxg*os)=#1>V|Q9v3hkX6%H)>3N8M%9>^Xidd`BjRnpiQ0RK)jMO)Yxmw4 zZigrYrs^DA!@mB(pRM?#4e#+suL1U`>6z`TJwi>aAR*4Ax)UQc-W|5H?F_PqTnJGJ zOjR7WnzdV4l6@7`j`#3y+``UYqJq79La2!qB*eFxJ2CRpqOJC`ti$Y(cYKc#cr8rT zY_O80?p&1}DAa-XXfmdv9sXrw`};$oCRUIT-)io}$kMk9?Rp;;*lF|jQwU6TEVYdF zE>x3!5!sRVXx07;`)r@S_P<9$O{^dxzSZ1`k;KIV?4z?|>^g5l6arJrvoB&zGd5vZJlmc?-Ocb1qpE`_4xlMM&|x<-j}{pqTQFjuaLmhn32<2nOdFL${pQ!k5j4E z9|=r7%RU?&YGMTmaVFKB7}-`Kjc@+bi}pwU`9K0w&wEZ}`R;aO?K^hoJ;p36>8-k9 zx_vq<)WixB;!LVLF>>$t-$8jgU$mS58ln)G`l-_>HjwWxlK8j>?@_3~#K`8`w)guzXYCX@`Y8ma!hipk{l2LO8_}s3@3B0~TkotthS@idhMHJG zLVT;a6C>9y2N+*$wCx{1hA0H4?$qzf+TIOjJ>K@_J&t*b7?F27*iROQnpi$M)&1Co;Pn|9EhxD7yLHV#0nDPOsYFEGOgMI zV`|E!c1|ZmAuyG(a$Odi*p`*+)sOcmTB^S>@24zwc(+g!D@cfMHFsjK#^! zZOk3S(&QP$dn|c9%}5HfU);DpF&`2ao3{k(a^H& z$&SIi$I}zj4RiRFpbx7;O{^dx&ZN2%Bi~fKWb9foI;h8u5QV^0oKc8%IA4$r=sJ}5 zXrFb8v1`aGzT-`(i4`QonN)XTWcI^z#-3Jty)%!6C9Qr(G>V?pso%Y?i}nG+!jfvGt=3bCbo)3LydBY2OJ-Mbl|z52!| z$NwEzK|-8KbtgvZZQE^(DB9jQ{!@rTU}{gHVr>7JzpP??NAe!KX4N$O%Q0i&%1{$4 zNQg73?!?IShLOgxf>Vu=>G~-Irp^p0&3d+aU|qdEiudsI6g1i;b}&BLp(a+45NA@| ziID+Erx>wekw(AF{S*RIW1}mvky9^PHABL9kGNuQyeY4bFrqhwnpi))-&LR8x(p1^j&l6(q#nJMP5D_mju?hL<>R{F#!!uYkbR z*|!5&!5VHokDCRUJ;XHtnUr+Vy5f1Wg&=IW;qn94XkjQRb# z!m62NA}4b9$ZX#l*VlNolYf6e1qpd3m54Jd>)M&34j9`X^6w8IF!gBBBvx|AT5IAX zBHq~5?T_CyG32`RXofz4W_pE)Y z*h%lafPM;rDPfk~Us8`uGpF0xvUIAtmAe5}kPvS8X<|g*ht4^vf`o8GcVa~6oJ3$sm}Q!a z)I;Z-R6#WdPIjMq#a6@-uMCY7DU`m)};Ewscht4^vf`o8GcVa~6oJ3$snC0%U1-ysO zIjMq#a6@-uMCY7DU`m+f;#M^Op>s~EAR*k4raU|zopTa_DPfk&%hUXa&N-=qgm6Q5 zVnpYhL|{so<*oFKc@Ld)QUwX&hVI0O&N+#|lrYPNSE+~2IjMq#a6@-uMCY7DU`m)} zs<}&e51n&T1qtDX?!<`BIf=lOFw5a>Y5qg!oK!(VxS=~SqH|6nFeS|LKpC3<&^aen zkPvR@PK@ZBlL$-+vpn+oa^6GdoK!(VxS=~SqH|6nFeS_~@-g+$IVV++5N_yBjOd(` z2uumH%(jnaOmxmk6(ockx)UQh=OhAC!Yum@T*-UroRca@2sd;mMs&_e1g3;puCGY* zA3Eox3KGH%-H8#Ma}t3m;fa13X#PXzoK!(VxS=~SqH|6nFeN$QA~K^q({_4=bThQLb~BP zPUxJI2uw*&Btq|;>l8w|;d=U)Yn@Y_E0JbNgx)#V!(BoDofy$Or<#&xxqo6-2b*@A>=bA_&bk0c?d|l~=G@GGwP9iWRos$T?b8b-x>4sZ5 zp?6Mou0%Q~5qjs`3eLF|+>i*pbE+xnoY9=nJ7=`=y21_Ji4nbXMkgC2rKEFG5504$ zgml9gPUxL88VoXqN#`U&@0>9TA>D8r9hK%fXVb_SFvx98Iwui&=iH_c(hX@gL+_mG zT#0l}BJ|F=9h`GJxFHdG=TuYDIb%7Ycg|Slb)_2;p?A($FvwUYos$T?bE<@N!yTN^ zJEuBVBAt^6y>spW=lt))h~7EXlyuIWyocU7cY<^NcVa~EoN7us=Puqu@0`29Id>(y zp*u06cTP1Wos;H2^v=0kd0pv-MChG!HyGq@CYq<8yLg$=BU`jeC z5qjrT3F(G3|DktIb*@A@ClPw*+zZb6--!{ubE+xnoHYNTcg}s_od2B|(L1M_lFmuf z9D3*656=1Di4nbX?oT#Ingx;0Nz)v9=RBYg(hZ5wJLdr~$OB9`=bFbv=$w-(_`1>! zY5qg!oJ3$sIwui&=RBwo(hU!BLhqdFT#0l}BJ|FA2%Pi36C--(R8!J9X_`atoQJ_V z`CcH(#E9NG)s%Ejn&!|u=Mm*~r5h5Vcg`bVkVlwwP9pTqsS?5s-H8#sbEha}uF5*`Iwui&=R5<>c?O)52)%QvgmlgXPUxLeohy;fNrc`x6TmqWzzu0OL+_kw zN;v1d(M0H+lPc0>|2r|Fb50_pnIK$LSBy~Lhqc3V33JSI_Eh~=$-SN zLP+N%LhqdCz&X!>a}uFdtRNx2)!d1ZgzxG)*QR#&KJMkO5Sa2Cv6>Bd zo`pSc*Mj#*cec3GD#Mnz((4TqD@cfMHFsiUWv#l-=mVR4pLg|F2u#&(znbM-=+7Et zZN+=kZCAvJZj;^~6=|4QK|*}1xf3J9Zd=a!OYQ6uMn8ZlyL>?T(%19!`kv5KeDV&I^TBt ztCNO_6(q#BnmaM#GYUC-^WV4qr}!%brm|&R%BC!4?AYOUyvMG$eop3Fx9o4fGfb=? zA*?Q+HEq{{_b7Df2fNm8KWFt}!^8>_;#{1pOItD4PW`&+eS-(~7V{~uv7cJ8d%oK_nR6DvrFZ#8#fB>tyZ zd&1a?&J6y(LIP8d?o4B865F$eiJf_m3r#}oKO*xx@7EY6R*(?iYVO3y$qgOtaxs>( zwwu2~VCrb9i7apRE-b^yuDr+BMp+c2?$g!oo-Cr0KyU17ZcwW?E+|E-X~RHa{9vJ)LUvRfy6 z@g5yUtv6OT%;7xVY?xRkx0*XK@?-rp=7{52oiqHsiv*??*amy`U1Qd}TnO*+Z;yYB`2i2? z%lz|!6(q#BnmaLa`(9r2$h>#Oqdrv83ggstvckmU;>#Ct59UEK7`p4aztv|(Ze32`RXofrvkQqN2m z-zKOT|BgZeQ%kZHVL`qetZfX~;!LVLG4f}8Ewj^u97Z|* zzCr?12ZD>T-c{4H=TC?79^Q)u&ClA`FqZT0bF3gC&ZN2%BO7*AH-GtemNBunzd~SY z&!G~m&4ItITa$+K9>q80G^Z6>VtmJcmtaL9l!=itcT1V`<4zlSNBS#-INwThC5x|= zWs|c$wx;|^b1WZrXE09|K4~;OXP8()LYzr;Cq^db&us=(_-JIDd zdOLX}?=k=1S4OMzFO7Q%hKUs<#Fn3=D>s_= znEBHQ9Qr(G>=Y{4P+nQE4?{@K52qjgq4O=&2i?w^h7~aFUUCwy-A;3(G zGE5ItkPv55-HDORb8{If=hrf0d-^K`rrPG|&Su9(Syqj)yvM}qQ@tDiEN1T7ZJ1a= zLY_&biIL@X5`&UT)iYZR^H&H=jZZg_O-UDNtvE7{6XS{%^4;uK+zd!GOspUw&ZN2% zBR9@o_GJjGV_ur-uMn7eRXB__?6%g*6GcaLZAxxCTbaV<6#iX{6(q!&RCi+JyQ4$w zL9Y$7{80Y?0k4Ir!$l{tf1Yl%Iu4(}dlX{R?9tcrn5p^S3M)v6yLa4)k)p>A+qcG+ zGxPKR4FrM(wAXbo&XHutd;$*EN&h6H>jlcNk90^P%d!j=}wRB1j z=k3QRqt97G8YHhEA7cN7|}T=5ttI5I5X{h-b3e{R6#gb5aEf;fC(Sh|W2Qz?3k{u;VnxqH|8FAR*k)ofy$MClQzuX8FVNmAr?}IjMq# za6@-uMCY7DU`m+fvQV01(K#nokPvR@PK@ZBlL#gC$t-U)U(I{yoRca@2sd;mMs&_e z1g3;p=I2lS(>o_skdST|$qAiv5`igUmW_X;9y;fw3KG%{*K$JVoJ3$sdLkW_-Z>)` zLb#zjF`{=)zNh-9=MPXydLkW_-Z|GQgm6Q5VnpwpYvCTBC?-9TW=!8OX zy>mt}ObN4mP>Kkhb5aEf>4xh$p>s|mFeN>adgz@~C8Qf};Dp{e*MUK9VA471sPxXc zULm9#ZsdgCIoE?hZcM(;S$!-WmEJk|&L^Lql2@eMMsP#wp?A&=N=i6q?q)>joRccj zIX8kEZsLT_If;-4xrs^VBtq|;>LiMALw90C@0^>G4U$sQIXCkjdgt7%5Yi2|a6<2# zo53KrFzKAsL+_j_A>D8*C-ly_84PkOlg>#;rFYIP3L)JvniG2G+yVv}&7^bEQR$s? zt3pUOq#kEMXKlIMI6AW@Ulg>#;rFYI<3L)Ik zofy$O=dNUfq?B|{Ix4+$s*@8OXy>spXgWSuc zb5akzbE<@N!+k_(u5&hixCab!ACt~WN2Pbpy$T`SkS0d-&bb#1az7K!xo8y~mCiY- zg0Cyxkfu3w&PfEOq;t|y>77%ZL=kT2PK@ZCbAPfyQc5}}9hKfW)kzfThBPsvcTWDg z$!2;GoRfO!ol_;G8y@0>-Z>9|K^|h#Iq9hM&UsKFq#M%2h~7C5fY;Z|l@K=RPK@ZC^Jua`Qc5}}9hKfW z;}k;LBu#VZoih#$(gx?GsT93)`V>MsC-u-frw^Rd2InL~@0{u+igZJV6ME;g!5|$b zos$T?b2yka~@;DIZyvfJ#@}V6?|RkobjB{IVTaAlFms-rFYI_3L)L_ zI4AVZc?=BlI5;OAmEJk|&L_#vc^ur3dgz@qUP(#kBtq|;>g!6IJi!UQa~=ohJOR#0 zgx)z%D1>y*lbp~y=Ls;#li-|0=$-SVLP+O4#R z!5~kAbJ9`io%57JNasAm3B7Zk0)spQ&Phk5ch1uaA)S+Y=$-R4IOiE~P9pTqsZOFu z=S<*)-Z{^Jb0&au5}|j_1ceaJ=}wI3oiicXIVmNblX~c#QzfKxCUQdWoC#o%iOJ46 z<>*;X=$w-(_`1?LX_`aloJ3$sIwu{K-Z|At6zQDQL+_l4;GE}@oikey5jy9j3cjv% z&LmFgoRbJlN#`U&@0>{rA>HsiC-lyl1O|B?oRfO!ol_;GO?^m>T%+0Cp;HmG#@_L}dQ1zc=V$cJq4vrVdt+7;`#|)g7?Z^4z`33GcXb z-V(n)H0Cwyp%9oV^2-2LE5#D4Y+fS#8{hZdEmGJxo+{kI3KCfwhqEVl=UN@&hM7JOBJ(g}_wh{R3FaDO0U)_tR137?jEA|Dlv~yL(j!D@c6z`52b{%gNS@ z1@u4Ito~7Nwxrt5)yw%60#nZB0c`c?iB_JAbW|e`z4c}o7UKN-TY`-hBvMrw!|KOR zunIS(_wLTJUA%QJk8~F73{wb9b&njtDg=zT+RUVP;`O!5y)%=>I)jdm@nQvux&dQY zjtdj5fTFiJVLi)Rz4YGEPWXvn0|`u(SU-Rbt}wxB-HSehW9rlh%J+M3XG7v`11m@@ zDLRrpEkDWXyNY_0{<5&Ie6>!_;Jkh&5}1nmb`aZBZjv>!4-paH+ztAxW*f8Qvkc}R z9s96ZnbufVF?BVNc1K6`r0nP3v_*!PMV`kPSiw~SKb!oFaEFK9)2G7B%^!*@1g5@k z+?{obUT?i9O@G}5B~E)6my9rfzVy(C6(sPp$@c)QTiCewVTAehnO-&$nA%yTJ6m*W zot5tgdY5czp3cZ!qpO+o)k_;INZ_ZL&m#X}7-dt}HLsn@=^%lrIoE?(+_N>-iRScf zKe|1q(XQr~=JA?M9jqXMpJtC|;DWNo$)dN6svUYL1g3JB!7Tm7Wmc+S`qYLsNMqDY z@ug9=NVtO)B=FPh@kHHyb`yV-*5ZLne1)MyvT&7ccdA61vSBTynGhN7*3` zR*=9?Gk;1!m2bR3D__}d!h#h7QzdS9WzUz)u+0CjJ{{`D1GqWq((qfWT`~t04z5hJuTR)nw45!9;v4RACHa(uN8WylK_78Q6pA9yU zz|;@zyE4DdldYoBv|gR~Ij!BPayRGqfiDcKAn~efKjv3#vK3I9KIb_Xmav3?7`qE*1rXbsQfCAk@UQwnSWn)b8xB-Ebg0iR%+i(IM>5hgHPv{ZZ@Z* z+Fa5y28`)%o_ic)U`YeYCZyEB$q|WSC<7 zIcZRL&3_K(bdbQ*ynU@%t!o>t@QL(^^1nC6s5CmQ*{Wz$2P;V6 zr7x_v*7i%W}2UxvVC_qTi5t6mV9-ZvB_&UTWvya!Wn2<8B&cljK;MB%>HAH z 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

ix;b0pB^KQ=@2%4_3)TaBR_VpVqW&eB(I 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%0Do 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 Date: Wed, 11 Oct 2017 16:47:40 +0200 Subject: [PATCH 009/218] Changed parseInt to Math.floor --- resources/qml/Preferences/MaterialView.qml | 6 +-- resources/qml/Preferences/MaterialsPage.qml | 2 +- resources/qml/PrintMonitor.qml | 24 +++++----- resources/qml/Settings/SettingView.qml | 8 ++-- resources/qml/Sidebar.qml | 10 ++--- resources/qml/SidebarHeader.qml | 28 ++++++------ resources/qml/SidebarSimple.qml | 50 ++++++++++----------- 7 files changed, 64 insertions(+), 64 deletions(-) diff --git a/resources/qml/Preferences/MaterialView.qml b/resources/qml/Preferences/MaterialView.qml index 04a65393e0..143f29c86e 100644 --- a/resources/qml/Preferences/MaterialView.qml +++ b/resources/qml/Preferences/MaterialView.qml @@ -108,15 +108,15 @@ TabView { width: scrollView.columnWidth; height: parent.rowHeight; - spacing: parseInt(UM.Theme.getSize("default_margin").width/2) + spacing: Math.floor(UM.Theme.getSize("default_margin").width/2) Rectangle { id: colorSelector color: properties.color_code - width: parseInt(colorLabel.height * 0.75) - height: parseInt(colorLabel.height * 0.75) + width: Math.floor(colorLabel.height * 0.75) + height: Math.floor(colorLabel.height * 0.75) border.width: UM.Theme.getSize("default_lining").height anchors.verticalCenter: parent.verticalCenter diff --git a/resources/qml/Preferences/MaterialsPage.qml b/resources/qml/Preferences/MaterialsPage.qml index b260f3397f..5e014faf24 100644 --- a/resources/qml/Preferences/MaterialsPage.qml +++ b/resources/qml/Preferences/MaterialsPage.qml @@ -67,7 +67,7 @@ UM.ManagementPage } Label { - width: parseInt((parent.width * 0.3)) + width: Math.floor((parent.width * 0.3)) text: model.metadata.material elide: Text.ElideRight font.italic: model.id == activeId diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 497e848bed..4bf4b44aed 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -24,7 +24,7 @@ Column { id: connectedPrinterHeader width: parent.width - height: parseInt(childrenRect.height + UM.Theme.getSize("default_margin").height * 2) + height: Math.floor(childrenRect.height + UM.Theme.getSize("default_margin").height * 2) color: UM.Theme.getColor("setting_category") Label @@ -82,7 +82,7 @@ Column { id: extruderRectangle color: UM.Theme.getColor("sidebar") - width: index == machineExtruderCount.properties.value - 1 && index % 2 == 0 ? extrudersGrid.width : parseInt(extrudersGrid.width / 2 - UM.Theme.getSize("sidebar_lining_thin").width / 2) + width: index == machineExtruderCount.properties.value - 1 && index % 2 == 0 ? extrudersGrid.width : Math.floor(extrudersGrid.width / 2 - UM.Theme.getSize("sidebar_lining_thin").width / 2) height: UM.Theme.getSize("sidebar_extruder_box").height Label //Extruder name. @@ -162,8 +162,8 @@ Column Rectangle //Material colour indication. { id: materialColor - width: parseInt(materialName.height * 0.75) - height: parseInt(materialName.height * 0.75) + width: Math.floor(materialName.height * 0.75) + height: Math.floor(materialName.height * 0.75) radius: width / 2 color: (connectedPrinter != null && connectedPrinter.materialColors[index] != null && connectedPrinter.materialIds[index] != "") ? connectedPrinter.materialColors[index] : "#00000000" border.width: UM.Theme.getSize("default_lining").width @@ -357,7 +357,7 @@ Column color: !enabled ? UM.Theme.getColor("setting_control_disabled") : showError ? UM.Theme.getColor("setting_validation_error_background") : UM.Theme.getColor("setting_validation_ok") property var showError: { - if(bedTemperature.properties.maximum_value != "None" && bedTemperature.properties.maximum_value < parseInt(preheatTemperatureInput.text)) + if(bedTemperature.properties.maximum_value != "None" && bedTemperature.properties.maximum_value < Math.floor(preheatTemperatureInput.text)) { return true; } else @@ -475,7 +475,7 @@ Column visible: preheatCountdown.visible source: UM.Theme.getIcon("print_time") anchors.right: preheatCountdown.left - anchors.rightMargin: parseInt(UM.Theme.getSize("default_margin").width / 2) + anchors.rightMargin: Math.floor(UM.Theme.getSize("default_margin").width / 2) anchors.verticalCenter: preheatCountdown.verticalCenter } @@ -527,15 +527,15 @@ Column { return true; //Can always cancel if the timer is running. } - if (bedTemperature.properties.minimum_value != "None" && parseInt(preheatTemperatureInput.text) < parseInt(bedTemperature.properties.minimum_value)) + if (bedTemperature.properties.minimum_value != "None" && Math.floor(preheatTemperatureInput.text) < Math.floor(bedTemperature.properties.minimum_value)) { return false; //Target temperature too low. } - if (bedTemperature.properties.maximum_value != "None" && parseInt(preheatTemperatureInput.text) > parseInt(bedTemperature.properties.maximum_value)) + if (bedTemperature.properties.maximum_value != "None" && Math.floor(preheatTemperatureInput.text) > Math.floor(bedTemperature.properties.maximum_value)) { return false; //Target temperature too high. } - if (parseInt(preheatTemperatureInput.text) == 0) + if (Math.floor(preheatTemperatureInput.text) == 0) { return false; //Setting the temperature to 0 is not allowed (since that cancels the pre-heating). } @@ -708,13 +708,13 @@ Column Row { height: UM.Theme.getSize("setting_control").height - width: parseInt(base.width - 2 * UM.Theme.getSize("default_margin").width) + width: Math.floor(base.width - 2 * UM.Theme.getSize("default_margin").width) anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("default_margin").width Label { - width: parseInt(parent.width * 0.4) + width: Math.floor(parent.width * 0.4) anchors.verticalCenter: parent.verticalCenter text: label color: connectedPrinter != null && connectedPrinter.acceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") @@ -723,7 +723,7 @@ Column } Label { - width: parseInt(parent.width * 0.6) + width: Math.floor(parent.width * 0.6) anchors.verticalCenter: parent.verticalCenter text: value color: connectedPrinter != null && connectedPrinter.acceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text") diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index a1136437dd..56fd789564 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -39,7 +39,7 @@ Item { id: globalProfileLabel text: catalog.i18nc("@label","Profile:"); - width: parseInt(parent.width * 0.45 - UM.Theme.getSize("sidebar_margin").width - 2) + width: Math.floor(parent.width * 0.45 - UM.Theme.getSize("sidebar_margin").width - 2) font: UM.Theme.getFont("default"); color: UM.Theme.getColor("text"); verticalAlignment: Text.AlignVCenter @@ -63,7 +63,7 @@ Item } enabled: !header.currentExtruderVisible || header.currentExtruderIndex > -1 - width: parseInt(parent.width * 0.55) + width: Math.floor(parent.width * 0.55) height: UM.Theme.getSize("setting_control").height anchors.left: globalProfileLabel.right anchors.right: parent.right @@ -77,8 +77,8 @@ Item id: customisedSettings visible: Cura.MachineManager.hasUserSettings - height: parseInt(parent.height * 0.6) - width: parseInt(parent.height * 0.6) + height: Math.floor(parent.height * 0.6) + width: Math.floor(parent.height * 0.6) anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index a2d822f6b6..475e36d2dc 100755 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -121,7 +121,7 @@ Rectangle anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width anchors.top: headerSeparator.bottom anchors.topMargin: UM.Theme.getSize("sidebar_margin").height - width: parseInt(parent.width * 0.45) + width: Math.floor(parent.width * 0.45) font: UM.Theme.getFont("large") color: UM.Theme.getColor("text") visible: !monitoringPrint && !hideView @@ -130,7 +130,7 @@ Rectangle Rectangle { id: settingsModeSelection color: "transparent" - width: parseInt(parent.width * 0.55) + width: Math.floor(parent.width * 0.55) height: UM.Theme.getSize("sidebar_header_mode_toggle").height anchors.right: parent.right anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width @@ -154,7 +154,7 @@ Rectangle anchors.left: parent.left anchors.leftMargin: model.index * (settingsModeSelection.width / 2) anchors.verticalCenter: parent.verticalCenter - width: parseInt(0.5 * parent.width) + width: Math.floor(0.5 * parent.width) text: model.text exclusiveGroup: modeMenuGroup; checkable: true; @@ -310,7 +310,7 @@ Rectangle height: UM.Theme.getSize("sidebar_lining").height color: UM.Theme.getColor("sidebar_lining") anchors.bottom: printSpecs.top - anchors.bottomMargin: parseInt(UM.Theme.getSize("sidebar_margin").height * 2 + UM.Theme.getSize("progressbar").height + UM.Theme.getFont("default_bold").pixelSize) + anchors.bottomMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height * 2 + UM.Theme.getSize("progressbar").height + UM.Theme.getFont("default_bold").pixelSize) } Rectangle @@ -490,7 +490,7 @@ Rectangle }) sidebarContents.push({ "item": modesListModel.get(base.currentModeIndex).item, "immediate": true }); - var index = parseInt(UM.Preferences.getValue("cura/active_mode")) + var index = Math.floor(UM.Preferences.getValue("cura/active_mode")) if(index) { currentModeIndex = index; diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index b30e1e0c1c..aa0f8a3f38 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -17,7 +17,7 @@ Column property int currentExtruderIndex: ExtruderManager.activeExtruderIndex; property bool currentExtruderVisible: extrudersList.visible; - spacing: UM.Theme.getSize("sidebar_margin").width * 0.9 + spacing: Math.floor(UM.Theme.getSize("sidebar_margin").width * 0.9) signal showTooltip(Item item, point location, string text) signal hideTooltip() @@ -52,15 +52,15 @@ Column { id: extruderSelectionRow width: parent.width - height: UM.Theme.getSize("sidebar_tabs").height * 2 / 3 + height: Math.floor(UM.Theme.getSize("sidebar_tabs").height * 2 / 3) visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint anchors { left: parent.left - leftMargin: UM.Theme.getSize("sidebar_margin").width * 0.7 + leftMargin: Math.floor(UM.Theme.getSize("sidebar_margin").width * 0.7) right: parent.right - rightMargin: UM.Theme.getSize("sidebar_margin").width * 0.7 + rightMargin: Math.floor(UM.Theme.getSize("sidebar_margin").width * 0.7) topMargin: UM.Theme.getSize("sidebar_margin").height } @@ -70,15 +70,15 @@ Column property var index: 0 height: UM.Theme.getSize("sidebar_header_mode_tabs").height - width: parent.width + width: Math.floor(parent.width) boundsBehavior: Flickable.StopAtBounds anchors { left: parent.left - leftMargin: UM.Theme.getSize("default_margin").width / 2 + leftMargin: Math.floor(UM.Theme.getSize("default_margin").width / 2) right: parent.right - rightMargin: UM.Theme.getSize("default_margin").width / 2 + rightMargin: Math.floor(UM.Theme.getSize("default_margin").width / 2) verticalCenter: parent.verticalCenter } @@ -134,7 +134,7 @@ Column width: { var extruderTextWidth = extruderStaticText.visible ? extruderStaticText.width : 0; var iconWidth = extruderIconItem.width; - return parseInt(extruderTextWidth + iconWidth + UM.Theme.getSize("default_margin").width / 2); + return Math.floor(extruderTextWidth + iconWidth + UM.Theme.getSize("default_margin").width / 2); } // Static text "Extruder" @@ -166,7 +166,7 @@ Column var minimumWidth = control.width < UM.Theme.getSize("button").width ? control.width : UM.Theme.getSize("button").width; var minimumHeight = control.height < UM.Theme.getSize("button").height ? control.height : UM.Theme.getSize("button").height; var minimumSize = minimumWidth < minimumHeight ? minimumWidth : minimumHeight; - minimumSize -= parseInt(UM.Theme.getSize("default_margin").width / 2); + minimumSize -= Math.floor(UM.Theme.getSize("default_margin").width / 2); return minimumSize; } @@ -254,7 +254,7 @@ Column { id: materialLabel text: catalog.i18nc("@label","Material"); - width: parseInt(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) + width: Math.floor(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) font: UM.Theme.getFont("default"); color: UM.Theme.getColor("text"); } @@ -310,7 +310,7 @@ Column { id: printCoreLabel text: Cura.MachineManager.activeDefinitionVariantsName; - width: parseInt(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) + width: Math.floor(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) font: UM.Theme.getFont("default"); color: UM.Theme.getColor("text"); } @@ -322,7 +322,7 @@ Column visible: Cura.MachineManager.hasVariants height: UM.Theme.getSize("setting_control").height - width: parseInt(parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width) + width: Math.floor(parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width) anchors.right: parent.right style: UM.Theme.styles.sidebar_header_button activeFocusOnPress: true; @@ -335,7 +335,7 @@ Column Item { id: materialInfoRow - height: parseInt(UM.Theme.getSize("sidebar_setup").height / 2) + height: Math.floor(UM.Theme.getSize("sidebar_setup").height / 2) visible: (Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials) && !sidebar.monitoringPrint && !sidebar.hideSettings anchors @@ -349,7 +349,7 @@ Column Item { height: UM.Theme.getSize("sidebar_setup").height anchors.right: parent.right - width: parseInt(parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width) + width: Math.floor(parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width) UM.RecolorImage { id: warningImage diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 114a53eda1..59972bbf99 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -175,7 +175,7 @@ Item { anchors.verticalCenter: parent.verticalCenter anchors.top: parent.top - anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height / 2) + anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height / 2) color: (Cura.MachineManager.activeMachine != null && Cura.ProfilesModel.getItem(index).available) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") text: { @@ -194,13 +194,13 @@ Item // Make sure the text aligns correctly with each tick if (qualityModel.totalTicks == 0) { // If there is only one tick, align it centrally - return parseInt(((base.width * 0.55) - width) / 2) + return Math.floor(((base.width * 0.55) - width) / 2) } else if (index == 0) { return (base.width * 0.55 / qualityModel.totalTicks) * index } else if (index == qualityModel.totalTicks) { return (base.width * 0.55 / qualityModel.totalTicks) * index - width } else { - return parseInt((base.width * 0.55 / qualityModel.totalTicks) * index - (width / 2)) + return Math.floor((base.width * 0.55 / qualityModel.totalTicks) * index - (width / 2)) } } } @@ -361,7 +361,7 @@ Item anchors.topMargin: UM.Theme.getSize("sidebar_margin").height * 2 anchors.left: parent.left - width: parseInt(UM.Theme.getSize("sidebar").width * .45 - UM.Theme.getSize("sidebar_margin").width) + width: Math.floor(UM.Theme.getSize("sidebar").width * .45 - UM.Theme.getSize("sidebar_margin").width) Label { @@ -371,7 +371,7 @@ Item color: UM.Theme.getColor("text") anchors.top: parent.top - anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height * 1.7) + anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height * 1.7) anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width } @@ -382,7 +382,7 @@ Item id: infillCellRight height: infillSlider.height + UM.Theme.getSize("sidebar_margin").height + enableGradualInfillCheckBox.visible * (enableGradualInfillCheckBox.height + UM.Theme.getSize("sidebar_margin").height) - width: parseInt(UM.Theme.getSize("sidebar").width * .55) + width: Math.floor(UM.Theme.getSize("sidebar").width * .55) anchors.left: infillCellLeft.right anchors.top: infillCellLeft.top @@ -393,10 +393,10 @@ Item //anchors.top: parent.top anchors.left: infillSlider.left - anchors.leftMargin: parseInt((infillSlider.value / infillSlider.stepSize) * (infillSlider.width / (infillSlider.maximumValue / infillSlider.stepSize)) - 10 * screenScaleFactor) + anchors.leftMargin: Math.floor((infillSlider.value / infillSlider.stepSize) * (infillSlider.width / (infillSlider.maximumValue / infillSlider.stepSize)) - 10 * screenScaleFactor) anchors.right: parent.right - text: parseInt(infillDensity.properties.value) + "%" + text: Math.floor(infillDensity.properties.value) + "%" horizontalAlignment: Text.AlignLeft color: infillSlider.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") @@ -406,7 +406,7 @@ Item Binding { target: infillSlider property: "value" - value: parseInt(infillDensity.properties.value) + value: Math.floor(infillDensity.properties.value) } Slider @@ -419,7 +419,7 @@ Item anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width height: UM.Theme.getSize("sidebar_margin").height - width: parseInt(infillCellRight.width - UM.Theme.getSize("sidebar_margin").width - style.handleWidth) + width: Math.floor(infillCellRight.width - UM.Theme.getSize("sidebar_margin").width - style.handleWidth) minimumValue: 0 maximumValue: 100 @@ -427,15 +427,15 @@ Item tickmarksEnabled: true // disable slider when gradual support is enabled - enabled: parseInt(infillSteps.properties.value) == 0 + enabled: Math.floor(infillSteps.properties.value) == 0 // set initial value from stack - value: parseInt(infillDensity.properties.value) + value: Math.floor(infillDensity.properties.value) onValueChanged: { // Don't round the value if it's already the same - if (parseInt(infillDensity.properties.value) == infillSlider.value) { + if (Math.floor(infillDensity.properties.value) == infillSlider.value) { return } @@ -504,7 +504,7 @@ Item anchors.right: parent.right anchors.top: parent.top - anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height / 2) + anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height / 2) // we loop over all density icons and only show the one that has the current density and steps Repeater @@ -515,8 +515,8 @@ Item property int activeIndex: { for (var i = 0; i < infillModel.count; i++) { - var density = parseInt(infillDensity.properties.value) - var steps = parseInt(infillSteps.properties.value) + var density = Math.floor(infillDensity.properties.value) + var steps = Math.floor(infillSteps.properties.value) var infillModelItem = infillModel.get(i) if (density >= infillModelItem.percentageMin @@ -555,13 +555,13 @@ Item property alias _hovered: enableGradualInfillMouseArea.containsMouse anchors.top: infillSlider.bottom - anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height / 2) // closer to slider since it belongs to the same category + anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height / 2) // closer to slider since it belongs to the same category anchors.left: infillCellRight.left style: UM.Theme.styles.checkbox enabled: base.settingsEnabled visible: infillSteps.properties.enabled == "True" - checked: parseInt(infillSteps.properties.value) > 0 + checked: Math.floor(infillSteps.properties.value) > 0 MouseArea { id: enableGradualInfillMouseArea @@ -570,18 +570,18 @@ Item hoverEnabled: true enabled: true - property var previousInfillDensity: parseInt(infillDensity.properties.value) + property var previousInfillDensity: Math.floor(infillDensity.properties.value) onClicked: { // Set to 90% only when enabling gradual infill - if (parseInt(infillSteps.properties.value) == 0) { - previousInfillDensity = parseInt(infillDensity.properties.value) + if (Math.floor(infillSteps.properties.value) == 0) { + previousInfillDensity = Math.floor(infillDensity.properties.value) infillDensity.setPropertyValue("value", String(90)) } else { infillDensity.setPropertyValue("value", String(previousInfillDensity)) } - infillSteps.setPropertyValue("value", (parseInt(infillSteps.properties.value) == 0) ? 5 : 0) + infillSteps.setPropertyValue("value", (Math.floor(infillSteps.properties.value) == 0) ? 5 : 0) } onEntered: { @@ -597,7 +597,7 @@ Item Label { id: gradualInfillLabel anchors.left: enableGradualInfillCheckBox.right - anchors.leftMargin: parseInt(UM.Theme.getSize("sidebar_margin").width / 2) + anchors.leftMargin: Math.floor(UM.Theme.getSize("sidebar_margin").width / 2) text: catalog.i18nc("@label", "Enable gradual") font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") @@ -658,7 +658,7 @@ Item visible: enableSupportCheckBox.visible anchors.top: infillCellRight.bottom - anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height * 1.5) + anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height * 1.5) anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width anchors.verticalCenter: enableSupportCheckBox.verticalCenter @@ -867,7 +867,7 @@ Item { id: tipsCell anchors.top: adhesionCheckBox.visible ? adhesionCheckBox.bottom : (enableSupportCheckBox.visible ? supportExtruderCombobox.bottom : infillCellRight.bottom) - anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height * 2) + anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height * 2) anchors.left: parent.left width: parent.width height: tipsText.contentHeight * tipsText.lineCount From 052ea7d90aa461ea9f1fb0194eb2709057243ff5 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 12 Oct 2017 07:57:20 +0200 Subject: [PATCH 010/218] Force use and update the job name with the loaded project file CURA-4348 - If no project is loaded beforehand and then a model file is loaded, the job name should be determined with the current machine name and the first loaded model name. - If a project is loaded, the job name should be the same as the project name, and it should not change until another project is loaded. --- cura/CuraApplication.py | 2 ++ cura/PrintInformation.py | 14 ++++++++++++-- plugins/3MFReader/ThreeMFWorkspaceReader.py | 6 ++++++ resources/qml/OpenFilesIncludingProjectsDialog.qml | 2 -- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index fc7edb8714..e34bdc6908 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -125,6 +125,8 @@ class CuraApplication(QtApplication): # Cura will always show the Add Machine Dialog upon start. stacksValidationFinished = pyqtSignal() # Emitted whenever a validation is finished + projectFileLoaded = pyqtSignal(str) # Emitted whenever a project file is loaded + def __init__(self): # this list of dir names will be used by UM to detect an old cura directory for dir_name in ["extruders", "machine_instances", "materials", "plugins", "quality", "user", "variants"]: diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index 80abd0c356..86bcc2719e 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -66,10 +66,11 @@ class PrintInformation(QObject): self._base_name = "" self._abbr_machine = "" self._job_name = "" + self._project_name = "" Application.getInstance().globalContainerStackChanged.connect(self._updateJobName) Application.getInstance().fileLoaded.connect(self.setBaseName) - + Application.getInstance().projectFileLoaded.connect(self.setProjectName) Preferences.getInstance().preferenceChanged.connect(self._onPreferencesChanged) self._active_material_container = None @@ -78,7 +79,6 @@ class PrintInformation(QObject): self._material_amounts = [] - # Crate cura message translations and using translation keys initialize empty time Duration object for total time # and time for each feature def initializeCuraMessagePrintTimeProperties(self): @@ -241,6 +241,11 @@ class PrintInformation(QObject): self._job_name = name self.jobNameChanged.emit() + @pyqtSlot(str) + def setProjectName(self, name): + self._project_name = name + self.setJobName(name) + jobNameChanged = pyqtSignal() @pyqtProperty(str, notify = jobNameChanged) @@ -248,6 +253,11 @@ class PrintInformation(QObject): return self._job_name def _updateJobName(self): + # if the project name is set, we use the project name as the job name, so the job name should not get updated + # if a model file is loaded after that. + if self._project_name != "": + return + if self._base_name == "": self._job_name = "" self.jobNameChanged.emit() diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 79e137e87f..5b1e084262 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -26,6 +26,7 @@ from configparser import ConfigParser import zipfile import io import configparser +import os i18n_catalog = i18nCatalog("cura") @@ -876,6 +877,11 @@ class ThreeMFWorkspaceReader(WorkspaceReader): nodes = self._3mf_mesh_reader.read(file_name) if nodes is None: nodes = [] + + base_file_name = os.path.basename(file_name) + if base_file_name.endswith(".curaproject.3mf"): + base_file_name = base_file_name[:base_file_name.rfind(".curaproject.3mf")] + Application.getInstance().projectFileLoaded.emit(base_file_name) return nodes ## HACK: Replaces the material container in the given stack with a newly created material container. diff --git a/resources/qml/OpenFilesIncludingProjectsDialog.qml b/resources/qml/OpenFilesIncludingProjectsDialog.qml index c8df7b69a2..af8fb9e05f 100644 --- a/resources/qml/OpenFilesIncludingProjectsDialog.qml +++ b/resources/qml/OpenFilesIncludingProjectsDialog.qml @@ -36,8 +36,6 @@ UM.Dialog var meshName = backgroundItem.getMeshName(projectFile.toString()); backgroundItem.hasMesh(decodeURIComponent(meshName)); - // always update the job name with the loaded project - PrintInformation.setBaseName(meshName); } function loadModelFiles(fileUrls) From b318dc70872cd5091cfed4ea4c40a68a896cd43c Mon Sep 17 00:00:00 2001 From: "A.Sasin" Date: Thu, 12 Oct 2017 08:57:26 +0200 Subject: [PATCH 011/218] Added notification icon in recomended mode. The notification icon is only active if one of custom settings is changed CURA-4333 --- cura/CuraApplication.py | 6 +++ cura/Settings/MachineManager.py | 36 ++++++++++++++ resources/qml/SidebarSimple.qml | 84 +++++++++++++++++++++++++++++++++ 3 files changed, 126 insertions(+) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index c2517093bb..1a10e45662 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -400,6 +400,8 @@ class CuraApplication(QtApplication): # ALWAYS ask whether to keep or discard the profile self.showDiscardOrKeepProfileChanges.emit() + sidebarSimpleDiscardOrKeepProfileChanges = pyqtSignal() + @pyqtSlot(str) def discardOrKeepProfileChangesClosed(self, option): if option == "discard": @@ -409,6 +411,10 @@ class CuraApplication(QtApplication): global_stack.getTop().clear() + #event handler for SidebarSimple, which will update sliders view visibility (like:sliders..) + if Preferences.getInstance().getValue("cura/active_mode") == 0: + self.sidebarSimpleDiscardOrKeepProfileChanges.emit() + @pyqtSlot(int) def messageBoxClosed(self, button): if self._message_box_callback: diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index e0e81fba1b..dc71fe9ca9 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -413,6 +413,42 @@ class MachineManager(QObject): return False + ## Check whether user containers have adjusted settings or not + # \param skip_keys \type{list} List of setting keys which will be not taken into account ("support_enable" , "infill_sparse_density"...) + # \return \type{boole} Return true if user containers have any of adjusted settings + @pyqtSlot("QVariantList", result = bool) + def hasUserCustomSettings(self, skip_keys = []) -> bool: + + user_setting_keys = [] + try: + if not self._global_container_stack: + return False + + allContainers = self._global_container_stack.getContainers() + + for container in allContainers: + meta = container.getMetaData() + if meta and meta["type"] and meta["type"] == "user": + user_setting_keys.extend(container.getAllKeys()) + + stacks = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())) + for stack in stacks: + + for container in stack.getContainers(): + meta = container.getMetaData() + if meta and meta["type"] and meta["type"] == "user": + user_setting_keys.extend(container.getAllKeys()) + + for skip_key in skip_keys: + if skip_key in user_setting_keys: + user_setting_keys.remove(skip_key) + + except: + Logger.log("e", "While checking user custom settings occured error. skip_keys: %s", skip_keys ) + return False + + return len(user_setting_keys) > 0 + @pyqtProperty(int, notify = activeStackValueChanged) def numUserSettings(self) -> int: if not self._global_container_stack: diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index ea9ee507ba..3301d4af67 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -20,11 +20,40 @@ Item property variant minimumPrintTime: PrintInformation.minimumPrintTime; property variant maximumPrintTime: PrintInformation.maximumPrintTime; property bool settingsEnabled: ExtruderManager.activeExtruderStackId || machineExtruderCount.properties.value == 1 + property bool hasUserSettings; Component.onCompleted: PrintInformation.enabled = true Component.onDestruction: PrintInformation.enabled = false UM.I18nCatalog { id: catalog; name: "cura" } + onVisibleChanged: + { + if (visible) + { + base.checkUserSettings() + } + } + + Connections + { + target: CuraApplication + onSidebarSimpleDiscardOrKeepProfileChanges: + { + base.hasUserSettings = false + } + } + + function checkUserSettings(){ + + var skip_keys = ["support_enable" , + "infill_sparse_density", + "gradual_infill_steps", + "adhesion_type", + "support_extruder_nr"] + + base.hasUserSettings = Cura.MachineManager.hasUserCustomSettings(skip_keys) + } + ScrollView { visible: Cura.MachineManager.activeMachineName != "" // If no printers added then the view is invisible @@ -291,6 +320,7 @@ Item implicitWidth: 10 * screenScaleFactor implicitHeight: implicitWidth radius: implicitWidth / 2 + visible: !hasUserSettings; } } } @@ -308,6 +338,33 @@ Item } } } + + + //If any of settings were changed in custom mode then the Rectangle will + //overlap quality slider area. It is used to catch mouse click + Rectangle { + anchors.verticalCenter: parent.verticalCenter + anchors.right: extrudersModelCheckBox.right + anchors.rightMargin: UM.Theme.getSize("default_margin").width + width: qualitySlider.width + height: qualitySlider.height * 1.5 + //border.width: UM.Theme.getSize("default_lining").width // dispay overlap zone + //border.color: UM.Theme.getColor("lining") + + color: "transparent" + + visible: hasUserSettings + enabled: hasUserSettings + + + MouseArea { + anchors.fill: parent + onClicked: { + discardOrKeepProfileChangesDialog.show() + } + } + + } } Label @@ -343,6 +400,33 @@ Item color: (qualityModel.availableTotalTicks > 0) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") horizontalAlignment: Text.AlignRight } + + UM.SimpleButton + { + id: customisedSettings + + visible: hasUserSettings + height: speedSlider.height * 0.8 + width: speedSlider.height * 0.8 + + anchors.verticalCenter: speedSlider.verticalCenter + anchors.right: speedSlider.left + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width / 2 + + color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button"); + iconSource: UM.Theme.getIcon("reset"); + + onClicked: + { + discardOrKeepProfileChangesDialog.show() + } + onEntered: + { + var content = catalog.i18nc("@tooltip","You have selected a custom profile. If you want to change it, go to custom mode.") + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("sidebar_margin").width, customisedSettings.height), content) + } + onExited: base.hideTooltip() + } } From 2c73b017a4bd734e7263486a55eb8146520317d2 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Thu, 12 Oct 2017 09:26:45 +0200 Subject: [PATCH 012/218] trihex infill --- resources/definitions/fdmprinter.def.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index ca424dfd2f..1b492a2cf8 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1354,7 +1354,7 @@ "default_value": 2, "minimum_value": "0", "minimum_value_warning": "infill_line_width", - "value": "0 if infill_sparse_density == 0 else (infill_line_width * 100) / infill_sparse_density * (2 if infill_pattern == 'grid' else (3 if infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'cubicsubdiv' else (2 if infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' else (1 if infill_pattern == 'cross' or infill_pattern == 'cross_3d' else 1))))", + "value": "0 if infill_sparse_density == 0 else (infill_line_width * 100) / infill_sparse_density * (2 if infill_pattern == 'grid' else (3 if infill_pattern == 'triangles' or infill_pattern == 'trihexagon' or infill_pattern == 'cubic' or infill_pattern == 'cubicsubdiv' else (2 if infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' else (1 if infill_pattern == 'cross' or infill_pattern == 'cross_3d' else 1))))", "limit_to_extruder": "infill_extruder_nr", "settable_per_mesh": true } @@ -1370,6 +1370,7 @@ "grid": "Grid", "lines": "Lines", "triangles": "Triangles", + "trihexagon": "Tri-Hexagon", "cubic": "Cubic", "cubicsubdiv": "Cubic Subdivision", "tetrahedral": "Octet", From f94954e9ca8425764b032cd70f4c10a9ac484945 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 12 Oct 2017 09:28:50 +0200 Subject: [PATCH 013/218] Improved end g-code This one removes the hair at the end of this print a bit better. Contributes to issue EM-1859. --- resources/definitions/ultimaker3.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index 2f4ad4e1a8..21f80e18fd 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -67,7 +67,7 @@ "machine_extruder_count": { "default_value": 2 }, "extruder_prime_pos_abs": { "default_value": true }, "machine_start_gcode": { "default_value": "" }, - "machine_end_gcode": { "default_value": "G91 ;Relative movement\nG0 F2400 Z3 E-{retraction_amount}\nG90 ;Disable relative movement" }, + "machine_end_gcode": { "default_value": "G91 ;Relative movement\nG0 F15000 X8.0 Z0.5 E-4.5 ;Wiping+material retraction\nG0 F10000 Z1.5 E4.5 ;Compensation for the retraction\nG90 ;Disable relative movement" }, "prime_tower_position_x": { "value": "machine_depth - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) - 30" }, "prime_tower_wipe_enabled": { "default_value": false }, From ca28748bc32d04495f93aec00b9cce70a93e6eb2 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 12 Oct 2017 10:26:38 +0200 Subject: [PATCH 014/218] Add missing translations from broken string freeze These texts were added later after the strings were frozen. Bad! But this is the German translation for it, retrieved from a secondary speaker here at the office. Contributes to issue CURA-4341. --- resources/i18n/de_DE/cura.po | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/resources/i18n/de_DE/cura.po b/resources/i18n/de_DE/cura.po index 1323070dbe..a18361802b 100644 --- a/resources/i18n/de_DE/cura.po +++ b/resources/i18n/de_DE/cura.po @@ -36,6 +36,31 @@ msgctxt "@label:status" msgid "Can't start print" msgstr "Druck startet nicht" +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is not set up to host a group of Ultimaker 3 printers." +msgstr "Dieser Drucker ist nicht eingerichtet um eine Gruppe von Ultimaker 3 Druckern anzusteuern." + +#: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +msgctxt "@label" +msgid "Finishes at: " +msgstr "Endet um: " + +#: Manually added for plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +msgctxt "@label" +msgid "This printer is the host for a group of %1 Ultimaker 3 printers." +msgstr "Dieser Drucker steuert eine Gruppe von %1 Ultimaker 3 Druckern an." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Printer '{printer_name}' has finished printing '{job_name}'." +msgstr "Drucker '{printer_name}' hat '{job_name}' vollständig gedrückt." + +#: Manually added for plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +msgctxt "@info:status" +msgid "Print finished" +msgstr "Druck vollendet" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" From 0383cea816e35cc8e45f67a32c6f955995badc7d Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 12 Oct 2017 10:31:11 +0200 Subject: [PATCH 015/218] Fix code style CURA-4333 --- resources/qml/SidebarSimple.qml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index eef06209ec..fa32516862 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -44,13 +44,11 @@ Item } function checkUserSettings(){ - var skip_keys = ["support_enable" , - "infill_sparse_density", - "gradual_infill_steps", - "adhesion_type", - "support_extruder_nr"] - + "infill_sparse_density", + "gradual_infill_steps", + "adhesion_type", + "support_extruder_nr"] base.hasUserSettings = Cura.MachineManager.hasUserCustomSettings(skip_keys) } @@ -348,15 +346,12 @@ Item anchors.rightMargin: UM.Theme.getSize("default_margin").width width: qualitySlider.width height: qualitySlider.height * 1.5 - //border.width: UM.Theme.getSize("default_lining").width // dispay overlap zone - //border.color: UM.Theme.getColor("lining") color: "transparent" visible: hasUserSettings enabled: hasUserSettings - MouseArea { anchors.fill: parent onClicked: { From af3c34b6fdd8f0e593f755139964dbddfea0502a Mon Sep 17 00:00:00 2001 From: Simon Edwards Date: Thu, 12 Oct 2017 10:46:25 +0200 Subject: [PATCH 016/218] Don't let the user select unreachable printers in the Cura Connect monitor tab CL-584 --- plugins/UM3NetworkPrinting/PrinterInfoBlock.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml b/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml index 005d719266..ab944d0dcc 100644 --- a/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +++ b/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml @@ -73,7 +73,7 @@ Rectangle hoverEnabled: true; // Only clickable if no printer is selected - enabled: OutputDevice.selectedPrinterName == "" + enabled: OutputDevice.selectedPrinterName == "" && printer.status !== "unreachable" } Row From a3b8642a4e30f6192647b94d724473a4e5e1880b Mon Sep 17 00:00:00 2001 From: "A.Sasin" Date: Thu, 12 Oct 2017 11:45:25 +0200 Subject: [PATCH 017/218] Added text.elideRight on SidebarSimple --- resources/qml/SidebarSimple.qml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 59972bbf99..920044e277 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -661,11 +661,14 @@ Item anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height * 1.5) anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.right: infillCellLeft.right + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width anchors.verticalCenter: enableSupportCheckBox.verticalCenter text: catalog.i18nc("@label", "Generate Support"); font: UM.Theme.getFont("default"); color: UM.Theme.getColor("text"); + elide: Text.ElideRight } CheckBox @@ -711,10 +714,13 @@ Item visible: supportExtruderCombobox.visible anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.right: infillCellLeft.right + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width anchors.verticalCenter: supportExtruderCombobox.verticalCenter text: catalog.i18nc("@label", "Support Extruder"); font: UM.Theme.getFont("default"); color: UM.Theme.getColor("text"); + elide: Text.ElideRight } ComboBox From 8d20f62dc9fc334e313fd39a18c88f838a030220 Mon Sep 17 00:00:00 2001 From: "A.Sasin" Date: Thu, 12 Oct 2017 11:57:02 +0200 Subject: [PATCH 018/218] Changed back to previous commit --- resources/qml/Preferences/MaterialView.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Preferences/MaterialView.qml b/resources/qml/Preferences/MaterialView.qml index 597dcf7600..143f29c86e 100644 --- a/resources/qml/Preferences/MaterialView.qml +++ b/resources/qml/Preferences/MaterialView.qml @@ -16,8 +16,8 @@ TabView property bool editingEnabled: false; property string currency: UM.Preferences.getValue("cura/currency") ? UM.Preferences.getValue("cura/currency") : "€" - property real firstColumnWidth: (width * 0.45) | 0 - property real secondColumnWidth: (width * 0.45) | 0 + property real firstColumnWidth: (width * 0.50) | 0 + property real secondColumnWidth: (width * 0.40) | 0 property string containerId: "" property var materialPreferenceValues: UM.Preferences.getValue("cura/material_settings") ? JSON.parse(UM.Preferences.getValue("cura/material_settings")) : {} From 427afdbe23c45604ecc28c2fe287e18733d7b4be Mon Sep 17 00:00:00 2001 From: Simon Edwards Date: Thu, 12 Oct 2017 12:41:21 +0200 Subject: [PATCH 019/218] Correctly set up the cluster output device instances with the cluster size This fixes the Cura Connect messages shown in the network printer selection dialog. CL-555 --- .../NetworkPrinterOutputDevicePlugin.py | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py index ab9fbc64a8..24d65b47a8 100644 --- a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py +++ b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py @@ -153,7 +153,18 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin): if status_code == 200: # We know it's a cluster printer Logger.log("d", "Cluster printer detected: [%s]", reply.url()) + + try: + cluster_printers_list = json.loads(bytes(reply.readAll()).decode("utf-8")) + except json.JSONDecodeError: + Logger.log("e", "Printer returned invalid JSON.") + return + except UnicodeDecodeError: + Logger.log("e", "Printer returned incorrect UTF-8.") + return + self._network_requests_buffer[address]["cluster"] = True + self._network_requests_buffer[address]["cluster_size"] = len(cluster_printers_list) else: Logger.log("d", "This url is not from a cluster printer: [%s]", reply.url()) self._network_requests_buffer[address]["cluster"] = False @@ -165,7 +176,6 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin): instance_name = "manual:%s" % address system_info = self._network_requests_buffer[address]["system"] - is_cluster = self._network_requests_buffer[address]["cluster"] machine = "unknown" if "variant" in system_info: variant = system_info["variant"] @@ -181,10 +191,14 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin): b"manual": b"true", b"machine": machine.encode("utf-8") } + + if self._network_requests_buffer[address]["cluster"]: + properties[b"cluster_size"] = self._network_requests_buffer[address]["cluster_size"] + if instance_name in self._printers: # Only replace the printer if it is still in the list of (manual) printers self.removePrinter(instance_name) - self.addPrinter(instance_name, address, properties, force_cluster=is_cluster) + self.addPrinter(instance_name, address, properties) del self._network_requests_buffer[address] @@ -215,9 +229,9 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin): self._printers[key].connectionStateChanged.disconnect(self._onPrinterConnectionStateChanged) ## Because the model needs to be created in the same thread as the QMLEngine, we use a signal. - def addPrinter(self, name, address, properties, force_cluster=False): + def addPrinter(self, name, address, properties): cluster_size = int(properties.get(b"cluster_size", -1)) - if force_cluster or cluster_size >= 0: + if cluster_size >= 0: printer = NetworkClusterPrinterOutputDevice.NetworkClusterPrinterOutputDevice( name, address, properties, self._api_prefix) else: From 39891551e399b7b275545a9ee72c1c42d63e66c6 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 12 Oct 2017 12:42:18 +0200 Subject: [PATCH 020/218] Fix custom profile handling for quality slider CURA-4333 --- cura/CuraApplication.py | 6 ++-- cura/Settings/MachineManager.py | 8 +++--- resources/qml/SidebarSimple.qml | 49 +++++++++++++++++---------------- 3 files changed, 33 insertions(+), 30 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 6a4b996080..ff16ba437d 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -413,9 +413,9 @@ class CuraApplication(QtApplication): global_stack.getTop().clear() - #event handler for SidebarSimple, which will update sliders view visibility (like:sliders..) - if Preferences.getInstance().getValue("cura/active_mode") == 0: - self.sidebarSimpleDiscardOrKeepProfileChanges.emit() + # event handler for SidebarSimple, which will update sliders view visibility (like:sliders..) + if Preferences.getInstance().getValue("cura/active_mode") == 0: + self.sidebarSimpleDiscardOrKeepProfileChanges.emit() @pyqtSlot(int) def messageBoxClosed(self, button): diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index dc71fe9ca9..624bc12487 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -417,16 +417,16 @@ class MachineManager(QObject): # \param skip_keys \type{list} List of setting keys which will be not taken into account ("support_enable" , "infill_sparse_density"...) # \return \type{boole} Return true if user containers have any of adjusted settings @pyqtSlot("QVariantList", result = bool) - def hasUserCustomSettings(self, skip_keys = []) -> bool: + def hasUserCustomSettings(self, skip_keys = None) -> bool: + if skip_keys is None: + skip_keys = [] user_setting_keys = [] try: if not self._global_container_stack: return False - allContainers = self._global_container_stack.getContainers() - - for container in allContainers: + for container in self._global_container_stack.getContainers(): meta = container.getMetaData() if meta and meta["type"] and meta["type"] == "user": user_setting_keys.extend(container.getAllKeys()) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index fa32516862..e5a21ba407 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -22,6 +22,13 @@ Item property bool settingsEnabled: ExtruderManager.activeExtruderStackId || machineExtruderCount.properties.value == 1 property bool hasUserSettings; + property var profileChangedCheckSkipKeys: ["support_enable" , + "infill_sparse_density", + "gradual_infill_steps", + "adhesion_type", + "support_extruder_nr"] + property var tickClickedViaProfileSlider: undefined + Component.onCompleted: PrintInformation.enabled = true Component.onDestruction: PrintInformation.enabled = false UM.I18nCatalog { id: catalog; name: "cura" } @@ -39,17 +46,17 @@ Item target: CuraApplication onSidebarSimpleDiscardOrKeepProfileChanges: { - base.hasUserSettings = false + base.checkUserSettings(); } } - function checkUserSettings(){ - var skip_keys = ["support_enable" , - "infill_sparse_density", - "gradual_infill_steps", - "adhesion_type", - "support_extruder_nr"] - base.hasUserSettings = Cura.MachineManager.hasUserCustomSettings(skip_keys) + function checkUserSettings() { + hasUserSettings = Cura.MachineManager.hasUserCustomSettings(profileChangedCheckSkipKeys); + if (!hasUserSettings && tickClickedViaProfileSlider != undefined) + { + Cura.MachineManager.setActiveQuality(Cura.ProfilesModel.getItem(tickClickedViaProfileSlider).id); + } + tickClickedViaProfileSlider = undefined; } ScrollView @@ -289,7 +296,7 @@ Item anchors.bottom: speedSlider.bottom enabled: qualityModel.availableTotalTicks > 0 visible: qualityModel.totalTicks > 0 - updateValueWhileDragging : false + updateValueWhileDragging: false minimumValue: qualityModel.qualitySliderAvailableMin >= 0 ? qualityModel.qualitySliderAvailableMin : 0 maximumValue: qualityModel.qualitySliderAvailableMax >= 0 ? qualityModel.qualitySliderAvailableMax : 0 @@ -340,25 +347,21 @@ Item //If any of settings were changed in custom mode then the Rectangle will //overlap quality slider area. It is used to catch mouse click - Rectangle { - anchors.verticalCenter: parent.verticalCenter - anchors.right: extrudersModelCheckBox.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width - width: qualitySlider.width - height: qualitySlider.height * 1.5 - - color: "transparent" + MouseArea { + anchors.fill: qualitySlider visible: hasUserSettings enabled: hasUserSettings - MouseArea { - anchors.fill: parent - onClicked: { - discardOrKeepProfileChangesDialog.show() - } - } + onClicked: { + const offset = qualityModel.qualitySliderStepWidth / 2; + const mousePosition = mouseX + offset; + // save where it was clicked + base.tickClickedViaProfileSlider = Math.floor(mousePosition / qualityModel.qualitySliderStepWidth); + + discardOrKeepProfileChangesDialog.show(); + } } } From 379430d0728edb78bb505e1334b171d94eb9e0d5 Mon Sep 17 00:00:00 2001 From: petterreinholdtsen Date: Thu, 12 Oct 2017 13:40:46 +0200 Subject: [PATCH 021/218] List model/x3d+xml in the desktop file Add model/x3d+xml as a supported MIME type in the desktop file. Fixes issue #2571. --- cura.desktop.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura.desktop.in b/cura.desktop.in index 782167b5fc..2d823f01a0 100644 --- a/cura.desktop.in +++ b/cura.desktop.in @@ -10,6 +10,6 @@ TryExec=@CMAKE_INSTALL_FULL_BINDIR@/cura Icon=cura-icon Terminal=false Type=Application -MimeType=application/sla;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;image/bmp;image/gif;image/jpeg;image/png; +MimeType=application/sla;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;image/bmp;image/gif;image/jpeg;image/png;model/x3d+xml Categories=Graphics; Keywords=3D;Printing; From 624aca324e8aab29d4eea1404b6899e2ea4b594c Mon Sep 17 00:00:00 2001 From: "A.Sasin" Date: Thu, 12 Oct 2017 13:42:21 +0200 Subject: [PATCH 022/218] Updated changelog, except Cross infill CURA-4391 --- plugins/ChangeLogPlugin/ChangeLog.txt | 76 ++++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) diff --git a/plugins/ChangeLogPlugin/ChangeLog.txt b/plugins/ChangeLogPlugin/ChangeLog.txt index 57e6e05d9c..6ee523d35a 100755 --- a/plugins/ChangeLogPlugin/ChangeLog.txt +++ b/plugins/ChangeLogPlugin/ChangeLog.txt @@ -1,5 +1,79 @@ [3.0.0] -*Will be updated soon! +*Faster start-up +Start-up speed has been cut in half compared to the previous version. + +*New color scheme +Color scheme has been updated to reflect Ultimaker Cura rebrand. + +*Updated UX design +The Ultimaker Cura logo has moved from the bottom to the top of the interface. Print status icons have been updated and repositioned. + +*Redesigned splash screen +A new splash screen on Ultimaker Cura startup has been added. + +*Top navigation bar improvements +The width of tab functionality changes accordingly to the word space (multilingual). + +*Print quality slider +A slider can now be used to control the quality profile in recommended mode. + +*Infill slider +Model infill can now be changed using a slider in recommended mode. + +*Changed layer view +Layer view icon, panel and slider have moved to top-right of interface. + +*Rasterized build plate +The build plate now shows graduations of 10 mm and 1 mm for easy model positioning. + +*Changed row of extruder buttons +Extruder tabs have become buttons and icons have been updated. + +*Add an "Export to Cura" button in SOLIDWORKS +SOLIDWORKS plugin can now be installed using an automatic installer. + +*Siemens NX macro +When a user updates models in Siemens NX and clicks the button, the updated models replace the models opened in Ultimaker Cura. + +*Skin removal width +Remove thin strips of skin from a model to prevent print head zigzagging, in turn preventing vibrations. + +*Skin expand distance +Cutting away skins on steep overhangs makes prints less sturdy. By expanding skins with the thickness of walls, features will be better supported. In addition, features such as towers on top of infill will be stronger. + +*Extra skin wall count +Printing extra skin directly on top of infill can lead to gaps, curling and pillowing. This is reduced by printing a wall around the skin first, and also improves the printing speed. + +*Minimum extrusion for skin +Will prevent filling small gaps that are probably filled already, resulting in less strings, better top details and faster prints. + +*PVA retractions +PVA (switch) retraction length is increased, minimum travel distance for retraction is decreased and max count is slightly increased, this reduces stringing by a lot at the cost of slightly increased print time. + +*Z seam options +Gives the user control over where to place the seam - hide it in convex corners or in easy to remove locations such as concave corners. Don’t let corner angles influence the seam position. + +*Quarter cubic infill +Similar to tetrahedral (octet) infill, but half of the lines are shifted half of the period up. This pattern sacrifices some rigidity of octet infill for greater toughness. + +*Layer start negative position +Layer start X/Y values can be less than 0 when the machine centre is zero. + +*PostProcessing stretch script +This new script performs "post stretch" algorithm to fix the problem of insufficient inner and outer diameters. Thanks to electrocbd for contributing. + +*Ironing speed settings +Ironing speed settings have been moved to experimental category. + +*Doodle3D plugin +Update Doodle3D plugin to connect with printers. Thanks to mith for contributing. + +*Bug fixes +- Customized profiles are not sent when connecting to a printer +- Sync z-hop with layer changes, thanks to smartavionics for contributing +- Memory leaks on MacOS +- Printer name not loaded when project file is opened +- Doodle3D Wifi box was selected by default on non-UM3 printers [2.7.0] *Top surface skin From eef4d61402bdcedc283a0967ceea4ece82b342b3 Mon Sep 17 00:00:00 2001 From: Simon Edwards Date: Thu, 12 Oct 2017 13:44:03 +0200 Subject: [PATCH 023/218] Correct the status message when a printer needs a config change but is unreachable CL-508 --- plugins/UM3NetworkPrinting/PrinterInfoBlock.qml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml b/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml index ab944d0dcc..1ced5e8233 100644 --- a/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +++ b/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml @@ -257,6 +257,11 @@ Rectangle return catalog.i18nc("@label:status", "Disabled"); } + if (printer.status === "unreachable") + { + return printerStatusText(printer); + } + if (printJob != null) { switch (printJob.status) @@ -327,6 +332,12 @@ Rectangle { return "blocked-icon.svg"; } + + if (printer.status === "unreachable") + { + return ""; + } + if (printJob != null) { if(printJob.status === "queued") @@ -378,6 +389,11 @@ Rectangle return catalog.i18nc("@label", "Not accepting print jobs"); } + if (printer.status === "unreachable") + { + return ""; + } + if(printJob != null) { switch (printJob.status) From 8ed7918b6030b112e74ebdf4ffebed8c1299d6d4 Mon Sep 17 00:00:00 2001 From: Simon Edwards Date: Thu, 12 Oct 2017 14:02:19 +0200 Subject: [PATCH 024/218] Update the icon used to show that a printer is blocked. This applies to the printer status icons shown in the monitor tab when connected via Cura Connect. --- plugins/UM3NetworkPrinting/blocked-icon.svg | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/blocked-icon.svg b/plugins/UM3NetworkPrinting/blocked-icon.svg index 03bbe24e16..eba3efdab9 100644 --- a/plugins/UM3NetworkPrinting/blocked-icon.svg +++ b/plugins/UM3NetworkPrinting/blocked-icon.svg @@ -1,3 +1,6 @@ - - + + + + + From 920c90010fdd331187aa15488a5982330f72611a Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 12 Oct 2017 14:54:01 +0200 Subject: [PATCH 025/218] Fix base.selectedPrinter is undefined problem --- plugins/UM3NetworkPrinting/DiscoverUM3Action.qml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml index 205dbdc9d9..b20d17a6d4 100644 --- a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +++ b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml @@ -278,6 +278,10 @@ Cura.MachineAction width: parent.width wrapMode: Text.WordWrap text:{ + if (base.selectedPrinter == undefined) + { + return ""; + } // The property cluster size does not exist for older UM3 devices. if(base.selectedPrinter != undefined && base.selectedPrinter.clusterSize == null || base.selectedPrinter.clusterSize == 1) { From 7f944ff08b8579176943a00c0767dac81f6f8f0b Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 12 Oct 2017 15:26:17 +0200 Subject: [PATCH 026/218] Improve zeroconf service changed handling CURA-4252 Use a separate thread to handle zeroconf service changed callbacks. If a service info cannot be retrieved successfully, the request will be rescheduled and tried again later. --- .../NetworkPrinterOutputDevicePlugin.py | 65 ++++++++++++++++--- 1 file changed, 57 insertions(+), 8 deletions(-) diff --git a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py index 3566cda69f..18e5fcf883 100644 --- a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py +++ b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py @@ -1,19 +1,18 @@ # Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -import os import time import json +from queue import Queue +from threading import Event, Thread -from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal, pyqtSlot +from PyQt5.QtCore import QObject, pyqtSlot from PyQt5.QtCore import QUrl from PyQt5.QtGui import QDesktopServices -from PyQt5.QtNetwork import QNetworkRequest, QNetworkAccessManager, QNetworkReply -from PyQt5.QtQml import QQmlComponent, QQmlContext +from PyQt5.QtNetwork import QNetworkRequest, QNetworkAccessManager from UM.Application import Application from UM.Logger import Logger from UM.OutputDevice.OutputDevicePlugin import OutputDevicePlugin -from UM.PluginRegistry import PluginRegistry from UM.Preferences import Preferences from UM.Signal import Signal, signalemitter from zeroconf import Zeroconf, ServiceBrowser, ServiceStateChange, ServiceInfo # type: ignore @@ -57,6 +56,16 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin): self._network_requests_buffer = {} # store api responses until data is complete + # The zeroconf service changed requests are handled in a separate thread, so we can re-schedule the requests + # which fail to get detailed service info. + # Any new or re-scheduled requests will be appended to the request queue, and the handling thread will pick + # them up and process them. + self._service_changed_request_queue = Queue() + self._service_changed_request_event = Event() + self._service_changed_request_thread = Thread(target = self._handleOnServiceChangedRequests, + daemon = True) + self._service_changed_request_thread.start() + addPrinterSignal = Signal() removePrinterSignal = Signal() printerListChanged = Signal() @@ -76,7 +85,7 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin): # After network switching, one must make a new instance of Zeroconf # On windows, the instance creation is very fast (unnoticable). Other platforms? self._zero_conf = Zeroconf() - self._browser = ServiceBrowser(self._zero_conf, u'_ultimaker._tcp.local.', [self._onServiceChanged]) + self._browser = ServiceBrowser(self._zero_conf, u'_ultimaker._tcp.local.', [self._appendServiceChangedRequest]) # Look for manual instances from preference for address in self._manual_instances: @@ -254,7 +263,8 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin): else: self.getOutputDeviceManager().removeOutputDevice(key) - ## Handler for zeroConf detection + ## Handler for zeroConf detection. + # Return True or False indicating if the process succeeded. def _onServiceChanged(self, zeroconf, service_type, name, state_change): if state_change == ServiceStateChange.Added: Logger.log("d", "Bonjour service added: %s" % name) @@ -272,7 +282,7 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin): # Request more data if info is not complete if not info.address: Logger.log("d", "Trying to get address of %s", name) - info = zeroconf.get_service_info(service_type, name) + info = zeroconf.get_service_info(service_type, name, 0) if info: type_of_device = info.properties.get(b"type", None) @@ -284,11 +294,50 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin): Logger.log("w", "The type of the found device is '%s', not 'printer'! Ignoring.." % type_of_device ) else: Logger.log("w", "Could not get information about %s" % name) + return False elif state_change == ServiceStateChange.Removed: Logger.log("d", "Bonjour service removed: %s" % name) self.removePrinterSignal.emit(str(name)) + return True + + ## Appends a service changed request so later the handling thread will pick it up and processes it. + def _appendServiceChangedRequest(self, zeroconf, service_type, name, state_change): + # append the request and set the event so the event handling thread can pick it up + item = (zeroconf, service_type, name, state_change) + self._service_changed_request_queue.put(item) + self._service_changed_request_event.set() + + def _handleOnServiceChangedRequests(self): + while True: + # wait for the event to be set + self._service_changed_request_event.wait(timeout = 5.0) + # stop if the application is shutting down + if Application.getInstance().isShuttingDown(): + return + + self._service_changed_request_event.clear() + + # handle all pending requests + reschedule_requests = [] # a list of requests that have failed so later they will get re-scheduled + while not self._service_changed_request_queue.empty(): + request = self._service_changed_request_queue.get() + zeroconf, service_type, name, state_change = request + try: + result = self._onServiceChanged(zeroconf, service_type, name, state_change) + if not result: + reschedule_requests.append(request) + except Exception: + Logger.logException("e", "Failed to get service info for [%s] [%s], the request will be rescheduled", + service_type, name) + reschedule_requests.append(request) + + # re-schedule the failed requests if any + if reschedule_requests: + for request in reschedule_requests: + self._service_changed_request_queue.put(request) + @pyqtSlot() def openControlPanel(self): Logger.log("d", "Opening print jobs web UI...") From cfcb47234ce41e3058a20dd08f4886666386de96 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 12 Oct 2017 17:10:04 +0200 Subject: [PATCH 027/218] Add cross infill to the change log Contributes to issue CURA-4391 and CURA-4095. --- plugins/ChangeLogPlugin/ChangeLog.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/ChangeLogPlugin/ChangeLog.txt b/plugins/ChangeLogPlugin/ChangeLog.txt index 6ee523d35a..25880a66e4 100755 --- a/plugins/ChangeLogPlugin/ChangeLog.txt +++ b/plugins/ChangeLogPlugin/ChangeLog.txt @@ -56,6 +56,9 @@ Gives the user control over where to place the seam - hide it in convex corners *Quarter cubic infill Similar to tetrahedral (octet) infill, but half of the lines are shifted half of the period up. This pattern sacrifices some rigidity of octet infill for greater toughness. +*Cross infill +A fractal pattern infill that requires fewer retractions than other infill types. This is useful for flexible materials as it causes less material elongation. The internal structure given by this infill also assists flexible models having more resistance, while retaining ‘soft’ properties in all directions. + *Layer start negative position Layer start X/Y values can be less than 0 when the machine centre is zero. From a7e1017aa20d3abd5ee9822736fb871f40d2800d Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 12 Oct 2017 19:14:22 +0200 Subject: [PATCH 028/218] Added some missing widths en heights GammaRay complained about some objects not having a size --- resources/qml/JobSpecs.qml | 1 + resources/qml/Toolbar.qml | 5 ++++- resources/qml/Topbar.qml | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index 5e892a34bc..308316d3e9 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -18,6 +18,7 @@ Item { UM.I18nCatalog { id: catalog; name:"cura"} height: childrenRect.height + width: childrenRect.width Connections { diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml index f32a5edc6f..77ffc7f2a9 100644 --- a/resources/qml/Toolbar.qml +++ b/resources/qml/Toolbar.qml @@ -30,7 +30,8 @@ Item id: repeat model: UM.ToolModel { } - + width: childrenRect.width + height: childrenRect.height Button { text: model.name @@ -72,6 +73,8 @@ Item Repeater { id: extruders + width: childrenRect.width + height: childrenRect.height property var _model: Cura.ExtrudersModel { id: extrudersModel } model: _model.items.length > 1 ? _model : 0 ExtruderButton { extruder: model } diff --git a/resources/qml/Topbar.qml b/resources/qml/Topbar.qml index 35f6aa7c3e..5dacfc72ea 100644 --- a/resources/qml/Topbar.qml +++ b/resources/qml/Topbar.qml @@ -279,7 +279,8 @@ Rectangle property var buttonTarget: Qt.point(viewModeButton.x + viewModeButton.width / 2, viewModeButton.y + viewModeButton.height / 2) - height: childrenRect.height; + height: childrenRect.height + width: childrenRect.width source: UM.ActiveView.valid ? UM.ActiveView.activeViewPanel : ""; } From 16bd4430e4fe547db63a9b982ce052ae53c3807d Mon Sep 17 00:00:00 2001 From: "A.Sasin" Date: Thu, 12 Oct 2017 21:23:17 +0200 Subject: [PATCH 029/218] Added a pyQtProperty to validate user settings (Might be wrong approach) CURA-4333 --- cura/CuraApplication.py | 6 +++--- cura/Settings/MachineManager.py | 27 ++++++++++++++++++++++++--- resources/qml/SidebarSimple.qml | 21 +++++---------------- 3 files changed, 32 insertions(+), 22 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index ff16ba437d..877c02cc4e 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -402,7 +402,7 @@ class CuraApplication(QtApplication): # ALWAYS ask whether to keep or discard the profile self.showDiscardOrKeepProfileChanges.emit() - sidebarSimpleDiscardOrKeepProfileChanges = pyqtSignal() + #sidebarSimpleDiscardOrKeepProfileChanges = pyqtSignal() @pyqtSlot(str) def discardOrKeepProfileChangesClosed(self, option): @@ -414,8 +414,8 @@ class CuraApplication(QtApplication): global_stack.getTop().clear() # event handler for SidebarSimple, which will update sliders view visibility (like:sliders..) - if Preferences.getInstance().getValue("cura/active_mode") == 0: - self.sidebarSimpleDiscardOrKeepProfileChanges.emit() + if str(Preferences.getInstance().getValue("cura/active_mode")) == '0': + self.getMachineManager().hasUserCustomSettings() @pyqtSlot(int) def messageBoxClosed(self, button): diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 624bc12487..e2bea66284 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -414,10 +414,13 @@ class MachineManager(QObject): return False ## Check whether user containers have adjusted settings or not + # The skipped settings are predefined, because they are used on SideBarSimple to escape them while validation # \param skip_keys \type{list} List of setting keys which will be not taken into account ("support_enable" , "infill_sparse_density"...) # \return \type{boole} Return true if user containers have any of adjusted settings - @pyqtSlot("QVariantList", result = bool) - def hasUserCustomSettings(self, skip_keys = None) -> bool: + def hasUserCustomSettings(self) -> bool: + + skip_keys = ["support_enable", "infill_sparse_density", "gradual_infill_steps", "adhesion_type", "support_extruder_nr"] + if skip_keys is None: skip_keys = [] @@ -447,7 +450,25 @@ class MachineManager(QObject): Logger.log("e", "While checking user custom settings occured error. skip_keys: %s", skip_keys ) return False - return len(user_setting_keys) > 0 + if len(user_setting_keys) > 0: + self.userSettingsUpdated = True + else: + self.userSettingsUpdated = False + + self.userCustomSettingsChanged.emit() + + + userSettingsUpdated = False + userCustomSettingsChanged = pyqtSignal() + + @pyqtSlot() + def checkWhetherUserContainersHaveSettings(self): + return self.hasUserCustomSettings() + + #Property to show wheter user settings are updated or not + @pyqtProperty(bool, notify = userCustomSettingsChanged) + def userCustomSettingsProperty(self): + return self.userSettingsUpdated @pyqtProperty(int, notify = activeStackValueChanged) def numUserSettings(self) -> int: diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index e5a21ba407..59bbc38fe6 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -20,13 +20,10 @@ Item property variant minimumPrintTime: PrintInformation.minimumPrintTime; property variant maximumPrintTime: PrintInformation.maximumPrintTime; property bool settingsEnabled: ExtruderManager.activeExtruderStackId || machineExtruderCount.properties.value == 1 - property bool hasUserSettings; - property var profileChangedCheckSkipKeys: ["support_enable" , - "infill_sparse_density", - "gradual_infill_steps", - "adhesion_type", - "support_extruder_nr"] + property bool hasUserSettings: Cura.MachineManager.userCustomSettingsProperty + + property var tickClickedViaProfileSlider: undefined Component.onCompleted: PrintInformation.enabled = true @@ -41,17 +38,9 @@ Item } } - Connections - { - target: CuraApplication - onSidebarSimpleDiscardOrKeepProfileChanges: - { - base.checkUserSettings(); - } - } - function checkUserSettings() { - hasUserSettings = Cura.MachineManager.hasUserCustomSettings(profileChangedCheckSkipKeys); + + Cura.MachineManager.checkWhetherUserContainersHaveSettings() if (!hasUserSettings && tickClickedViaProfileSlider != undefined) { Cura.MachineManager.setActiveQuality(Cura.ProfilesModel.getItem(tickClickedViaProfileSlider).id); From de260683cfa11cc3c39a78c9fa882b853a9a3448 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 13 Oct 2017 10:43:58 +0200 Subject: [PATCH 030/218] CURA-4195 - Add module name to the crash report --- cura/CrashHandler.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cura/CrashHandler.py b/cura/CrashHandler.py index f29efd1019..bd5349f719 100644 --- a/cura/CrashHandler.py +++ b/cura/CrashHandler.py @@ -32,7 +32,6 @@ else: from cura.CuraVersion import CuraDebugMode except ImportError: CuraDebugMode = False # [CodeStyle: Reflecting imported value] -CuraDebugMode = True ## TODO Remove when done. Just for debug purposes # List of exceptions that should be considered "fatal" and abort the program. # These are primarily some exception types that we simply cannot really recover from @@ -168,6 +167,7 @@ class CrashHandler: # Look for plugins. If it's not a plugin, the current cura version is set isPlugin = False module_version = self.cura_version + module_name = "Cura" if split_path.__contains__("plugins"): isPlugin = True # Look backwards until plugin.json is found @@ -181,16 +181,18 @@ class CrashHandler: try: metadata = json.loads(f.read()) module_version = metadata["version"] + module_name = metadata["name"] except json.decoder.JSONDecodeError: - # Not through new exceptions + # Not throw new exceptions Logger.logException("e", "Failed to parse plugin.json for plugin %s", name) except: - # Not through new exceptions + # Not throw new exceptions pass exception_dict = dict() exception_dict["traceback"] = {"summary": summary, "full_trace": trace} - exception_dict["location"] = {"path": filepath, "file": filename, "function": function, "code": code, "line": line, "version": module_version, "is_plugin": isPlugin} + exception_dict["location"] = {"path": filepath, "file": filename, "function": function, "code": code, "line": line, + "module_name": module_name, "version": module_version, "is_plugin": isPlugin} self.data["exception"] = exception_dict return group From 3ea9c3856c20d15d644233b704d5911823454ded Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 13 Oct 2017 13:06:48 +0200 Subject: [PATCH 031/218] CURA-4450 Updating UI after removing printer When removing a printer, the new one was activated but not signals were emitted so the UI didn't update correctly. Now the printer is added and signals are emitted. --- cura/Settings/MachineManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index e0e81fba1b..937d59fa07 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1096,7 +1096,7 @@ class MachineManager(QObject): machine_stacks = ContainerRegistry.getInstance().findContainerStacks(type = "machine") other_machine_stacks = [s for s in machine_stacks if s.getId() != machine_id] if other_machine_stacks: - Application.getInstance().setGlobalContainerStack(other_machine_stacks[0]) + self.setActiveMachine(other_machine_stacks[0].getId()) ExtruderManager.getInstance().removeMachineExtruders(machine_id) containers = ContainerRegistry.getInstance().findInstanceContainers(type = "user", machine = machine_id) From 73f6427a888ad94c93f94b2d385b58e115e01dfc Mon Sep 17 00:00:00 2001 From: Mark Date: Fri, 13 Oct 2017 16:21:23 +0200 Subject: [PATCH 032/218] Change mainwindow name to Ultimaker Cura --- resources/qml/Cura.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index ca32a6eaab..cb0211f29f 100755 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -16,7 +16,7 @@ UM.MainWindow { id: base //: Cura application window title - title: catalog.i18nc("@title:window","Cura"); + title: catalog.i18nc("@title:window","Ultimaker Cura"); viewportRect: Qt.rect(0, 0, (base.width - sidebar.width) / base.width, 1.0) property bool showPrintMonitor: false From 74c37dfc65baaf10c39c6879959be81c46872332 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 13 Oct 2017 16:32:01 +0200 Subject: [PATCH 033/218] CURA-4195 Add strings for I18N --- cura/CrashHandler.py | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/cura/CrashHandler.py b/cura/CrashHandler.py index bd5349f719..249d509674 100644 --- a/cura/CrashHandler.py +++ b/cura/CrashHandler.py @@ -1,7 +1,9 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + import sys import platform import traceback -import webbrowser import faulthandler import tempfile import os @@ -12,12 +14,10 @@ import ssl import urllib.request import urllib.error -from PyQt5.QtCore import QT_VERSION_STR, PYQT_VERSION_STR, QCoreApplication, Qt -from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLabel, QTextEdit, QGroupBox +from PyQt5.QtCore import QT_VERSION_STR, PYQT_VERSION_STR, QCoreApplication +from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLabel, QTextEdit, QGroupBox, QPushButton from UM.Logger import Logger -from UM.PluginError import InvalidMetaDataError -from UM.PluginRegistry import PluginRegistry from UM.View.GL.OpenGL import OpenGL from UM.i18n import i18nCatalog from UM.Platform import Platform @@ -90,7 +90,7 @@ class CrashHandler: def _messageWidget(self): label = QLabel() - label.setText(catalog.i18nc("@label", """

A fatal exception has occurred that we could not recover from!

+ label.setText(catalog.i18nc("@label crash message", """

A fatal exception has occurred that we could not recover from!

Please use the button below to post a bug report automatically to our servers

""")) @@ -98,7 +98,7 @@ class CrashHandler: def _informationWidget(self): group = QGroupBox() - group.setTitle("System information") + group.setTitle(catalog.i18nc("@title:groupbox", "System information")) layout = QVBoxLayout() label = QLabel() @@ -106,10 +106,13 @@ class CrashHandler: from UM.Application import Application self.cura_version = Application.getInstance().getVersion() except: - self.cura_version = "Unknown" + self.cura_version = catalog.i18nc("@label unknown version of Cura", "Unknown") - crash_info = "Version: {0}
Platform: {1}
Qt: {2}
PyQt: {3}
OpenGL: {4}" - crash_info = crash_info.format(self.cura_version, platform.platform(), QT_VERSION_STR, PYQT_VERSION_STR, self._getOpenGLInfo()) + crash_info = catalog.i18nc("@label Cura version", "Cura version: {version}
").format(version = self.cura_version) + crash_info += catalog.i18nc("@label Platform", "Platform: {platform}
").format(platform = platform.platform()) + crash_info += catalog.i18nc("@label Qt version", "Qt version: {qt}
").format(qt = QT_VERSION_STR) + crash_info += catalog.i18nc("@label PyQt version", "PyQt version: {pyqt}
").format(pyqt = PYQT_VERSION_STR) + crash_info += catalog.i18nc("@label OpenGL", "OpenGL: {opengl}
").format(opengl = self._getOpenGLInfo()) label.setText(crash_info) layout.addWidget(label) @@ -123,8 +126,11 @@ class CrashHandler: return group def _getOpenGLInfo(self): - info = "
  • OpenGL Version: {0}
  • OpenGL Vendor: {1}
  • OpenGL Renderer: {2}
" - info = info.format(OpenGL.getInstance().getOpenGLVersion(), OpenGL.getInstance().getGPUVendorName(), OpenGL.getInstance().getGPUType()) + info = "
    " + info += catalog.i18nc("@label OpenGL version", "
  • OpenGL Version: {version}
  • ").format(version = OpenGL.getInstance().getOpenGLVersion()) + info += catalog.i18nc("@label OpenGL vendor", "
  • OpenGL Vendor: {vendor}
  • ").format(vendor = OpenGL.getInstance().getGPUVendorName()) + info += catalog.i18nc("@label OpenGL renderer", "
  • OpenGL Renderer: {renderer}
  • ").format(renderer = OpenGL.getInstance().getGPUType()) + info += "
" self.data["opengl"] = {"version": OpenGL.getInstance().getOpenGLVersion(), "vendor": OpenGL.getInstance().getGPUVendorName(), "type": OpenGL.getInstance().getGPUType()} @@ -132,7 +138,7 @@ class CrashHandler: def _exceptionInfoWidget(self): group = QGroupBox() - group.setTitle("Exception traceback") + group.setTitle(catalog.i18nc("@title:groupbox", "Exception traceback")) layout = QVBoxLayout() text_area = QTextEdit() @@ -199,7 +205,7 @@ class CrashHandler: def _logInfoWidget(self): group = QGroupBox() - group.setTitle("Logs") + group.setTitle(catalog.i18nc("@title:groupbox", "Logs")) layout = QVBoxLayout() text_area = QTextEdit() @@ -223,7 +229,7 @@ class CrashHandler: def _userDescriptionWidget(self): group = QGroupBox() - group.setTitle("User description") + group.setTitle(catalog.i18nc("@title:groupbox", "User description")) layout = QVBoxLayout() # When sending the report, the user comments will be collected @@ -268,8 +274,8 @@ class CrashHandler: except Exception: # We don't want any exception to cause problems Logger.logException("e", "An exception occurred while trying to send crash report") - sys.exit(1) + os._exit(1) def show(self): self.dialog.exec_() - sys.exit(1) \ No newline at end of file + os._exit(1) \ No newline at end of file From 7f5aed7ead916b95d4585ae35a7ee1c4f12b6005 Mon Sep 17 00:00:00 2001 From: "A.Sasin" Date: Fri, 13 Oct 2017 16:34:49 +0200 Subject: [PATCH 034/218] User pyqtProperty instead of puqtSlot CURA-4333 --- cura/CuraApplication.py | 4 - cura/Settings/MachineManager.py | 67 ++++++----------- resources/qml/SidebarSimple.qml | 128 +++++++------------------------- 3 files changed, 50 insertions(+), 149 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 877c02cc4e..c1ef04bb6f 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -413,10 +413,6 @@ class CuraApplication(QtApplication): global_stack.getTop().clear() - # event handler for SidebarSimple, which will update sliders view visibility (like:sliders..) - if str(Preferences.getInstance().getValue("cura/active_mode")) == '0': - self.getMachineManager().hasUserCustomSettings() - @pyqtSlot(int) def messageBoxClosed(self, button): if self._message_box_callback: diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index e2bea66284..13823b6a9a 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -413,62 +413,41 @@ class MachineManager(QObject): return False - ## Check whether user containers have adjusted settings or not - # The skipped settings are predefined, because they are used on SideBarSimple to escape them while validation - # \param skip_keys \type{list} List of setting keys which will be not taken into account ("support_enable" , "infill_sparse_density"...) - # \return \type{boole} Return true if user containers have any of adjusted settings - def hasUserCustomSettings(self) -> bool: - skip_keys = ["support_enable", "infill_sparse_density", "gradual_infill_steps", "adhesion_type", "support_extruder_nr"] - - if skip_keys is None: - skip_keys = [] + def getAllActiveUserChanges(self, skip_keys = {}) -> bool: user_setting_keys = [] - try: - if not self._global_container_stack: - return False - for container in self._global_container_stack.getContainers(): + if not self._global_container_stack: + return False + + allContainers = self._global_container_stack.getContainers() + + for container in allContainers: + meta = container.getMetaData() + if meta and meta["type"] and meta["type"] == "user": + user_setting_keys.extend(container.getAllKeys()) + + stacks = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())) + for stack in stacks: + + for container in stack.getContainers(): meta = container.getMetaData() if meta and meta["type"] and meta["type"] == "user": user_setting_keys.extend(container.getAllKeys()) - stacks = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())) - for stack in stacks: + for skip_key in skip_keys: + if skip_key in user_setting_keys: + user_setting_keys.remove(skip_key) - for container in stack.getContainers(): - meta = container.getMetaData() - if meta and meta["type"] and meta["type"] == "user": - user_setting_keys.extend(container.getAllKeys()) - - for skip_key in skip_keys: - if skip_key in user_setting_keys: - user_setting_keys.remove(skip_key) - - except: - Logger.log("e", "While checking user custom settings occured error. skip_keys: %s", skip_keys ) - return False - - if len(user_setting_keys) > 0: - self.userSettingsUpdated = True - else: - self.userSettingsUpdated = False - - self.userCustomSettingsChanged.emit() + return len(user_setting_keys) > 0 - userSettingsUpdated = False - userCustomSettingsChanged = pyqtSignal() + ignore_list = ["support_enable", "infill_sparse_density", "gradual_infill_steps", "adhesion_type", "support_extruder_nr"] - @pyqtSlot() - def checkWhetherUserContainersHaveSettings(self): - return self.hasUserCustomSettings() - - #Property to show wheter user settings are updated or not - @pyqtProperty(bool, notify = userCustomSettingsChanged) - def userCustomSettingsProperty(self): - return self.userSettingsUpdated + @pyqtProperty(bool, notify = activeStackValueChanged) + def allActiveUserSettings(self): + return self.getAllActiveUserChanges(skip_keys = self.ignore_list) @pyqtProperty(int, notify = activeStackValueChanged) def numUserSettings(self) -> int: diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 59bbc38fe6..73e722c068 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -20,34 +20,12 @@ Item property variant minimumPrintTime: PrintInformation.minimumPrintTime; property variant maximumPrintTime: PrintInformation.maximumPrintTime; property bool settingsEnabled: ExtruderManager.activeExtruderStackId || machineExtruderCount.properties.value == 1 - - property bool hasUserSettings: Cura.MachineManager.userCustomSettingsProperty - - - property var tickClickedViaProfileSlider: undefined + property bool hasUserSettings: Cura.MachineManager.allActiveUserSettings Component.onCompleted: PrintInformation.enabled = true Component.onDestruction: PrintInformation.enabled = false UM.I18nCatalog { id: catalog; name: "cura" } - onVisibleChanged: - { - if (visible) - { - base.checkUserSettings() - } - } - - function checkUserSettings() { - - Cura.MachineManager.checkWhetherUserContainersHaveSettings() - if (!hasUserSettings && tickClickedViaProfileSlider != undefined) - { - Cura.MachineManager.setActiveQuality(Cura.ProfilesModel.getItem(tickClickedViaProfileSlider).id); - } - tickClickedViaProfileSlider = undefined; - } - ScrollView { visible: Cura.MachineManager.activeMachineName != "" // If no printers added then the view is invisible @@ -198,7 +176,7 @@ Item { anchors.verticalCenter: parent.verticalCenter anchors.top: parent.top - anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height / 2) + anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height / 2) color: (Cura.MachineManager.activeMachine != null && Cura.ProfilesModel.getItem(index).available) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") text: { @@ -217,13 +195,13 @@ Item // Make sure the text aligns correctly with each tick if (qualityModel.totalTicks == 0) { // If there is only one tick, align it centrally - return Math.floor(((base.width * 0.55) - width) / 2) + return parseInt(((base.width * 0.55) - width) / 2) } else if (index == 0) { return (base.width * 0.55 / qualityModel.totalTicks) * index } else if (index == qualityModel.totalTicks) { return (base.width * 0.55 / qualityModel.totalTicks) * index - width } else { - return Math.floor((base.width * 0.55 / qualityModel.totalTicks) * index - (width / 2)) + return parseInt((base.width * 0.55 / qualityModel.totalTicks) * index - (width / 2)) } } } @@ -285,7 +263,7 @@ Item anchors.bottom: speedSlider.bottom enabled: qualityModel.availableTotalTicks > 0 visible: qualityModel.totalTicks > 0 - updateValueWhileDragging: false + updateValueWhileDragging : false minimumValue: qualityModel.qualitySliderAvailableMin >= 0 ? qualityModel.qualitySliderAvailableMin : 0 maximumValue: qualityModel.qualitySliderAvailableMax >= 0 ? qualityModel.qualitySliderAvailableMax : 0 @@ -332,26 +310,6 @@ Item } } } - - - //If any of settings were changed in custom mode then the Rectangle will - //overlap quality slider area. It is used to catch mouse click - MouseArea { - anchors.fill: qualitySlider - - visible: hasUserSettings - enabled: hasUserSettings - - onClicked: { - const offset = qualityModel.qualitySliderStepWidth / 2; - const mousePosition = mouseX + offset; - - // save where it was clicked - base.tickClickedViaProfileSlider = Math.floor(mousePosition / qualityModel.qualitySliderStepWidth); - - discardOrKeepProfileChangesDialog.show(); - } - } } Label @@ -360,13 +318,10 @@ Item anchors.top: speedSlider.bottom anchors.left: parent.left - anchors.right: speedSlider.left - anchors.rightMargin: UM.Theme.getSize("default_margin").width text: catalog.i18nc("@label", "Print Speed") font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") - elide: Text.ElideRight } Label @@ -432,7 +387,7 @@ Item anchors.topMargin: UM.Theme.getSize("sidebar_margin").height * 2 anchors.left: parent.left - width: Math.floor(UM.Theme.getSize("sidebar").width * .45 - UM.Theme.getSize("sidebar_margin").width) + width: UM.Theme.getSize("sidebar").width * .45 - UM.Theme.getSize("sidebar_margin").width Label { @@ -442,7 +397,7 @@ Item color: UM.Theme.getColor("text") anchors.top: parent.top - anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height * 1.7) + anchors.topMargin: UM.Theme.getSize("sidebar_margin").height * 1.7 anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width } @@ -453,7 +408,7 @@ Item id: infillCellRight height: infillSlider.height + UM.Theme.getSize("sidebar_margin").height + enableGradualInfillCheckBox.visible * (enableGradualInfillCheckBox.height + UM.Theme.getSize("sidebar_margin").height) - width: Math.floor(UM.Theme.getSize("sidebar").width * .55) + width: UM.Theme.getSize("sidebar").width * .55 anchors.left: infillCellLeft.right anchors.top: infillCellLeft.top @@ -464,10 +419,10 @@ Item //anchors.top: parent.top anchors.left: infillSlider.left - anchors.leftMargin: Math.floor((infillSlider.value / infillSlider.stepSize) * (infillSlider.width / (infillSlider.maximumValue / infillSlider.stepSize)) - 10 * screenScaleFactor) + anchors.leftMargin: (infillSlider.value / infillSlider.stepSize) * (infillSlider.width / (infillSlider.maximumValue / infillSlider.stepSize)) - 10 * screenScaleFactor anchors.right: parent.right - text: Math.floor(infillDensity.properties.value) + "%" + text: parseInt(infillDensity.properties.value) + "%" horizontalAlignment: Text.AlignLeft color: infillSlider.enabled ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable") @@ -477,7 +432,7 @@ Item Binding { target: infillSlider property: "value" - value: Math.floor(infillDensity.properties.value) + value: parseInt(infillDensity.properties.value) } Slider @@ -490,7 +445,7 @@ Item anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width height: UM.Theme.getSize("sidebar_margin").height - width: Math.floor(infillCellRight.width - UM.Theme.getSize("sidebar_margin").width - style.handleWidth) + width: infillCellRight.width - UM.Theme.getSize("sidebar_margin").width - style.handleWidth minimumValue: 0 maximumValue: 100 @@ -498,15 +453,15 @@ Item tickmarksEnabled: true // disable slider when gradual support is enabled - enabled: Math.floor(infillSteps.properties.value) == 0 + enabled: parseInt(infillSteps.properties.value) == 0 // set initial value from stack - value: Math.floor(infillDensity.properties.value) + value: parseInt(infillDensity.properties.value) onValueChanged: { // Don't round the value if it's already the same - if (Math.floor(infillDensity.properties.value) == infillSlider.value) { + if (parseInt(infillDensity.properties.value) == infillSlider.value) { return } @@ -575,7 +530,7 @@ Item anchors.right: parent.right anchors.top: parent.top - anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height / 2) + anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height / 2) // we loop over all density icons and only show the one that has the current density and steps Repeater @@ -586,8 +541,8 @@ Item property int activeIndex: { for (var i = 0; i < infillModel.count; i++) { - var density = Math.floor(infillDensity.properties.value) - var steps = Math.floor(infillSteps.properties.value) + var density = parseInt(infillDensity.properties.value) + var steps = parseInt(infillSteps.properties.value) var infillModelItem = infillModel.get(i) if (density >= infillModelItem.percentageMin @@ -626,13 +581,13 @@ Item property alias _hovered: enableGradualInfillMouseArea.containsMouse anchors.top: infillSlider.bottom - anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height / 2) // closer to slider since it belongs to the same category + anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height / 2) // closer to slider since it belongs to the same category anchors.left: infillCellRight.left style: UM.Theme.styles.checkbox enabled: base.settingsEnabled visible: infillSteps.properties.enabled == "True" - checked: Math.floor(infillSteps.properties.value) > 0 + checked: parseInt(infillSteps.properties.value) > 0 MouseArea { id: enableGradualInfillMouseArea @@ -641,18 +596,18 @@ Item hoverEnabled: true enabled: true - property var previousInfillDensity: Math.floor(infillDensity.properties.value) + property var previousInfillDensity: parseInt(infillDensity.properties.value) onClicked: { // Set to 90% only when enabling gradual infill - if (Math.floor(infillSteps.properties.value) == 0) { - previousInfillDensity = Math.floor(infillDensity.properties.value) + if (parseInt(infillSteps.properties.value) == 0) { + previousInfillDensity = parseInt(infillDensity.properties.value) infillDensity.setPropertyValue("value", String(90)) } else { infillDensity.setPropertyValue("value", String(previousInfillDensity)) } - infillSteps.setPropertyValue("value", (Math.floor(infillSteps.properties.value) == 0) ? 5 : 0) + infillSteps.setPropertyValue("value", (parseInt(infillSteps.properties.value) == 0) ? 5 : 0) } onEntered: { @@ -668,7 +623,7 @@ Item Label { id: gradualInfillLabel anchors.left: enableGradualInfillCheckBox.right - anchors.leftMargin: Math.floor(UM.Theme.getSize("sidebar_margin").width / 2) + anchors.leftMargin: parseInt(UM.Theme.getSize("sidebar_margin").width / 2) text: catalog.i18nc("@label", "Enable gradual") font: UM.Theme.getFont("default") color: UM.Theme.getColor("text") @@ -729,7 +684,7 @@ Item visible: enableSupportCheckBox.visible anchors.top: infillCellRight.bottom - anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height * 1.5) + anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height * 1.5) anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width anchors.verticalCenter: enableSupportCheckBox.verticalCenter @@ -938,7 +893,7 @@ Item { id: tipsCell anchors.top: adhesionCheckBox.visible ? adhesionCheckBox.bottom : (enableSupportCheckBox.visible ? supportExtruderCombobox.bottom : infillCellRight.bottom) - anchors.topMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height * 2) + anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height * 2) anchors.left: parent.left width: parent.width height: tipsText.contentHeight * tipsText.lineCount @@ -969,35 +924,6 @@ Item storeIndex: 0 } - Binding - { - target: infillDensity - property: "containerStackId" - value: { - - // not settable per extruder or there only is global, so we must pick global - if (machineExtruderCount.properties.value == 1) { - return Cura.MachineManager.activeStackId - } - - // return the ID of the extruder when the infill is limited to an extruder - if (infillInheritStackProvider.properties.limit_to_extruder != null && infillInheritStackProvider.properties.limit_to_extruder >= 0) { - return ExtruderManager.extruderIds[String(infillInheritStackProvider.properties.limit_to_extruder)] - } - - // default to the global stack - return Cura.MachineManager.activeStackId - } - } - - UM.SettingPropertyProvider - { - id: infillInheritStackProvider - containerStackId: Cura.MachineManager.activeMachineId - key: "infill_sparse_density" - watchedProperties: [ "limit_to_extruder" ] - } - UM.SettingPropertyProvider { id: infillDensity From 61cdfcd3e83384bc3123825d61ba2529febb5b9a Mon Sep 17 00:00:00 2001 From: "A.Sasin" Date: Fri, 13 Oct 2017 16:59:29 +0200 Subject: [PATCH 035/218] Added coments and simplified "user" metadata check CURA-4333 --- cura/Settings/MachineManager.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 13823b6a9a..63ebcc8967 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -413,8 +413,10 @@ class MachineManager(QObject): return False - - def getAllActiveUserChanges(self, skip_keys = {}) -> bool: + ## Check whether user containers have adjusted settings or not + # \param skip_keys \type{list} List of setting keys which will be not taken into account ("support_enable" , "infill_sparse_density"...) + # \return \type{boole} Return true if user containers have any of adjusted settings + def hasUserCustomSettings(self, skip_keys = {}) -> bool: user_setting_keys = [] @@ -424,16 +426,16 @@ class MachineManager(QObject): allContainers = self._global_container_stack.getContainers() for container in allContainers: - meta = container.getMetaData() - if meta and meta["type"] and meta["type"] == "user": + meta_type = container.getMetaDataEntry("type", None) + if meta_type == "user": user_setting_keys.extend(container.getAllKeys()) stacks = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())) for stack in stacks: for container in stack.getContainers(): - meta = container.getMetaData() - if meta and meta["type"] and meta["type"] == "user": + meta_type = container.getMetaDataEntry("type", None) + if meta_type == "user": user_setting_keys.extend(container.getAllKeys()) for skip_key in skip_keys: @@ -442,12 +444,13 @@ class MachineManager(QObject): return len(user_setting_keys) > 0 - + # These setting keys are used in SettingSimple.qml. They used to validate whether show notification(reset) icon or not + # If a changed setting is in the ignore list then this setting should be skipped and the notification not shown ignore_list = ["support_enable", "infill_sparse_density", "gradual_infill_steps", "adhesion_type", "support_extruder_nr"] @pyqtProperty(bool, notify = activeStackValueChanged) def allActiveUserSettings(self): - return self.getAllActiveUserChanges(skip_keys = self.ignore_list) + return self.hasUserCustomSettings(skip_keys = self.ignore_list) @pyqtProperty(int, notify = activeStackValueChanged) def numUserSettings(self) -> int: From 29729d2a23a19d2a840b4eb5900e56e8980714a1 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sat, 14 Oct 2017 11:42:58 +0200 Subject: [PATCH 036/218] Change renderType for TextInput elements Unlike Label elements, which are defined to use Text.NativeRendering, TextInput uses Qt text rendering by default. This can lead to differences in font rendering between input fields and other texts. --- resources/qml/PrintMonitor.qml | 1 + resources/qml/Settings/SettingTextField.qml | 1 + 2 files changed, 2 insertions(+) diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 4bf4b44aed..a2626e53de 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -442,6 +442,7 @@ Column anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter + renderType: Text.NativeRendering Component.onCompleted: { diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index ffc169af1a..7c2317af63 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -102,6 +102,7 @@ SettingItem right: parent.right verticalCenter: parent.verticalCenter } + renderType: Text.NativeRendering Keys.onTabPressed: { From f9ca353f6a77accf57148cf64234ed19572a83d5 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sat, 14 Oct 2017 11:49:27 +0200 Subject: [PATCH 037/218] Fix one more fractional pixel offset affecting text placement --- resources/qml/Sidebar.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 475e36d2dc..338eabffa2 100755 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -152,7 +152,7 @@ Rectangle Button { height: settingsModeSelection.height anchors.left: parent.left - anchors.leftMargin: model.index * (settingsModeSelection.width / 2) + anchors.leftMargin: model.index * Math.floor(settingsModeSelection.width / 2) anchors.verticalCenter: parent.verticalCenter width: Math.floor(0.5 * parent.width) text: model.text From ad1c0046d92a17c4a9a2ac91d039a285f740eb17 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sun, 15 Oct 2017 11:54:49 +0200 Subject: [PATCH 038/218] Fix crash when exiting Machine Settings fixes #2609 --- plugins/MachineSettingsAction/MachineSettingsAction.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/MachineSettingsAction/MachineSettingsAction.py b/plugins/MachineSettingsAction/MachineSettingsAction.py index 80258ef548..4343c2c780 100755 --- a/plugins/MachineSettingsAction/MachineSettingsAction.py +++ b/plugins/MachineSettingsAction/MachineSettingsAction.py @@ -79,7 +79,7 @@ class MachineSettingsAction(MachineAction): @pyqtSlot() def onFinishAction(self): # Restore autoslicing when the machineaction is dismissed - if self._backend.determineAutoSlicing(): + if self._backend and self._backend.determineAutoSlicing(): self._backend.tickle() def _onActiveExtruderStackChanged(self): From 7e0014eadd1896b0f9dcf5f653bfeae71d4e633c Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 16 Oct 2017 10:26:07 +0200 Subject: [PATCH 039/218] Create machine name-to-id map at runtime instead of using a hard-coded map CURA-4223 --- .../XmlMaterialProfile/XmlMaterialProfile.py | 29 ++++++++----------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 41953d9250..c67c7eae6c 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -220,10 +220,15 @@ class XmlMaterialProfile(InstanceContainer): machine_container_map[definition_id] = container + # Map machine human-readable names to IDs + product_id_map = {} + for container in registry.findDefinitionContainers(type = "machine"): + product_id_map[container.getName()] = container.getId() + for definition_id, container in machine_container_map.items(): definition = container.getDefinition() try: - product = UM.Dictionary.findKey(self.__product_id_map, definition_id) + product = UM.Dictionary.findKey(product_id_map, definition_id) except ValueError: # An unknown product id; export it anyway product = definition_id @@ -512,6 +517,11 @@ class XmlMaterialProfile(InstanceContainer): self.setMetaData(meta_data) self._dirty = False + # Map machine human-readable names to IDs + product_id_map = {} + for container in ContainerRegistry.getInstance().findDefinitionContainers(type = "machine"): + product_id_map[container.getName()] = container.getId() + machines = data.iterfind("./um:settings/um:machine", self.__namespaces) for machine in machines: machine_compatibility = common_compatibility @@ -532,7 +542,7 @@ class XmlMaterialProfile(InstanceContainer): identifiers = machine.iterfind("./um:machine_identifier", self.__namespaces) for identifier in identifiers: - machine_id = self.__product_id_map.get(identifier.get("product"), None) + machine_id = product_id_map.get(identifier.get("product"), None) if machine_id is None: # Lets try again with some naive heuristics. machine_id = identifier.get("product").replace(" ", "").lower() @@ -678,21 +688,6 @@ class XmlMaterialProfile(InstanceContainer): "GUID": "material_guid" } - # Map XML file product names to internal ids - # TODO: Move this to definition's metadata - __product_id_map = { - "Ultimaker 3": "ultimaker3", - "Ultimaker 3 Extended": "ultimaker3_extended", - "Ultimaker 2": "ultimaker2", - "Ultimaker 2+": "ultimaker2_plus", - "Ultimaker 2 Go": "ultimaker2_go", - "Ultimaker 2 Extended": "ultimaker2_extended", - "Ultimaker 2 Extended+": "ultimaker2_extended_plus", - "Ultimaker Original": "ultimaker_original", - "Ultimaker Original+": "ultimaker_original_plus", - "IMADE3D JellyBOX": "imade3d_jellybox" - } - # Map of recognised namespaces with a proper prefix. __namespaces = { "um": "http://www.ultimaker.com/material" From b55efdd70e2e00961e89c6ee4e64df273eef19f1 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 16 Oct 2017 10:36:14 +0200 Subject: [PATCH 040/218] Remove timeout = 0 for get_service_info CURA-4252 --- plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py index 18e5fcf883..f15f35184c 100644 --- a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py +++ b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevicePlugin.py @@ -282,7 +282,7 @@ class NetworkPrinterOutputDevicePlugin(QObject, OutputDevicePlugin): # Request more data if info is not complete if not info.address: Logger.log("d", "Trying to get address of %s", name) - info = zeroconf.get_service_info(service_type, name, 0) + info = zeroconf.get_service_info(service_type, name) if info: type_of_device = info.properties.get(b"type", None) From 464cf139a88f4eb176c1d95f5b6ec48f88acd133 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sat, 14 Oct 2017 11:42:58 +0200 Subject: [PATCH 041/218] Change renderType for TextInput elements Unlike Label elements, which are defined to use Text.NativeRendering, TextInput uses Qt text rendering by default. This can lead to differences in font rendering between input fields and other texts. --- resources/qml/PrintMonitor.qml | 1 + resources/qml/Settings/SettingTextField.qml | 1 + 2 files changed, 2 insertions(+) diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 4bf4b44aed..a2626e53de 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -442,6 +442,7 @@ Column anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter + renderType: Text.NativeRendering Component.onCompleted: { diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index ffc169af1a..7c2317af63 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -102,6 +102,7 @@ SettingItem right: parent.right verticalCenter: parent.verticalCenter } + renderType: Text.NativeRendering Keys.onTabPressed: { From d4e83ceba8ff7a0700ad6b8277c35b0d0941949c Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sat, 14 Oct 2017 11:49:27 +0200 Subject: [PATCH 042/218] Fix one more fractional pixel offset affecting text placement --- resources/qml/Sidebar.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 475e36d2dc..338eabffa2 100755 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -152,7 +152,7 @@ Rectangle Button { height: settingsModeSelection.height anchors.left: parent.left - anchors.leftMargin: model.index * (settingsModeSelection.width / 2) + anchors.leftMargin: model.index * Math.floor(settingsModeSelection.width / 2) anchors.verticalCenter: parent.verticalCenter width: Math.floor(0.5 * parent.width) text: model.text From 639f22a9868423d29bb471aa769c137c960ee702 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 16 Oct 2017 10:32:52 +0200 Subject: [PATCH 043/218] Fix broken string freeze with plugin browser menu item This is getting annoying. Contributes to issue CURA-4341. --- resources/i18n/cura.pot | 5 +++++ resources/i18n/de_DE/cura.po | 5 +++++ resources/i18n/es_ES/cura.po | 5 +++++ resources/i18n/fi_FI/cura.po | 5 +++++ resources/i18n/fr_FR/cura.po | 5 +++++ resources/i18n/it_IT/cura.po | 5 +++++ resources/i18n/nl_NL/cura.po | 5 +++++ resources/i18n/pl_PL/cura.po | 5 +++++ resources/i18n/pt_BR/cura.po | 5 +++++ resources/i18n/ru_RU/cura.po | 5 +++++ resources/i18n/tr_TR/cura.po | 5 +++++ resources/i18n/zh_CN/cura.po | 5 +++++ 12 files changed, 60 insertions(+) diff --git a/resources/i18n/cura.pot b/resources/i18n/cura.pot index 9135cfc381..520bdc10a9 100644 --- a/resources/i18n/cura.pot +++ b/resources/i18n/cura.pot @@ -63,6 +63,11 @@ msgctxt "@info:status" msgid "Print finished" msgstr "" +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/de_DE/cura.po b/resources/i18n/de_DE/cura.po index a18361802b..b5ff336387 100644 --- a/resources/i18n/de_DE/cura.po +++ b/resources/i18n/de_DE/cura.po @@ -61,6 +61,11 @@ msgctxt "@info:status" msgid "Print finished" msgstr "Druck vollendet" +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "&Plugins" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/es_ES/cura.po b/resources/i18n/es_ES/cura.po index fe88603c5e..53472d079f 100644 --- a/resources/i18n/es_ES/cura.po +++ b/resources/i18n/es_ES/cura.po @@ -61,6 +61,11 @@ msgctxt "@info:status" msgid "Print finished" msgstr "Impresión terminada" +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "&Complementos" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/fi_FI/cura.po b/resources/i18n/fi_FI/cura.po index 6c4dc4fdc8..269e904125 100644 --- a/resources/i18n/fi_FI/cura.po +++ b/resources/i18n/fi_FI/cura.po @@ -61,6 +61,11 @@ msgctxt "@info:status" msgid "Print finished" msgstr "Tulosta valmis" +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "&Lisäosat" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/fr_FR/cura.po b/resources/i18n/fr_FR/cura.po index 5724cb3192..bbb5cb0b0f 100644 --- a/resources/i18n/fr_FR/cura.po +++ b/resources/i18n/fr_FR/cura.po @@ -61,6 +61,11 @@ msgctxt "@info:status" msgid "Print finished" msgstr "Impression terminée" +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "&Plug-ins" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/it_IT/cura.po b/resources/i18n/it_IT/cura.po index ec85f0c2c8..6657437bef 100644 --- a/resources/i18n/it_IT/cura.po +++ b/resources/i18n/it_IT/cura.po @@ -61,6 +61,11 @@ msgctxt "@info:status" msgid "Print finished" msgstr "Stampa finita" +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "&Plugin" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/nl_NL/cura.po b/resources/i18n/nl_NL/cura.po index c43d557c71..bd6ddaf356 100644 --- a/resources/i18n/nl_NL/cura.po +++ b/resources/i18n/nl_NL/cura.po @@ -61,6 +61,11 @@ msgctxt "@info:status" msgid "Print finished" msgstr "Print klaar" +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "&Plugins" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/pl_PL/cura.po b/resources/i18n/pl_PL/cura.po index 9021cbcdde..c455ae48ca 100644 --- a/resources/i18n/pl_PL/cura.po +++ b/resources/i18n/pl_PL/cura.po @@ -63,6 +63,11 @@ msgctxt "@info:status" msgid "Print finished" msgstr "Drukowanie zakończone" +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "W&tyczki" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/pt_BR/cura.po b/resources/i18n/pt_BR/cura.po index 868fe5e552..cb6dc4ef50 100644 --- a/resources/i18n/pt_BR/cura.po +++ b/resources/i18n/pt_BR/cura.po @@ -62,6 +62,11 @@ msgctxt "@info:status" msgid "Print finished" msgstr "Impressão Concluída" +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "&Complementos" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/ru_RU/cura.po b/resources/i18n/ru_RU/cura.po index 7fe9e17073..4129648cf6 100755 --- a/resources/i18n/ru_RU/cura.po +++ b/resources/i18n/ru_RU/cura.po @@ -63,6 +63,11 @@ msgctxt "@info:status" msgid "Print finished" msgstr "Печать завершена" +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "Плагины" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/tr_TR/cura.po b/resources/i18n/tr_TR/cura.po index dca9e1ce86..db339db866 100644 --- a/resources/i18n/tr_TR/cura.po +++ b/resources/i18n/tr_TR/cura.po @@ -61,6 +61,11 @@ msgctxt "@info:status" msgid "Print finished" msgstr "Baskı tamamlandı" +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "&Eklentiler" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/zh_CN/cura.po b/resources/i18n/zh_CN/cura.po index 98357b94dc..91f1297dbe 100644 --- a/resources/i18n/zh_CN/cura.po +++ b/resources/i18n/zh_CN/cura.po @@ -63,6 +63,11 @@ msgctxt "@info:status" msgid "Print finished" msgstr "打印完成" +#: Manually added for resources/Cura/Cura.qml +msgctxt "@title:menu menubar:toplevel" +msgid "P&lugins" +msgstr "插件" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" From 5a221a31d9d729aaf43aeefc3195a0c1c370f954 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 16 Oct 2017 10:42:02 +0200 Subject: [PATCH 044/218] Fix another broken string freeze with plugin browser menu item This is getting annoying. Contributes to issue CURA-4341. --- resources/i18n/cura.pot | 5 +++++ resources/i18n/de_DE/cura.po | 5 +++++ resources/i18n/es_ES/cura.po | 5 +++++ resources/i18n/fi_FI/cura.po | 5 +++++ resources/i18n/fr_FR/cura.po | 5 +++++ resources/i18n/it_IT/cura.po | 5 +++++ resources/i18n/nl_NL/cura.po | 5 +++++ resources/i18n/pl_PL/cura.po | 5 +++++ resources/i18n/pt_BR/cura.po | 5 +++++ resources/i18n/ru_RU/cura.po | 5 +++++ resources/i18n/tr_TR/cura.po | 5 +++++ resources/i18n/zh_CN/cura.po | 5 +++++ 12 files changed, 60 insertions(+) diff --git a/resources/i18n/cura.pot b/resources/i18n/cura.pot index 520bdc10a9..ed299dd5f7 100644 --- a/resources/i18n/cura.pot +++ b/resources/i18n/cura.pot @@ -68,6 +68,11 @@ msgctxt "@title:menu menubar:toplevel" msgid "P&lugins" msgstr "" +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/de_DE/cura.po b/resources/i18n/de_DE/cura.po index b5ff336387..6431ae8a46 100644 --- a/resources/i18n/de_DE/cura.po +++ b/resources/i18n/de_DE/cura.po @@ -66,6 +66,11 @@ msgctxt "@title:menu menubar:toplevel" msgid "P&lugins" msgstr "&Plugins" +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Plugins durchsuchen..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/es_ES/cura.po b/resources/i18n/es_ES/cura.po index 53472d079f..0293020746 100644 --- a/resources/i18n/es_ES/cura.po +++ b/resources/i18n/es_ES/cura.po @@ -66,6 +66,11 @@ msgctxt "@title:menu menubar:toplevel" msgid "P&lugins" msgstr "&Complementos" +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Examinar complementos..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/fi_FI/cura.po b/resources/i18n/fi_FI/cura.po index 269e904125..d42db18103 100644 --- a/resources/i18n/fi_FI/cura.po +++ b/resources/i18n/fi_FI/cura.po @@ -66,6 +66,11 @@ msgctxt "@title:menu menubar:toplevel" msgid "P&lugins" msgstr "&Lisäosat" +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Selaa lisäosia..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/fr_FR/cura.po b/resources/i18n/fr_FR/cura.po index bbb5cb0b0f..8ceec834ce 100644 --- a/resources/i18n/fr_FR/cura.po +++ b/resources/i18n/fr_FR/cura.po @@ -66,6 +66,11 @@ msgctxt "@title:menu menubar:toplevel" msgid "P&lugins" msgstr "&Plug-ins" +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Parcourir les plug-ins..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/it_IT/cura.po b/resources/i18n/it_IT/cura.po index 6657437bef..80ddac85b3 100644 --- a/resources/i18n/it_IT/cura.po +++ b/resources/i18n/it_IT/cura.po @@ -66,6 +66,11 @@ msgctxt "@title:menu menubar:toplevel" msgid "P&lugins" msgstr "&Plugin" +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Sfoglia plugin..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/nl_NL/cura.po b/resources/i18n/nl_NL/cura.po index bd6ddaf356..4b4e17175b 100644 --- a/resources/i18n/nl_NL/cura.po +++ b/resources/i18n/nl_NL/cura.po @@ -66,6 +66,11 @@ msgctxt "@title:menu menubar:toplevel" msgid "P&lugins" msgstr "&Plugins" +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Door invoegtoepassingen bladeren..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/pl_PL/cura.po b/resources/i18n/pl_PL/cura.po index c455ae48ca..82cf15b631 100644 --- a/resources/i18n/pl_PL/cura.po +++ b/resources/i18n/pl_PL/cura.po @@ -68,6 +68,11 @@ msgctxt "@title:menu menubar:toplevel" msgid "P&lugins" msgstr "W&tyczki" +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Przeglądaj wtyczki..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/pt_BR/cura.po b/resources/i18n/pt_BR/cura.po index cb6dc4ef50..f7ce739731 100644 --- a/resources/i18n/pt_BR/cura.po +++ b/resources/i18n/pt_BR/cura.po @@ -67,6 +67,11 @@ msgctxt "@title:menu menubar:toplevel" msgid "P&lugins" msgstr "&Complementos" +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Navegar complementos..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/ru_RU/cura.po b/resources/i18n/ru_RU/cura.po index 4129648cf6..108534f5b5 100755 --- a/resources/i18n/ru_RU/cura.po +++ b/resources/i18n/ru_RU/cura.po @@ -68,6 +68,11 @@ msgctxt "@title:menu menubar:toplevel" msgid "P&lugins" msgstr "Плагины" +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Просмотр плагинов..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/tr_TR/cura.po b/resources/i18n/tr_TR/cura.po index db339db866..15df3b18d5 100644 --- a/resources/i18n/tr_TR/cura.po +++ b/resources/i18n/tr_TR/cura.po @@ -66,6 +66,11 @@ msgctxt "@title:menu menubar:toplevel" msgid "P&lugins" msgstr "&Eklentiler" +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "Eklentilere göz at" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/zh_CN/cura.po b/resources/i18n/zh_CN/cura.po index 91f1297dbe..93272fd725 100644 --- a/resources/i18n/zh_CN/cura.po +++ b/resources/i18n/zh_CN/cura.po @@ -68,6 +68,11 @@ msgctxt "@title:menu menubar:toplevel" msgid "P&lugins" msgstr "插件" +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Browse plugins..." +msgstr "浏览插件..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" From fb5aa97641a88449a4d48747873f50dc35935a4f Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 16 Oct 2017 10:47:11 +0200 Subject: [PATCH 045/218] Forgot ellipses Contributes to issue CURA-4341. --- resources/i18n/tr_TR/cura.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/i18n/tr_TR/cura.po b/resources/i18n/tr_TR/cura.po index 15df3b18d5..bea5ab0107 100644 --- a/resources/i18n/tr_TR/cura.po +++ b/resources/i18n/tr_TR/cura.po @@ -69,7 +69,7 @@ msgstr "&Eklentiler" #: Manually added for resources/Cura/Actions.qml msgctxt "@action:menu" msgid "Browse plugins..." -msgstr "Eklentilere göz at" +msgstr "Eklentilere göz at..." #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" From a10390dbf140d93801ffa2ac6967d84de7299ae8 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 16 Oct 2017 11:00:38 +0200 Subject: [PATCH 046/218] Fix ANOTHER broken string freeze with plugin browser menu item This is annoying. Contributes to issue CURA-4341. --- resources/i18n/cura.pot | 5 +++++ resources/i18n/de_DE/cura.po | 5 +++++ resources/i18n/es_ES/cura.po | 5 +++++ resources/i18n/fi_FI/cura.po | 5 +++++ resources/i18n/fr_FR/cura.po | 5 +++++ resources/i18n/it_IT/cura.po | 5 +++++ resources/i18n/nl_NL/cura.po | 5 +++++ resources/i18n/pl_PL/cura.po | 5 +++++ resources/i18n/pt_BR/cura.po | 5 +++++ resources/i18n/ru_RU/cura.po | 5 +++++ resources/i18n/tr_TR/cura.po | 5 +++++ resources/i18n/zh_CN/cura.po | 5 +++++ 12 files changed, 60 insertions(+) diff --git a/resources/i18n/cura.pot b/resources/i18n/cura.pot index ed299dd5f7..fb4b9ed0d6 100644 --- a/resources/i18n/cura.pot +++ b/resources/i18n/cura.pot @@ -73,6 +73,11 @@ msgctxt "@action:menu" msgid "Browse plugins..." msgstr "" +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "" + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/de_DE/cura.po b/resources/i18n/de_DE/cura.po index 6431ae8a46..6bb71a5ae0 100644 --- a/resources/i18n/de_DE/cura.po +++ b/resources/i18n/de_DE/cura.po @@ -71,6 +71,11 @@ msgctxt "@action:menu" msgid "Browse plugins..." msgstr "Plugins durchsuchen..." +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Installierte plugins..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/es_ES/cura.po b/resources/i18n/es_ES/cura.po index 0293020746..f8f379d3d9 100644 --- a/resources/i18n/es_ES/cura.po +++ b/resources/i18n/es_ES/cura.po @@ -71,6 +71,11 @@ msgctxt "@action:menu" msgid "Browse plugins..." msgstr "Examinar complementos..." +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Complementos instalados..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/fi_FI/cura.po b/resources/i18n/fi_FI/cura.po index d42db18103..ae60ff98c6 100644 --- a/resources/i18n/fi_FI/cura.po +++ b/resources/i18n/fi_FI/cura.po @@ -71,6 +71,11 @@ msgctxt "@action:menu" msgid "Browse plugins..." msgstr "Selaa lisäosia..." +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Asennetut lisäoset..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/fr_FR/cura.po b/resources/i18n/fr_FR/cura.po index 8ceec834ce..76ad2ae4a6 100644 --- a/resources/i18n/fr_FR/cura.po +++ b/resources/i18n/fr_FR/cura.po @@ -71,6 +71,11 @@ msgctxt "@action:menu" msgid "Browse plugins..." msgstr "Parcourir les plug-ins..." +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Plug-ins installés..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/it_IT/cura.po b/resources/i18n/it_IT/cura.po index 80ddac85b3..7354379afa 100644 --- a/resources/i18n/it_IT/cura.po +++ b/resources/i18n/it_IT/cura.po @@ -71,6 +71,11 @@ msgctxt "@action:menu" msgid "Browse plugins..." msgstr "Sfoglia plugin..." +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Plugin installati..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/nl_NL/cura.po b/resources/i18n/nl_NL/cura.po index 4b4e17175b..680106d321 100644 --- a/resources/i18n/nl_NL/cura.po +++ b/resources/i18n/nl_NL/cura.po @@ -71,6 +71,11 @@ msgctxt "@action:menu" msgid "Browse plugins..." msgstr "Door invoegtoepassingen bladeren..." +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Geïnstalleerde plugins..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/pl_PL/cura.po b/resources/i18n/pl_PL/cura.po index 82cf15b631..fd840d9fc2 100644 --- a/resources/i18n/pl_PL/cura.po +++ b/resources/i18n/pl_PL/cura.po @@ -73,6 +73,11 @@ msgctxt "@action:menu" msgid "Browse plugins..." msgstr "Przeglądaj wtyczki..." +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Zainstalowane wtyczki..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/pt_BR/cura.po b/resources/i18n/pt_BR/cura.po index f7ce739731..db4aa72f0b 100644 --- a/resources/i18n/pt_BR/cura.po +++ b/resources/i18n/pt_BR/cura.po @@ -72,6 +72,11 @@ msgctxt "@action:menu" msgid "Browse plugins..." msgstr "Navegar complementos..." +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Complementos instalados..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/ru_RU/cura.po b/resources/i18n/ru_RU/cura.po index 108534f5b5..34f7262a1f 100755 --- a/resources/i18n/ru_RU/cura.po +++ b/resources/i18n/ru_RU/cura.po @@ -73,6 +73,11 @@ msgctxt "@action:menu" msgid "Browse plugins..." msgstr "Просмотр плагинов..." +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Установленные плагины..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/tr_TR/cura.po b/resources/i18n/tr_TR/cura.po index bea5ab0107..129c2bbe6b 100644 --- a/resources/i18n/tr_TR/cura.po +++ b/resources/i18n/tr_TR/cura.po @@ -71,6 +71,11 @@ msgctxt "@action:menu" msgid "Browse plugins..." msgstr "Eklentilere göz at..." +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "Yüklü eklentiler..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" diff --git a/resources/i18n/zh_CN/cura.po b/resources/i18n/zh_CN/cura.po index 93272fd725..092ce5120b 100644 --- a/resources/i18n/zh_CN/cura.po +++ b/resources/i18n/zh_CN/cura.po @@ -73,6 +73,11 @@ msgctxt "@action:menu" msgid "Browse plugins..." msgstr "浏览插件..." +#: Manually added for resources/Cura/Actions.qml +msgctxt "@action:menu" +msgid "Installed plugins..." +msgstr "已安装插件..." + #: /home/ruben/Projects/Cura/plugins/MachineSettingsAction/MachineSettingsAction.py:29 msgctxt "@action" msgid "Machine Settings" From dea230ed6ac361490bc0ee1186720f26db7c50e0 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 16 Oct 2017 11:13:55 +0200 Subject: [PATCH 047/218] Make generated extruder options translateable These do appear in the actual interface. --- cura/Settings/ExtrudersModel.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cura/Settings/ExtrudersModel.py b/cura/Settings/ExtrudersModel.py index 1d3d23ea56..ab91e79789 100644 --- a/cura/Settings/ExtrudersModel.py +++ b/cura/Settings/ExtrudersModel.py @@ -4,6 +4,7 @@ from PyQt5.QtCore import Qt, pyqtSignal, pyqtProperty, QTimer from typing import Iterable +from UM.i18n import i18nCatalog import UM.Qt.ListModel from UM.Application import Application import UM.FlameProfiler @@ -11,6 +12,8 @@ from cura.Settings.ExtruderManager import ExtruderManager from cura.Settings.ExtruderStack import ExtruderStack #To listen to changes on the extruders. from cura.Settings.MachineManager import MachineManager #To listen to changes on the extruders of the currently active machine. +catalog = i18nCatalog("cura") + ## Model that holds extruders. # # This model is designed for use by any list of extruders, but specifically @@ -172,7 +175,7 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): color = material.getMetaDataEntry("color_code", default = self.defaultColors[0]) if material else self.defaultColors[0] item = { "id": global_container_stack.getId(), - "name": "Global", + "name": catalog.i18nc("@menuitem", "Global"), "color": color, "index": -1, "definition": "" @@ -215,7 +218,7 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel): if self._add_optional_extruder: item = { "id": "", - "name": "Not overridden", + "name": catalog.i18nc("@menuitem", "Not overridden"), "color": "#ffffff", "index": -1, "definition": "" From 997be094933c8f19e12fd9426b29827c71fbb94c Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 16 Oct 2017 11:16:53 +0200 Subject: [PATCH 048/218] Ignore Siemens NX plug-in --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 5a077bd6b2..570c932d28 100644 --- a/.gitignore +++ b/.gitignore @@ -42,6 +42,7 @@ plugins/FlatProfileExporter plugins/ProfileFlattener plugins/cura-god-mode-plugin plugins/cura-big-flame-graph +plugins/cura-siemensnx-plugin #Build stuff CMakeCache.txt From 58562d59a05e7b8565408716640117c8cddf82ba Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 16 Oct 2017 11:17:50 +0200 Subject: [PATCH 049/218] Remove unused import --- cura/Settings/ExtrudersModel.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cura/Settings/ExtrudersModel.py b/cura/Settings/ExtrudersModel.py index ab91e79789..b13e51723b 100644 --- a/cura/Settings/ExtrudersModel.py +++ b/cura/Settings/ExtrudersModel.py @@ -10,7 +10,6 @@ from UM.Application import Application import UM.FlameProfiler from cura.Settings.ExtruderManager import ExtruderManager from cura.Settings.ExtruderStack import ExtruderStack #To listen to changes on the extruders. -from cura.Settings.MachineManager import MachineManager #To listen to changes on the extruders of the currently active machine. catalog = i18nCatalog("cura") From e1234a09aa1c6c5999510704fb7feb43f2e1e0c5 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 16 Oct 2017 11:42:13 +0200 Subject: [PATCH 050/218] Add the missing parseInt()s back CURA-4333 --- resources/qml/SidebarSimple.qml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 8b8e8f09fe..26d7117cf6 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -387,7 +387,7 @@ Item anchors.topMargin: UM.Theme.getSize("sidebar_margin").height * 2 anchors.left: parent.left - width: UM.Theme.getSize("sidebar").width * .45 - UM.Theme.getSize("sidebar_margin").width + width: parseInt(UM.Theme.getSize("sidebar").width * .45 - UM.Theme.getSize("sidebar_margin").width) Label { @@ -397,7 +397,7 @@ Item color: UM.Theme.getColor("text") anchors.top: parent.top - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height * 1.7 + anchors.topMargin: parseInt(UM.Theme.getSize("sidebar_margin").height * 1.7) anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width } @@ -408,7 +408,7 @@ Item id: infillCellRight height: infillSlider.height + UM.Theme.getSize("sidebar_margin").height + enableGradualInfillCheckBox.visible * (enableGradualInfillCheckBox.height + UM.Theme.getSize("sidebar_margin").height) - width: UM.Theme.getSize("sidebar").width * .55 + width: parseInt(UM.Theme.getSize("sidebar").width * .55) anchors.left: infillCellLeft.right anchors.top: infillCellLeft.top @@ -419,7 +419,7 @@ Item //anchors.top: parent.top anchors.left: infillSlider.left - anchors.leftMargin: (infillSlider.value / infillSlider.stepSize) * (infillSlider.width / (infillSlider.maximumValue / infillSlider.stepSize)) - 10 * screenScaleFactor + anchors.leftMargin: parseInt((infillSlider.value / infillSlider.stepSize) * (infillSlider.width / (infillSlider.maximumValue / infillSlider.stepSize)) - 10 * screenScaleFactor) anchors.right: parent.right text: parseInt(infillDensity.properties.value) + "%" @@ -445,7 +445,7 @@ Item anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width height: UM.Theme.getSize("sidebar_margin").height - width: infillCellRight.width - UM.Theme.getSize("sidebar_margin").width - style.handleWidth + width: parseInt(infillCellRight.width - UM.Theme.getSize("sidebar_margin").width - style.handleWidth) minimumValue: 0 maximumValue: 100 From 9b8dc9bf55e351406fdf53d7dd93728970cd35c0 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 16 Oct 2017 13:18:09 +0200 Subject: [PATCH 051/218] Move simple-mode settings customization check into a separate file CURA-4333 Simple-mode is a special mode so it makes more sense to put those code in a separate file instead of in the more generic MachineManager. --- cura/CuraApplication.py | 11 ++++- cura/Settings/MachineManager.py | 41 ---------------- cura/Settings/SimpleModeSettingsManager.py | 55 ++++++++++++++++++++++ resources/qml/SidebarSimple.qml | 7 ++- 4 files changed, 68 insertions(+), 46 deletions(-) create mode 100644 cura/Settings/SimpleModeSettingsManager.py diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index c1ef04bb6f..27451c745c 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -51,6 +51,7 @@ from cura.Settings.MaterialsModel import MaterialsModel from cura.Settings.QualityAndUserProfilesModel import QualityAndUserProfilesModel from cura.Settings.SettingInheritanceManager import SettingInheritanceManager from cura.Settings.UserProfilesModel import UserProfilesModel +from cura.Settings.SimpleModeSettingsManager import SimpleModeSettingsManager from . import PlatformPhysics from . import BuildVolume @@ -201,6 +202,7 @@ class CuraApplication(QtApplication): self._machine_manager = None # This is initialized on demand. self._material_manager = None self._setting_inheritance_manager = None + self._simple_mode_settings_manager = None self._additional_components = {} # Components to add to certain areas in the interface @@ -670,7 +672,9 @@ class CuraApplication(QtApplication): qmlRegisterSingletonType(MachineManager, "Cura", 1, 0, "MachineManager", self.getMachineManager) qmlRegisterSingletonType(MaterialManager, "Cura", 1, 0, "MaterialManager", self.getMaterialManager) qmlRegisterSingletonType(SettingInheritanceManager, "Cura", 1, 0, "SettingInheritanceManager", - self.getSettingInheritanceManager) + self.getSettingInheritanceManager) + qmlRegisterSingletonType(SimpleModeSettingsManager, "Cura", 1, 2, "SimpleModeSettingsManager", + self.getSimpleModeSettingsManager) qmlRegisterSingletonType(MachineActionManager.MachineActionManager, "Cura", 1, 0, "MachineActionManager", self.getMachineActionManager) self.setMainQml(Resources.getPath(self.ResourceTypes.QmlFiles, "Cura.qml")) @@ -710,6 +714,11 @@ class CuraApplication(QtApplication): def getMachineActionManager(self, *args): return self._machine_action_manager + def getSimpleModeSettingsManager(self, *args): + if self._simple_mode_settings_manager is None: + self._simple_mode_settings_manager = SimpleModeSettingsManager() + return self._simple_mode_settings_manager + ## Handle Qt events def event(self, event): if event.type() == QEvent.FileOpen: diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index e490568ccc..563965915a 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -39,8 +39,6 @@ if TYPE_CHECKING: from cura.Settings.CuraContainerStack import CuraContainerStack from cura.Settings.GlobalStack import GlobalStack -import os - class MachineManager(QObject): def __init__(self, parent = None): @@ -413,45 +411,6 @@ class MachineManager(QObject): return False - ## Check whether user containers have adjusted settings or not - # \param skip_keys \type{list} List of setting keys which will be not taken into account ("support_enable" , "infill_sparse_density"...) - # \return \type{boole} Return true if user containers have any of adjusted settings - def hasUserCustomSettings(self, skip_keys = {}) -> bool: - - user_setting_keys = [] - - if not self._global_container_stack: - return False - - allContainers = self._global_container_stack.getContainers() - - for container in allContainers: - meta_type = container.getMetaDataEntry("type", None) - if meta_type == "user": - user_setting_keys.extend(container.getAllKeys()) - - stacks = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())) - for stack in stacks: - - for container in stack.getContainers(): - meta_type = container.getMetaDataEntry("type", None) - if meta_type == "user": - user_setting_keys.extend(container.getAllKeys()) - - for skip_key in skip_keys: - if skip_key in user_setting_keys: - user_setting_keys.remove(skip_key) - - return len(user_setting_keys) > 0 - - # These setting keys are used in SettingSimple.qml. They used to validate whether show notification(reset) icon or not - # If a changed setting is in the ignore list then this setting should be skipped and the notification not shown - ignore_list = ["support_enable", "infill_sparse_density", "gradual_infill_steps", "adhesion_type", "support_extruder_nr"] - - @pyqtProperty(bool, notify = activeStackValueChanged) - def allActiveUserSettings(self): - return self.hasUserCustomSettings(skip_keys = self.ignore_list) - @pyqtProperty(int, notify = activeStackValueChanged) def numUserSettings(self) -> int: if not self._global_container_stack: diff --git a/cura/Settings/SimpleModeSettingsManager.py b/cura/Settings/SimpleModeSettingsManager.py new file mode 100644 index 0000000000..ffeaff4072 --- /dev/null +++ b/cura/Settings/SimpleModeSettingsManager.py @@ -0,0 +1,55 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from PyQt5.QtCore import QObject, pyqtSignal, pyqtProperty + +from UM.Application import Application + + +class SimpleModeSettingsManager(QObject): + + def __init__(self, parent = None): + super().__init__(parent) + + self._machine_manager = Application.getInstance().getMachineManager() + self._is_profile_customized = False + + self._machine_manager.activeStackValueChanged.connect(self._updateIsProfileCustomized) + + isProfileCustomizedChanged = pyqtSignal() + + @pyqtProperty(bool, notify = isProfileCustomizedChanged) + def isProfileCustomized(self): + return self._is_profile_customized + + def _updateIsProfileCustomized(self): + user_setting_keys = set() + + if not self._machine_manager.activeMachine: + return False + + global_stack = self._machine_manager.activeMachine + + # check user settings in the global stack + user_setting_keys.update(set(global_stack.userChanges.getAllKeys())) + # check user settings in the extruder stacks + if global_stack.extruders: + for extruder_stack in global_stack.extruders.values(): + user_setting_keys.update(set(extruder_stack.userChanges.getAllKeys())) + + for skip_key in self.__ignored_custom_setting_keys: + if skip_key in user_setting_keys: + user_setting_keys.remove(skip_key) + + has_customized_user_settings = len(user_setting_keys) > 0 + + if has_customized_user_settings != self._is_profile_customized: + self._is_profile_customized = has_customized_user_settings + self.isProfileCustomizedChanged.emit() + + # A list of settings that will be ignored when check whether there is any custom settings. + __ignored_custom_setting_keys = ["support_enable", + "infill_sparse_density", + "gradual_infill_steps", + "adhesion_type", + "support_extruder_nr"] diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 26d7117cf6..82e5f421e4 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -7,7 +7,7 @@ import QtQuick.Controls.Styles 1.1 import QtQuick.Layouts 1.1 import UM 1.2 as UM -import Cura 1.0 as Cura +import Cura 1.2 as Cura Item { @@ -20,7 +20,6 @@ Item property variant minimumPrintTime: PrintInformation.minimumPrintTime; property variant maximumPrintTime: PrintInformation.maximumPrintTime; property bool settingsEnabled: ExtruderManager.activeExtruderStackId || machineExtruderCount.properties.value == 1 - property bool hasUserSettings: Cura.MachineManager.allActiveUserSettings Component.onCompleted: PrintInformation.enabled = true Component.onDestruction: PrintInformation.enabled = false @@ -292,7 +291,7 @@ Item implicitWidth: 10 * screenScaleFactor implicitHeight: implicitWidth radius: implicitWidth / 2 - visible: !hasUserSettings; + visible: !Cura.SimpleModeSettingsManager.isProfileCustomized; } } } @@ -350,7 +349,7 @@ Item { id: customisedSettings - visible: hasUserSettings + visible: Cura.SimpleModeSettingsManager.isProfileCustomized height: speedSlider.height * 0.8 width: speedSlider.height * 0.8 From 95f018530ff40de5b79309ef3f77dc27dc72324d Mon Sep 17 00:00:00 2001 From: Buco Date: Mon, 16 Oct 2017 13:21:46 +0200 Subject: [PATCH 052/218] Add Builder Premium Tabs became spaces --- .../builder_premium_large.def.json | 68 +++++++++---------- .../builder_premium_medium.def.json | 64 ++++++++--------- .../builder_premium_small.def.json | 62 ++++++++--------- 3 files changed, 97 insertions(+), 97 deletions(-) diff --git a/resources/definitions/builder_premium_large.def.json b/resources/definitions/builder_premium_large.def.json index e7a5b9c24b..aaeda0fdb1 100644 --- a/resources/definitions/builder_premium_large.def.json +++ b/resources/definitions/builder_premium_large.def.json @@ -8,20 +8,20 @@ "author": "Builder SZ", "manufacturer": "Builder", "category": "Other", - "quality_definition": "builder_premium_small", + "quality_definition": "builder_premium_small", "file_formats": "text/x-gcode", "platform": "builder_premium_platform.stl", - "platform_offset": [-126, -36, 117], - "has_machine_quality": true, - "preferred_quality": "*normal*", - "machine_extruder_trains": + "platform_offset": [-126, -36, 117], + "has_machine_quality": true, + "preferred_quality": "*normal*", + "machine_extruder_trains": { - "0": "builder_premium_medium_rear", - "1": "builder_premium_medium_front" + "0": "builder_premium_large_rear", + "1": "builder_premium_large_front" } }, - + "overrides": { "machine_name": { "default_value": "Builder Premium Large" }, @@ -31,21 +31,21 @@ "machine_depth": { "default_value": 205 }, "material_diameter": { "default_value": 1.75 }, - "infill_pattern": {"value": "'triangles'" }, - "infill_before_walls": {"value": false }, + "infill_pattern": {"value": "'triangles'" }, + "infill_before_walls": {"value": false }, - "material_print_temperature": {"value": 215 }, - "default_material_print_temperature": { "default_value": 215 }, + "material_print_temperature": {"value": 215 }, + "default_material_print_temperature": { "default_value": 215 }, "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, "material_standby_temperature": { "value": "material_print_temperature" }, - "switch_extruder_retraction_speeds": {"default_value": 15 }, - "switch_extruder_retraction_speed": {"default_value": 15 }, - "switch_extruder_prime_speed": {"default_value": 15 }, - "switch_extruder_retraction_amount": {"value": 1 }, + "switch_extruder_retraction_speeds": {"default_value": 15 }, + "switch_extruder_retraction_speed": {"default_value": 15 }, + "switch_extruder_prime_speed": {"default_value": 15 }, + "switch_extruder_retraction_amount": {"value": 1 }, - "speed_travel": { "value": "100" }, - "speed_layer_0": { "value": "20" }, + "speed_travel": { "value": "100" }, + "speed_layer_0": { "value": "20" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_print": { "value": "40" }, "speed_support": { "value": "speed_wall_0" }, @@ -55,29 +55,29 @@ "speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 25)" }, "speed_wall_x": { "value": "speed_wall" }, - "prime_tower_position_x": { "default_value": 175 }, + "prime_tower_position_x": { "default_value": 175 }, "prime_tower_position_y": { "default_value": 178 }, "prime_tower_wipe_enabled": { "default_value": false }, - "prime_tower_min_volume": { "default_value": 50 }, - "dual_pre_wipe": { "default_value": false }, + "prime_tower_min_volume": { "default_value": 50 }, + "dual_pre_wipe": { "default_value": false }, - "prime_blob_enable": { "enabled": true }, + "prime_blob_enable": { "enabled": true }, - "acceleration_enabled": { "value": "True" }, + "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, "acceleration_print": { "value": "3000" }, "acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, "acceleration_support_interface": { "value": "acceleration_topbottom" }, "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, - "acceleration_travel": { "value": "acceleration_print" }, + "acceleration_travel": { "value": "acceleration_print" }, "acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, "acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 1000 / 1000)" }, - "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_min_layer_time": { "default_value": 10 }, + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "cool_min_layer_time": { "default_value": 10 }, - "jerk_enabled": { "value": "True" }, + "jerk_enabled": { "value": "True" }, "jerk_layer_0": { "value": "jerk_topbottom" }, "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, "jerk_print": { "value": "25" }, @@ -87,22 +87,22 @@ "jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" }, "jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" }, - "wall_thickness": { "value": "1.2" }, + "wall_thickness": { "value": "1.2" }, - "retraction_amount": { "default_value": 3 }, + "retraction_amount": { "default_value": 3 }, "retraction_speed": { "default_value": 15 }, "retraction_retract_speed": { "default_value": 15 }, "retraction_prime_speed": { "default_value": 15 }, - "travel_retract_before_outer_wall": { "default_value": true }, - "skin_overlap": { "value": "15" }, + "travel_retract_before_outer_wall": { "default_value": true }, + "skin_overlap": { "value": "15" }, "adhesion_type": { "default_value": "skirt" }, "machine_nozzle_heat_up_speed": { "default_value": 2 }, "machine_nozzle_cool_down_speed": { "default_value": 2 }, "machine_head_polygon": { "default_value": [[-75, -18],[-75, 35],[18, 35],[18, -18]] }, "gantry_height": { "default_value": 55 }, - "machine_max_feedrate_x": { "default_value": 300 }, + "machine_max_feedrate_x": { "default_value": 300 }, "machine_max_feedrate_y": { "default_value": 300 }, - "machine_max_feedrate_z": { "default_value": 40 }, + "machine_max_feedrate_z": { "default_value": 40 }, "machine_max_acceleration_z": { "default_value": 500 }, "machine_acceleration": { "default_value": 1000 }, "machine_max_jerk_xy": { "default_value": 10 }, @@ -113,6 +113,6 @@ "machine_end_gcode": { "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" }, - "machine_extruder_count": { "default_value": 2 } + "machine_extruder_count": { "default_value": 2 } } } \ No newline at end of file diff --git a/resources/definitions/builder_premium_medium.def.json b/resources/definitions/builder_premium_medium.def.json index bb2b2eb0a8..79825a5653 100644 --- a/resources/definitions/builder_premium_medium.def.json +++ b/resources/definitions/builder_premium_medium.def.json @@ -8,20 +8,20 @@ "author": "Builder SZ", "manufacturer": "Builder", "category": "Other", - "quality_definition": "builder_premium_small", + "quality_definition": "builder_premium_small", "file_formats": "text/x-gcode", "platform": "builder_premium_platform.stl", - "platform_offset": [-126, -36, 117], - "has_machine_quality": true, - "preferred_quality": "*normal*", - "machine_extruder_trains": + "platform_offset": [-126, -36, 117], + "has_machine_quality": true, + "preferred_quality": "*normal*", + "machine_extruder_trains": { "0": "builder_premium_medium_rear", "1": "builder_premium_medium_front" } }, - + "overrides": { "machine_name": { "default_value": "Builder Premium Medium" }, @@ -31,21 +31,21 @@ "machine_depth": { "default_value": 205 }, "material_diameter": { "default_value": 1.75 }, - "infill_pattern": {"value": "'triangles'" }, - "infill_before_walls": {"value": false }, + "infill_pattern": {"value": "'triangles'" }, + "infill_before_walls": {"value": false }, - "material_print_temperature": {"value": 215 }, - "default_material_print_temperature": { "default_value": 215 }, + "material_print_temperature": {"value": 215 }, + "default_material_print_temperature": { "default_value": 215 }, "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, "material_standby_temperature": { "value": "material_print_temperature" }, - "switch_extruder_retraction_speeds": {"default_value": 15 }, - "switch_extruder_retraction_speed": {"default_value": 15 }, - "switch_extruder_prime_speed": {"default_value": 15 }, - "switch_extruder_retraction_amount": {"value": 1 }, + "switch_extruder_retraction_speeds": {"default_value": 15 }, + "switch_extruder_retraction_speed": {"default_value": 15 }, + "switch_extruder_prime_speed": {"default_value": 15 }, + "switch_extruder_retraction_amount": {"value": 1 }, - "speed_travel": { "value": "100" }, - "speed_layer_0": { "value": "20" }, + "speed_travel": { "value": "100" }, + "speed_layer_0": { "value": "20" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_print": { "value": "40" }, "speed_support": { "value": "speed_wall_0" }, @@ -55,29 +55,29 @@ "speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 25)" }, "speed_wall_x": { "value": "speed_wall" }, - "prime_tower_position_x": { "default_value": 175 }, + "prime_tower_position_x": { "default_value": 175 }, "prime_tower_position_y": { "default_value": 178 }, "prime_tower_wipe_enabled": { "default_value": false }, - "prime_tower_min_volume": { "default_value": 50 }, - "dual_pre_wipe": { "default_value": false }, + "prime_tower_min_volume": { "default_value": 50 }, + "dual_pre_wipe": { "default_value": false }, - "prime_blob_enable": { "enabled": true }, + "prime_blob_enable": { "enabled": true }, - "acceleration_enabled": { "value": "True" }, + "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, "acceleration_print": { "value": "3000" }, "acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, "acceleration_support_interface": { "value": "acceleration_topbottom" }, "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, - "acceleration_travel": { "value": "acceleration_print" }, + "acceleration_travel": { "value": "acceleration_print" }, "acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, "acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 1000 / 1000)" }, - "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_min_layer_time": { "default_value": 10 }, + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "cool_min_layer_time": { "default_value": 10 }, - "jerk_enabled": { "value": "True" }, + "jerk_enabled": { "value": "True" }, "jerk_layer_0": { "value": "jerk_topbottom" }, "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, "jerk_print": { "value": "25" }, @@ -87,22 +87,22 @@ "jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" }, "jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" }, - "wall_thickness": { "value": "1.2" }, + "wall_thickness": { "value": "1.2" }, - "retraction_amount": { "default_value": 3 }, + "retraction_amount": { "default_value": 3 }, "retraction_speed": { "default_value": 15 }, "retraction_retract_speed": { "default_value": 15 }, "retraction_prime_speed": { "default_value": 15 }, - "travel_retract_before_outer_wall": { "default_value": true }, - "skin_overlap": { "value": "15" }, + "travel_retract_before_outer_wall": { "default_value": true }, + "skin_overlap": { "value": "15" }, "adhesion_type": { "default_value": "skirt" }, "machine_nozzle_heat_up_speed": { "default_value": 2 }, "machine_nozzle_cool_down_speed": { "default_value": 2 }, "machine_head_polygon": { "default_value": [[-75, -18],[-75, 35],[18, 35],[18, -18]] }, "gantry_height": { "default_value": 55 }, - "machine_max_feedrate_x": { "default_value": 300 }, + "machine_max_feedrate_x": { "default_value": 300 }, "machine_max_feedrate_y": { "default_value": 300 }, - "machine_max_feedrate_z": { "default_value": 40 }, + "machine_max_feedrate_z": { "default_value": 40 }, "machine_max_acceleration_z": { "default_value": 500 }, "machine_acceleration": { "default_value": 1000 }, "machine_max_jerk_xy": { "default_value": 10 }, @@ -113,6 +113,6 @@ "machine_end_gcode": { "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" }, - "machine_extruder_count": { "default_value": 2 } + "machine_extruder_count": { "default_value": 2 } } } \ No newline at end of file diff --git a/resources/definitions/builder_premium_small.def.json b/resources/definitions/builder_premium_small.def.json index 19fd3524cc..358b41a072 100644 --- a/resources/definitions/builder_premium_small.def.json +++ b/resources/definitions/builder_premium_small.def.json @@ -10,17 +10,17 @@ "category": "Other", "file_formats": "text/x-gcode", "platform": "builder_premium_platform.stl", - "platform_offset": [-126, -36, 117], - "has_machine_quality": true, - "preferred_quality": "*normal*", - "machine_extruder_trains": + "platform_offset": [-126, -36, 117], + "has_machine_quality": true, + "preferred_quality": "*normal*", + "machine_extruder_trains": { "0": "builder_premium_small_rear", "1": "builder_premium_small_front" } }, - + "overrides": { "machine_name": { "default_value": "Builder Premium Small" }, @@ -30,21 +30,21 @@ "machine_depth": { "default_value": 205 }, "material_diameter": { "default_value": 1.75 }, - "infill_pattern": {"value": "'triangles'" }, - "infill_before_walls": {"value": false }, + "infill_pattern": {"value": "'triangles'" }, + "infill_before_walls": {"value": false }, - "material_print_temperature": {"value": 215 }, - "default_material_print_temperature": { "default_value": 215 }, + "material_print_temperature": {"value": 215 }, + "default_material_print_temperature": { "default_value": 215 }, "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, "material_standby_temperature": { "value": "material_print_temperature" }, - "switch_extruder_retraction_speeds": {"default_value": 15 }, - "switch_extruder_retraction_speed": {"default_value": 15 }, - "switch_extruder_prime_speed": {"default_value": 15 }, - "switch_extruder_retraction_amount": {"value": 1 }, + "switch_extruder_retraction_speeds": {"default_value": 15 }, + "switch_extruder_retraction_speed": {"default_value": 15 }, + "switch_extruder_prime_speed": {"default_value": 15 }, + "switch_extruder_retraction_amount": {"value": 1 }, - "speed_travel": { "value": "100" }, - "speed_layer_0": { "value": "20" }, + "speed_travel": { "value": "100" }, + "speed_layer_0": { "value": "20" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_print": { "value": "40" }, "speed_support": { "value": "speed_wall_0" }, @@ -54,29 +54,29 @@ "speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 25)" }, "speed_wall_x": { "value": "speed_wall" }, - "prime_tower_position_x": { "default_value": 175 }, + "prime_tower_position_x": { "default_value": 175 }, "prime_tower_position_y": { "default_value": 178 }, "prime_tower_wipe_enabled": { "default_value": false }, - "prime_tower_min_volume": { "default_value": 50 }, - "dual_pre_wipe": { "default_value": false }, + "prime_tower_min_volume": { "default_value": 50 }, + "dual_pre_wipe": { "default_value": false }, - "prime_blob_enable": { "enabled": true }, + "prime_blob_enable": { "enabled": true }, - "acceleration_enabled": { "value": "True" }, + "acceleration_enabled": { "value": "True" }, "acceleration_layer_0": { "value": "acceleration_topbottom" }, "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, "acceleration_print": { "value": "3000" }, "acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, "acceleration_support_interface": { "value": "acceleration_topbottom" }, "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, - "acceleration_travel": { "value": "acceleration_print" }, + "acceleration_travel": { "value": "acceleration_print" }, "acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, "acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 1000 / 1000)" }, - "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_min_layer_time": { "default_value": 10 }, + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "cool_min_layer_time": { "default_value": 10 }, - "jerk_enabled": { "value": "True" }, + "jerk_enabled": { "value": "True" }, "jerk_layer_0": { "value": "jerk_topbottom" }, "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, "jerk_print": { "value": "25" }, @@ -86,22 +86,22 @@ "jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" }, "jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" }, - "wall_thickness": { "value": "1.2" }, + "wall_thickness": { "value": "1.2" }, - "retraction_amount": { "default_value": 3 }, + "retraction_amount": { "default_value": 3 }, "retraction_speed": { "default_value": 15 }, "retraction_retract_speed": { "default_value": 15 }, "retraction_prime_speed": { "default_value": 15 }, - "travel_retract_before_outer_wall": { "default_value": true }, - "skin_overlap": { "value": "15" }, + "travel_retract_before_outer_wall": { "default_value": true }, + "skin_overlap": { "value": "15" }, "adhesion_type": { "default_value": "skirt" }, "machine_nozzle_heat_up_speed": { "default_value": 2 }, "machine_nozzle_cool_down_speed": { "default_value": 2 }, "machine_head_polygon": { "default_value": [[-75, -18],[-75, 35],[18, 35],[18, -18]] }, "gantry_height": { "default_value": 55 }, - "machine_max_feedrate_x": { "default_value": 300 }, + "machine_max_feedrate_x": { "default_value": 300 }, "machine_max_feedrate_y": { "default_value": 300 }, - "machine_max_feedrate_z": { "default_value": 40 }, + "machine_max_feedrate_z": { "default_value": 40 }, "machine_max_acceleration_z": { "default_value": 500 }, "machine_acceleration": { "default_value": 1000 }, "machine_max_jerk_xy": { "default_value": 10 }, @@ -112,6 +112,6 @@ "machine_end_gcode": { "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" }, - "machine_extruder_count": { "default_value": 2 } + "machine_extruder_count": { "default_value": 2 } } } \ No newline at end of file From fae65d7b8305536bd3093517bf659c0b72d337f6 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 16 Oct 2017 13:26:26 +0200 Subject: [PATCH 053/218] Minor fixes for customized profile in simple mode CURA-4333 - Update comments - Disable the quality slider when there is a customized profile --- cura/Settings/SimpleModeSettingsManager.py | 3 ++- resources/qml/SidebarSimple.qml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cura/Settings/SimpleModeSettingsManager.py b/cura/Settings/SimpleModeSettingsManager.py index ffeaff4072..51aeb74d87 100644 --- a/cura/Settings/SimpleModeSettingsManager.py +++ b/cura/Settings/SimpleModeSettingsManager.py @@ -47,7 +47,8 @@ class SimpleModeSettingsManager(QObject): self._is_profile_customized = has_customized_user_settings self.isProfileCustomizedChanged.emit() - # A list of settings that will be ignored when check whether there is any custom settings. + # These are the settings included in the Simple ("Recommended") Mode, so only when the other settings have been + # changed, we consider it as a user customized profile in the Simple ("Recommended") Mode. __ignored_custom_setting_keys = ["support_enable", "infill_sparse_density", "gradual_infill_steps", diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 82e5f421e4..a68e2171f9 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -260,7 +260,7 @@ Item id: qualitySlider height: UM.Theme.getSize("sidebar_margin").height anchors.bottom: speedSlider.bottom - enabled: qualityModel.availableTotalTicks > 0 + enabled: qualityModel.availableTotalTicks > 0 && !Cura.SimpleModeSettingsManager.isProfileCustomized visible: qualityModel.totalTicks > 0 updateValueWhileDragging : false From b32f3f9f77453f774d3a2578941e673d040a296c Mon Sep 17 00:00:00 2001 From: "A.Sasin" Date: Mon, 16 Oct 2017 13:42:29 +0200 Subject: [PATCH 054/218] Adjusted Crash report message title CURA-4195 --- cura/CrashHandler.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cura/CrashHandler.py b/cura/CrashHandler.py index 249d509674..04f04a1c37 100644 --- a/cura/CrashHandler.py +++ b/cura/CrashHandler.py @@ -90,8 +90,8 @@ class CrashHandler: def _messageWidget(self): label = QLabel() - label.setText(catalog.i18nc("@label crash message", """

A fatal exception has occurred that we could not recover from!

-

Please use the button below to post a bug report automatically to our servers

+ label.setText(catalog.i18nc("@label crash message", """

A fatal exception has occurred. Please send us this Crash Report to fix the problem

+

Please use the "Send report" button to post a bug report automatically to our servers

""")) return label @@ -244,7 +244,7 @@ class CrashHandler: def _buttonsWidget(self): buttons = QDialogButtonBox() buttons.addButton(QDialogButtonBox.Close) - buttons.addButton(catalog.i18nc("@action:button", "Send to developers"), QDialogButtonBox.AcceptRole) + buttons.addButton(catalog.i18nc("@action:button", "Send report"), QDialogButtonBox.AcceptRole) buttons.rejected.connect(self.dialog.close) buttons.accepted.connect(self._sendCrashReport) From aa7b456594e266e7f464f5205931129a3c96ce71 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 16 Oct 2017 13:59:20 +0200 Subject: [PATCH 055/218] Fix custom quality profile upgrade for UM2 family The custom quality profiles for the UM2 family used to be saved as profiles for "fdmprinter". They now should be updated to set for "ultimaker2". --- .../VersionUpgrade27to30.py | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py b/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py index d0b78168b4..98bbcf5120 100644 --- a/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py +++ b/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py @@ -118,24 +118,23 @@ class VersionUpgrade27to30(VersionUpgrade): if not parser.has_section("general"): parser.add_section("general") - # Need to exclude the following names: - # - ultimaker2_plus - # - ultimaker2_go - # - ultimaker2_extended - # - ultimaker2_extended_plus - exclude_prefix_list = ["ultimaker2_plus_", - "ultimaker2_go_", - "ultimaker2_extended_", - "ultimaker2_extended_plus_"] + # The ultimaker 2 family + ultimaker2_prefix_list = ["ultimaker2_extended_", + "ultimaker2_go_", + "ultimaker2_"] + # ultimaker 2+ is a different family, so don't do anything with those + exclude_prefix_list = ["ultimaker2_extended_plus_", + "ultimaker2_plus_"] + + # set machine definition to "ultimaker2" for the custom quality profiles that can be for the ultimaker 2 family file_base_name = os.path.basename(filename) - if file_base_name.startswith("ultimaker2_"): - skip_this = False - for exclude_prefix in exclude_prefix_list: - if file_base_name.startswith(exclude_prefix): - skip_this = True - break - if not skip_this: - parser["general"]["definition"] = "ultimaker2" + is_ultimaker2_family = not any(file_base_name.startswith(ep) for ep in exclude_prefix_list) + if not is_ultimaker2_family: + is_ultimaker2_family = any(file_base_name.startswith(ep) for ep in ultimaker2_prefix_list) + + # ultimaker2 family quality profiles used to set as "fdmprinter" profiles + if is_ultimaker2_family and parser["general"]["definition"] == "fdmprinter": + parser["general"]["definition"] = "ultimaker2" # Update version numbers parser["general"]["version"] = "2" From ad8af82a58693e0e0fb6db725fb9b2cf3633b01e Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 16 Oct 2017 14:51:59 +0200 Subject: [PATCH 056/218] Fix size of "beta" classifier on splash screen for HiDPI (windows) screens --- cura/CuraSplashScreen.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/CuraSplashScreen.py b/cura/CuraSplashScreen.py index f6ce703fa8..77c9ad1427 100644 --- a/cura/CuraSplashScreen.py +++ b/cura/CuraSplashScreen.py @@ -62,7 +62,7 @@ class CuraSplashScreen(QSplashScreen): painter.setFont(font) painter.drawText(215, 66, 330 * self._scale, 230 * self._scale, Qt.AlignLeft | Qt.AlignTop, version[0]) if len(version) > 1: - font.setPointSize(12) + font.setPixelSize(16) painter.setFont(font) painter.setPen(QColor(200, 200, 200, 255)) painter.drawText(247, 105, 330 * self._scale, 255 * self._scale, Qt.AlignLeft | Qt.AlignTop, version[1]) From 8ef918829f6bfa7e46b2c3638cfe2e73b1e71b86 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 16 Oct 2017 15:00:29 +0200 Subject: [PATCH 057/218] Fix quality profile upgrade for UM2 family --- .../VersionUpgrade27to30/VersionUpgrade27to30.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py b/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py index 98bbcf5120..972d238921 100644 --- a/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py +++ b/plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py @@ -128,8 +128,8 @@ class VersionUpgrade27to30(VersionUpgrade): # set machine definition to "ultimaker2" for the custom quality profiles that can be for the ultimaker 2 family file_base_name = os.path.basename(filename) - is_ultimaker2_family = not any(file_base_name.startswith(ep) for ep in exclude_prefix_list) - if not is_ultimaker2_family: + is_ultimaker2_family = False + if not any(file_base_name.startswith(ep) for ep in exclude_prefix_list): is_ultimaker2_family = any(file_base_name.startswith(ep) for ep in ultimaker2_prefix_list) # ultimaker2 family quality profiles used to set as "fdmprinter" profiles From 70f0e8752bb55debb60e028819b12579cc6e0697 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 16 Oct 2017 15:05:51 +0200 Subject: [PATCH 058/218] Add extra --headless flag to commandline --- cura/CuraApplication.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 6a4b996080..13d67d5c70 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -533,6 +533,7 @@ class CuraApplication(QtApplication): super().addCommandLineOptions(parser) parser.add_argument("file", nargs="*", help="Files to load after starting the application.") parser.add_argument("--single-instance", action="store_true", default=False) + parser.add_argument("--headless", action = "store_true", default=False) # Set up a local socket server which listener which coordinates single instances Curas and accepts commands. def _setUpSingleInstanceServer(self): @@ -679,9 +680,12 @@ class CuraApplication(QtApplication): qmlRegisterSingletonType(MachineActionManager.MachineActionManager, "Cura", 1, 0, "MachineActionManager", self.getMachineActionManager) self.setMainQml(Resources.getPath(self.ResourceTypes.QmlFiles, "Cura.qml")) self._qml_import_paths.append(Resources.getPath(self.ResourceTypes.QmlFiles)) - self.initializeEngine() - if self._engine.rootObjects: + run_headless = self.getCommandLineOption("headless", False) + if not run_headless: + self.initializeEngine() + + if run_headless or self._engine.rootObjects: self.closeSplash() for file in self.getCommandLineOption("file", []): @@ -1227,6 +1231,9 @@ class CuraApplication(QtApplication): # see GroupDecorator._onChildrenChanged def _createSplashScreen(self): + run_headless = self.getCommandLineOption("headless", False) + if run_headless: + return None return CuraSplashScreen.CuraSplashScreen() def _onActiveMachineChanged(self): From 6fae0a3e09f08433e84533f89d38a9ee1330a40a Mon Sep 17 00:00:00 2001 From: Buco Date: Mon, 16 Oct 2017 15:43:35 +0200 Subject: [PATCH 059/218] Add Premium Changed "setting_version" to 3 --- .../quality/builder_premium/builder_premium_high.inst.cfg | 2 +- .../quality/builder_premium/builder_premium_low.inst.cfg | 4 ++-- .../quality/builder_premium/builder_premium_normal.inst.cfg | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/resources/quality/builder_premium/builder_premium_high.inst.cfg b/resources/quality/builder_premium/builder_premium_high.inst.cfg index f82b12aa15..5e990e64d9 100644 --- a/resources/quality/builder_premium/builder_premium_high.inst.cfg +++ b/resources/quality/builder_premium/builder_premium_high.inst.cfg @@ -7,7 +7,7 @@ definition = builder_premium_small type = quality quality_type = high material = generic_pla_175 -setting_version = 2 +setting_version = 3 weight = 1 global_quality = True diff --git a/resources/quality/builder_premium/builder_premium_low.inst.cfg b/resources/quality/builder_premium/builder_premium_low.inst.cfg index 2d83602b9e..8d8c3464d2 100644 --- a/resources/quality/builder_premium/builder_premium_low.inst.cfg +++ b/resources/quality/builder_premium/builder_premium_low.inst.cfg @@ -6,8 +6,8 @@ definition = builder_premium_small [metadata] type = quality quality_type = low -material = generic_pla -setting_version = 2 +material = generic_pla_175 +setting_version = 3 weight = -1 global_quality = True diff --git a/resources/quality/builder_premium/builder_premium_normal.inst.cfg b/resources/quality/builder_premium/builder_premium_normal.inst.cfg index b53e572887..7d401d4dea 100644 --- a/resources/quality/builder_premium/builder_premium_normal.inst.cfg +++ b/resources/quality/builder_premium/builder_premium_normal.inst.cfg @@ -6,9 +6,9 @@ definition = builder_premium_small [metadata] type = quality quality_type = normal -material = generic_pla +material = generic_pla_175 +setting_version = 3 weight = 0 -setting_version = 2 global_quality = True [values] From a444e5c883d4a87d934658e38da333e059233e5e Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 16 Oct 2017 15:55:46 +0200 Subject: [PATCH 060/218] update material xml parser to support psp values - CURA-4253 --- plugins/XmlMaterialProfile/XmlMaterialProfile.py | 6 ++++-- resources/definitions/fdmprinter.def.json | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index c67c7eae6c..607018d88f 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -676,13 +676,15 @@ class XmlMaterialProfile(InstanceContainer): "processing temperature graph": "material_flow_temp_graph", "print cooling": "cool_fan_speed", "retraction amount": "retraction_amount", - "retraction speed": "retraction_speed" + "retraction speed": "retraction_speed", + "support interface density": "support_interface_density" } __unmapped_settings = [ "hardware compatible" ] __material_properties_setting_map = { - "diameter": "material_diameter" + "diameter": "material_diameter", + "adhesion_tendency": "material_adhesion_tendency" } __material_metadata_setting_map = { "GUID": "material_guid" diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index ca424dfd2f..8b8f4fc8d2 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3469,7 +3469,7 @@ "default_value": 0.1, "type": "float", "enabled": "support_enable", - "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance')", + "value": "round(extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'material_adhesion_tendency') / 2 if (layer_height >= 0.2) 1) * layer_height", "limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr", "settable_per_mesh": true }, @@ -3481,7 +3481,7 @@ "minimum_value": "0", "maximum_value_warning": "machine_nozzle_size", "default_value": 0.1, - "value": "extruderValue(support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr, 'support_z_distance') if support_type == 'everywhere' else 0", + "value": "round(extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'material_adhesion_tendency') / 2) * layer_height", "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", "type": "float", "enabled": "support_enable and resolveOrValue('support_type') == 'everywhere'", From 69d6ca986dcf941648198df8fea996d34764a3c1 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 16 Oct 2017 16:48:49 +0200 Subject: [PATCH 061/218] Update FDM printer definition to calculate PSP - CURA-4248 --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 8b8f4fc8d2..1b3d0ac79e 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3469,7 +3469,7 @@ "default_value": 0.1, "type": "float", "enabled": "support_enable", - "value": "round(extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'material_adhesion_tendency') / 2 if (layer_height >= 0.2) 1) * layer_height", + "value": "min(math.ceil(extruderValues('material_adhesion_tendency')) / (2 if (layer_height >= 0.2) else 1)) * layer_height", "limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr", "settable_per_mesh": true }, @@ -3481,7 +3481,7 @@ "minimum_value": "0", "maximum_value_warning": "machine_nozzle_size", "default_value": 0.1, - "value": "round(extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'material_adhesion_tendency') / 2) * layer_height", + "value": "min(math.ceil(extruderValues('material_adhesion_tendency')) / 2) * layer_height", "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", "type": "float", "enabled": "support_enable and resolveOrValue('support_type') == 'everywhere'", From 5f12b5ac6adfd8a172de5c0f699533f11854319d Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 16 Oct 2017 17:13:29 +0200 Subject: [PATCH 062/218] set support interface pattern depending on density - CURA-4248 --- resources/definitions/fdmprinter.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 1b3d0ac79e..d7ea7740c2 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3816,6 +3816,7 @@ "zigzag": "Zig Zag" }, "default_value": "concentric", + "value": "'lines' if support_interface_density < 100 else 'concentric'", "limit_to_extruder": "support_interface_extruder_nr", "enabled": "support_interface_enable and support_enable", "settable_per_mesh": false, From ac2484ea87824348be23667c120078dbad3ccb7d Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 16 Oct 2017 20:21:42 +0200 Subject: [PATCH 063/218] CURA-4457 Add parenthesis in conditional statement --- cura/Settings/QualityAndUserProfilesModel.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/Settings/QualityAndUserProfilesModel.py b/cura/Settings/QualityAndUserProfilesModel.py index 602f8768da..9d7d913d5e 100644 --- a/cura/Settings/QualityAndUserProfilesModel.py +++ b/cura/Settings/QualityAndUserProfilesModel.py @@ -58,8 +58,8 @@ class QualityAndUserProfilesModel(ProfilesModel): # If the printer has multiple extruders then quality changes related to the current extruder are kept filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set and qc.getMetaDataEntry("extruder") is not None and - qc.getMetaDataEntry("extruder") == active_extruder.definition.getMetaDataEntry("quality_definition") or - qc.getMetaDataEntry("extruder") == active_extruder.definition.getId()] + (qc.getMetaDataEntry("extruder") == active_extruder.definition.getMetaDataEntry("quality_definition") or + qc.getMetaDataEntry("extruder") == active_extruder.definition.getId())] else: # If not, the quality changes of the global stack are selected filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set and From 396d960f4a5095ff9a29a498720235776e59d9bb Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 17 Oct 2017 09:30:49 +0200 Subject: [PATCH 064/218] Fix code style CURA-4195 --- cura/CrashHandler.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cura/CrashHandler.py b/cura/CrashHandler.py index 04f04a1c37..ac3a1ad32b 100644 --- a/cura/CrashHandler.py +++ b/cura/CrashHandler.py @@ -44,11 +44,11 @@ fatal_exception_types = [ SystemError, ] + class CrashHandler: crash_url = "https://stats.ultimaker.com/api/cura" def __init__(self, exception_type, value, tb): - self.exception_type = exception_type self.value = value self.traceback = tb @@ -73,7 +73,6 @@ class CrashHandler: ## Creates a modal dialog. def _createDialog(self): - self.dialog = QDialog() self.dialog.setMinimumWidth(640) self.dialog.setMinimumHeight(640) @@ -226,7 +225,6 @@ class CrashHandler: return group - def _userDescriptionWidget(self): group = QGroupBox() group.setTitle(catalog.i18nc("@title:groupbox", "User description")) From 44d53237799e14b02f1ba0240dfc8a03cd7006f8 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 17 Oct 2017 09:38:43 +0200 Subject: [PATCH 065/218] Run crash dialog on Qt thread so the GUI gets updated correctly CURA-4195 --- cura/CrashHandler.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cura/CrashHandler.py b/cura/CrashHandler.py index ac3a1ad32b..a78ecb8a72 100644 --- a/cura/CrashHandler.py +++ b/cura/CrashHandler.py @@ -15,8 +15,9 @@ import urllib.request import urllib.error from PyQt5.QtCore import QT_VERSION_STR, PYQT_VERSION_STR, QCoreApplication -from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLabel, QTextEdit, QGroupBox, QPushButton +from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLabel, QTextEdit, QGroupBox +from UM.Application import Application from UM.Logger import Logger from UM.View.GL.OpenGL import OpenGL from UM.i18n import i18nCatalog @@ -275,5 +276,9 @@ class CrashHandler: os._exit(1) def show(self): + # must run the GUI code on the Qt thread, otherwise the widgets on the dialog won't react correctly. + Application.getInstance().callLater(self._show) + + def _show(self): self.dialog.exec_() - os._exit(1) \ No newline at end of file + os._exit(1) From b9a9ef8823d371dbf12b7c5e709d472eb43364d6 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 16 Oct 2017 20:21:42 +0200 Subject: [PATCH 066/218] CURA-4457 Add parenthesis in conditional statement --- cura/Settings/QualityAndUserProfilesModel.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/Settings/QualityAndUserProfilesModel.py b/cura/Settings/QualityAndUserProfilesModel.py index 602f8768da..9d7d913d5e 100644 --- a/cura/Settings/QualityAndUserProfilesModel.py +++ b/cura/Settings/QualityAndUserProfilesModel.py @@ -58,8 +58,8 @@ class QualityAndUserProfilesModel(ProfilesModel): # If the printer has multiple extruders then quality changes related to the current extruder are kept filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set and qc.getMetaDataEntry("extruder") is not None and - qc.getMetaDataEntry("extruder") == active_extruder.definition.getMetaDataEntry("quality_definition") or - qc.getMetaDataEntry("extruder") == active_extruder.definition.getId()] + (qc.getMetaDataEntry("extruder") == active_extruder.definition.getMetaDataEntry("quality_definition") or + qc.getMetaDataEntry("extruder") == active_extruder.definition.getId())] else: # If not, the quality changes of the global stack are selected filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set and From d426c259d01c34fd26e1d97fe27a4f2dcf14916f Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Tue, 17 Oct 2017 12:39:26 +0200 Subject: [PATCH 067/218] Add material adhesion tendency setting, update support top and bottom distance values - CURA-4248 --- .gitignore | 1 + resources/definitions/fdmprinter.def.json | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 570c932d28..97ee2841f9 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ resources/i18n/en_7S resources/i18n/x-test resources/firmware resources/materials +resources/quality/bam CuraEngine.exe LC_MESSAGES .cache diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index d7ea7740c2..2710c1fb9b 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1850,6 +1850,18 @@ "settable_per_mesh": false, "settable_per_extruder": true }, + "material_adhesion_tendency": + { + "label": "Adhesion Tendency", + "description": "Surface adhesion tendency.", + "unit": "%", + "type": "int", + "default_value": 0, + "minimum_value": 0, + "maximum_value": 100, + "settable_per_mesh": false, + "settable_per_extruder": true + }, "material_flow": { "label": "Flow", @@ -3469,7 +3481,7 @@ "default_value": 0.1, "type": "float", "enabled": "support_enable", - "value": "min(math.ceil(extruderValues('material_adhesion_tendency')) / (2 if (layer_height >= 0.2) else 1)) * layer_height", + "value": "math.ceil(min(extruderValues('material_adhesion_tendency')) / 2 if (layer_height >= 0.2) else 1) * layer_height", "limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr", "settable_per_mesh": true }, @@ -3481,7 +3493,7 @@ "minimum_value": "0", "maximum_value_warning": "machine_nozzle_size", "default_value": 0.1, - "value": "min(math.ceil(extruderValues('material_adhesion_tendency')) / 2) * layer_height", + "value": "math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height", "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", "type": "float", "enabled": "support_enable and resolveOrValue('support_type') == 'everywhere'", From 91589ed29d673e262e2d7cd87b24284b33403204 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Tue, 17 Oct 2017 13:03:29 +0200 Subject: [PATCH 068/218] Add surface energy property to get correct behaviour - CURA-4248 --- plugins/XmlMaterialProfile/XmlMaterialProfile.py | 6 +++--- resources/definitions/fdmprinter.def.json | 13 ++++++++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 607018d88f..10509c5653 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -676,15 +676,15 @@ class XmlMaterialProfile(InstanceContainer): "processing temperature graph": "material_flow_temp_graph", "print cooling": "cool_fan_speed", "retraction amount": "retraction_amount", - "retraction speed": "retraction_speed", - "support interface density": "support_interface_density" + "retraction speed": "retraction_speed" } __unmapped_settings = [ "hardware compatible" ] __material_properties_setting_map = { "diameter": "material_diameter", - "adhesion_tendency": "material_adhesion_tendency" + "adhesion_tendency": "material_adhesion_tendency", + "surface_energy": "material_surface_energy" } __material_metadata_setting_map = { "GUID": "material_guid" diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 2710c1fb9b..4974d481ce 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1854,10 +1854,21 @@ { "label": "Adhesion Tendency", "description": "Surface adhesion tendency.", - "unit": "%", "type": "int", "default_value": 0, "minimum_value": 0, + "maximum_value": 10, + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "material_surface_energy": + { + "label": "Surface Energy", + "description": "Surface energy.", + "unit": "%", + "type": "int", + "default_value": 100, + "minimum_value": 0, "maximum_value": 100, "settable_per_mesh": false, "settable_per_extruder": true From 85f2a7c3853cd3bfcf500897f4849bea997adca3 Mon Sep 17 00:00:00 2001 From: "A.Sasin" Date: Tue, 17 Oct 2017 15:01:49 +0200 Subject: [PATCH 069/218] Added update to for Instance container to re calculate values and validate CURA-4447 --- cura/CuraApplication.py | 14 ++++++++++++++ cura/Settings/MachineManager.py | 11 ++++++----- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 27451c745c..22fbbafab3 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -415,6 +415,20 @@ class CuraApplication(QtApplication): global_stack.getTop().clear() + # if the user decided to keep settings then the user settings should be re-calculated and validated for errors + # before slicing. To ensure that slicer uses right settings values + elif option == "keep": + global_stack = self.getGlobalContainerStack() + for extruder in ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()): + user_extruder_container = extruder.getTop() + + if user_extruder_container: + user_extruder_container.update() + + user_global_container = global_stack.getTop() + if user_global_container: + user_global_container.update() + @pyqtSlot(int) def messageBoxClosed(self, button): if self._message_box_callback: diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 563965915a..e89e11898c 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -854,17 +854,18 @@ class MachineManager(QObject): self._replaceQualityOrQualityChangesInStack(stack, stack_quality, postpone_emit=True) self._replaceQualityOrQualityChangesInStack(stack, stack_quality_changes, postpone_emit=True) - # Send emits that are postponed in replaceContainer. - # Here the stacks are finished replacing and every value can be resolved based on the current state. - for setting_info in new_quality_settings_list: - setting_info["stack"].sendPostponedEmits() - # Connect to onQualityNameChanged for stack in name_changed_connect_stacks: stack.nameChanged.connect(self._onQualityNameChanged) if self.hasUserSettings and Preferences.getInstance().getValue("cura/active_mode") == 1: self._askUserToKeepOrClearCurrentSettings() + else: + # If the user doesn't have any of adjusted settings then slicing will be triggered by emit() + # Send emits that are postponed in replaceContainer. + # Here the stacks are finished replacing and every value can be resolved based on the current state. + for setting_info in new_quality_settings_list: + setting_info["stack"].sendPostponedEmits() self.activeQualityChanged.emit() From 4d0c0f606e50c045b92ee8bb2fd5e87dd96fda06 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Tue, 17 Oct 2017 16:44:27 +0200 Subject: [PATCH 070/218] Use new version for downloading plugins --- plugins/PluginBrowser/PluginBrowser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PluginBrowser/PluginBrowser.py b/plugins/PluginBrowser/PluginBrowser.py index 0037d4bc59..37ad128b49 100644 --- a/plugins/PluginBrowser/PluginBrowser.py +++ b/plugins/PluginBrowser/PluginBrowser.py @@ -26,7 +26,7 @@ class PluginBrowser(QObject, Extension): def __init__(self, parent=None): super().__init__(parent) - self._api_version = 1 + self._api_version = 2 self._api_url = "http://software.ultimaker.com/cura/v%s/" % self._api_version self._plugin_list_request = None From 4b6f04604cfbc0da256a6795c58d67c351c68d8a Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Tue, 17 Oct 2017 17:21:40 +0200 Subject: [PATCH 071/218] Set values for support interface density and pattern depending on BAM settings - CURA-4248 --- resources/definitions/fdmprinter.def.json | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 4974d481ce..d4ae66ed06 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1855,9 +1855,9 @@ "label": "Adhesion Tendency", "description": "Surface adhesion tendency.", "type": "int", - "default_value": 0, - "minimum_value": 0, - "maximum_value": 10, + "default_value": 10, + "minimum_value": "0", + "maximum_value": "10", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -1868,8 +1868,8 @@ "unit": "%", "type": "int", "default_value": 100, - "minimum_value": 0, - "maximum_value": 100, + "minimum_value": "0", + "maximum_value": "100", "settable_per_mesh": false, "settable_per_extruder": true }, @@ -3748,6 +3748,7 @@ "unit": "%", "type": "float", "default_value": 100, + "value": "min(extruderValues('material_surface_energy'))", "minimum_value": "0", "maximum_value_warning": "100", "limit_to_extruder": "support_interface_extruder_nr", @@ -3839,7 +3840,7 @@ "zigzag": "Zig Zag" }, "default_value": "concentric", - "value": "'lines' if support_interface_density < 100 else 'concentric'", + "value": "'lines' if support_interface_density < 100 and extruderValue(support_interface_extruder_nr, 'material_adhesion_tendency') < 10 else 'concentric'", "limit_to_extruder": "support_interface_extruder_nr", "enabled": "support_interface_enable and support_enable", "settable_per_mesh": false, From e897431c959491a8cf27fbf275bd2bcabdb15d01 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 18 Oct 2017 13:03:33 +0200 Subject: [PATCH 072/218] Fix default quality level for Creality CR-10 printers Instead of having a default layer height of 0.2mm, we change the default quality profile to be the one with a layer height of 0.2mm. This fixes up the quality slider. --- resources/definitions/creality_cr10.def.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/resources/definitions/creality_cr10.def.json b/resources/definitions/creality_cr10.def.json index b570a0d3e6..ced6f32b7b 100644 --- a/resources/definitions/creality_cr10.def.json +++ b/resources/definitions/creality_cr10.def.json @@ -7,7 +7,8 @@ "visible": true, "author": "Michael Wildermuth", "manufacturer": "Creality3D", - "file_formats": "text/x-gcode" + "file_formats": "text/x-gcode", + "preferred_quality": "*Draft*" }, "overrides": { "machine_width": { @@ -25,9 +26,6 @@ "machine_nozzle_size": { "default_value": 0.4 }, - "layer_height": { - "default_value": 0.2 - }, "layer_height_0": { "default_value": 0.2 }, From 78ba3c3aa0c130cc8d39205e468f8ca85794c411 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 18 Oct 2017 13:51:06 +0200 Subject: [PATCH 073/218] Move BAM equations to BAM quality profiles as they are very specific - CURA-4248 --- plugins/XmlMaterialProfile/XmlMaterialProfile.py | 8 ++++---- resources/definitions/fdmprinter.def.json | 6 ++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 10509c5653..de3b3fb71f 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -676,15 +676,15 @@ class XmlMaterialProfile(InstanceContainer): "processing temperature graph": "material_flow_temp_graph", "print cooling": "cool_fan_speed", "retraction amount": "retraction_amount", - "retraction speed": "retraction_speed" + "retraction speed": "retraction_speed", + "adhesion tendency": "material_adhesion_tendency", + "surface energy": "material_surface_energy" } __unmapped_settings = [ "hardware compatible" ] __material_properties_setting_map = { - "diameter": "material_diameter", - "adhesion_tendency": "material_adhesion_tendency", - "surface_energy": "material_surface_energy" + "diameter": "material_diameter" } __material_metadata_setting_map = { "GUID": "material_guid" diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index d4ae66ed06..e2176a8009 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3492,7 +3492,7 @@ "default_value": 0.1, "type": "float", "enabled": "support_enable", - "value": "math.ceil(min(extruderValues('material_adhesion_tendency')) / 2 if (layer_height >= 0.2) else 1) * layer_height", + "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance')", "limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr", "settable_per_mesh": true }, @@ -3504,7 +3504,7 @@ "minimum_value": "0", "maximum_value_warning": "machine_nozzle_size", "default_value": 0.1, - "value": "math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height", + "value": "extruderValue(support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr, 'support_z_distance') if support_type == 'everywhere' else 0", "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", "type": "float", "enabled": "support_enable and resolveOrValue('support_type') == 'everywhere'", @@ -3748,7 +3748,6 @@ "unit": "%", "type": "float", "default_value": 100, - "value": "min(extruderValues('material_surface_energy'))", "minimum_value": "0", "maximum_value_warning": "100", "limit_to_extruder": "support_interface_extruder_nr", @@ -3840,7 +3839,6 @@ "zigzag": "Zig Zag" }, "default_value": "concentric", - "value": "'lines' if support_interface_density < 100 and extruderValue(support_interface_extruder_nr, 'material_adhesion_tendency') < 10 else 'concentric'", "limit_to_extruder": "support_interface_extruder_nr", "enabled": "support_interface_enable and support_enable", "settable_per_mesh": false, From 5580f7ecbba0db25f91719958c1fa228fd24ea3a Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 18 Oct 2017 14:08:09 +0200 Subject: [PATCH 074/218] Add BAM quality profiles --- .../um3_aa0.4_BAM_Draft_Print.inst.cfg | 32 +++++++++++++++++++ .../um3_aa0.4_BAM_Fast_Print.inst.cfg | 32 +++++++++++++++++++ .../um3_aa0.4_BAM_Normal_Quality.inst.cfg | 30 +++++++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg new file mode 100644 index 0000000000..2be3c0fdbc --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg @@ -0,0 +1,32 @@ +[general] +version = 2 +name = Fast +definition = ultimaker3 + +[metadata] +type = quality +quality_type = draft +material = generic_bam_ultimaker3_AA_0.4 +weight = -2 +setting_version = 3 + +[values] +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_fan_speed_max = =cool_fan_speed +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =230 +material_standby_temperature = 100 +prime_tower_enable = False +skin_overlap = 20 +speed_layer_0 = 20 +speed_topbottom = =math.ceil(speed_print * 35 / 70) +speed_wall = =math.ceil(speed_print * 50 / 70) +speed_wall_0 = =math.ceil(speed_wall * 35 / 50) +top_bottom_thickness = 1 +wall_thickness = 1 +support_interface_enable = True +support_interface_density = =min(extruderValues('material_surface_energy')) +support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' +support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2 if (layer_height >= 0.2) else 1) * layer_height +support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg new file mode 100644 index 0000000000..d8cefa0bcd --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg @@ -0,0 +1,32 @@ +[general] +version = 2 +name = Normal +definition = ultimaker3 + +[metadata] +type = quality +quality_type = fast +material = generic_bam_ultimaker3_AA_0.4 +weight = -1 +setting_version = 3 + +[values] +default_material_print_temperature = 225 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_fan_speed_max = =cool_fan_speed +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_standby_temperature = 100 +prime_tower_enable = False +speed_print = 80 +speed_layer_0 = 20 +speed_topbottom = =math.ceil(speed_print * 30 / 80) +speed_wall = =math.ceil(speed_print * 40 / 80) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) +top_bottom_thickness = 1 +wall_thickness = 1 +support_interface_enable = True +support_interface_density = =min(extruderValues('material_surface_energy')) +support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' +support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2 if (layer_height >= 0.2) else 1) * layer_height +support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..9b967121e1 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg @@ -0,0 +1,30 @@ +[general] +version = 2 +name = Fine +definition = ultimaker3 + +[metadata] +type = quality +quality_type = normal +material = generic_bam_ultimaker3_AA_0.4 +weight = 0 +setting_version = 3 + +[values] +default_material_print_temperature = 225 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_fan_speed_max = =cool_fan_speed +cool_min_speed = 7 +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_standby_temperature = 100 +prime_tower_enable = False +skin_overlap = 10 +speed_layer_0 = 20 +top_bottom_thickness = 1 +wall_thickness = 1 +support_interface_enable = True +support_interface_density = =min(extruderValues('material_surface_energy')) +support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' +support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2 if (layer_height >= 0.2) else 1) * layer_height +support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height From 49af7a56433d2fca19dce6b713842c0927267bc7 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 18 Oct 2017 14:18:29 +0200 Subject: [PATCH 075/218] Update BAM qualities - CURA-4248 --- .../quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg | 6 +++--- .../quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg | 2 +- .../ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg index 2be3c0fdbc..ed3ed15e91 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker3 type = quality quality_type = draft material = generic_bam_ultimaker3_AA_0.4 -weight = -2 +weight = -1 setting_version = 3 [values] @@ -28,5 +28,5 @@ wall_thickness = 1 support_interface_enable = True support_interface_density = =min(extruderValues('material_surface_energy')) support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' -support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2 if (layer_height >= 0.2) else 1) * layer_height -support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height \ No newline at end of file +support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height +support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg index d8cefa0bcd..f002f276c3 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg @@ -28,5 +28,5 @@ wall_thickness = 1 support_interface_enable = True support_interface_density = =min(extruderValues('material_surface_energy')) support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' -support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2 if (layer_height >= 0.2) else 1) * layer_height +support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg index 9b967121e1..3804ccb873 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg @@ -26,5 +26,5 @@ wall_thickness = 1 support_interface_enable = True support_interface_density = =min(extruderValues('material_surface_energy')) support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' -support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2 if (layer_height >= 0.2) else 1) * layer_height +support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height From 7d582085072ef30ca183d7aee3d023e9cb56a4d2 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 18 Oct 2017 14:19:11 +0200 Subject: [PATCH 076/218] Fix BAM draft quality weight - CURA-4248 --- resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg index ed3ed15e91..9d2b603d08 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker3 type = quality quality_type = draft material = generic_bam_ultimaker3_AA_0.4 -weight = -1 +weight = -2 setting_version = 3 [values] From f07c5ab470027fcade4a8a4f1d3e7f9fe2cf0166 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 18 Oct 2017 14:31:03 +0200 Subject: [PATCH 077/218] remove unused ignore --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 97ee2841f9..570c932d28 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,6 @@ resources/i18n/en_7S resources/i18n/x-test resources/firmware resources/materials -resources/quality/bam CuraEngine.exe LC_MESSAGES .cache From b2dbefc82340a3061c8925f6fdb8cdd094147407 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 18 Oct 2017 15:44:02 +0200 Subject: [PATCH 078/218] Update helper text for custom changes in recommended settings - CURA-4333 --- resources/qml/SidebarSimple.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index a68e2171f9..1205d8cf5c 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -366,7 +366,7 @@ Item } onEntered: { - var content = catalog.i18nc("@tooltip","You have selected a custom profile. If you want to change it, go to custom mode.") + var content = catalog.i18nc("@tooltip","You have modified some profile settings. If you want to change these go to custom mode.") base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("sidebar_margin").width, customisedSettings.height), content) } onExited: base.hideTooltip() From 3ddb277477086e2a66376f4b36462e0a4e195615 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 18 Oct 2017 16:01:14 +0200 Subject: [PATCH 079/218] Remove double sidebar header item, fixes #2605 --- resources/qml/SidebarHeader.qml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index aa0f8a3f38..8061d7fc7c 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -34,20 +34,6 @@ Column width: height } - Item - { - anchors - { - left: parent.left - leftMargin: UM.Theme.getSize("sidebar_margin").width - right: parent.right - rightMargin: UM.Theme.getSize("sidebar_margin").width - } - visible: extruderSelectionRow.visible - height: UM.Theme.getSize("default_lining").hieght - width: height - } - Item { id: extruderSelectionRow From d735921d42aa9ee1fdc6a5c8f31e5aae89bbdfc4 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 19 Oct 2017 08:32:26 +0200 Subject: [PATCH 080/218] Take into account the keep/discard interaction when emitting signals CURA-4248 When user switches to a different profile, the keep/discard dialog can show up. Don't emit signals immediately if this interaction takes place because it will trigger an unnecessary slice. --- cura/CuraApplication.py | 6 ++++-- cura/Settings/MachineManager.py | 10 +++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 22fbbafab3..4b4f743a77 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -393,6 +393,7 @@ class CuraApplication(QtApplication): showDiscardOrKeepProfileChanges = pyqtSignal() def discardOrKeepProfileChanges(self): + has_user_interaction = False choice = Preferences.getInstance().getValue("cura/choice_on_profile_override") if choice == "always_discard": # don't show dialog and DISCARD the profile @@ -403,11 +404,12 @@ class CuraApplication(QtApplication): else: # ALWAYS ask whether to keep or discard the profile self.showDiscardOrKeepProfileChanges.emit() - - #sidebarSimpleDiscardOrKeepProfileChanges = pyqtSignal() + has_user_interaction = True + return has_user_interaction @pyqtSlot(str) def discardOrKeepProfileChangesClosed(self, option): + self.getMachineManager().activeQualityChanged.emit() if option == "discard": global_stack = self.getGlobalContainerStack() for extruder in ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()): diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index e89e11898c..0db07485aa 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -858,8 +858,10 @@ class MachineManager(QObject): for stack in name_changed_connect_stacks: stack.nameChanged.connect(self._onQualityNameChanged) + has_user_interaction = False if self.hasUserSettings and Preferences.getInstance().getValue("cura/active_mode") == 1: - self._askUserToKeepOrClearCurrentSettings() + # Show the keep/discard user settings dialog + has_user_interaction = Application.getInstance().discardOrKeepProfileChanges() else: # If the user doesn't have any of adjusted settings then slicing will be triggered by emit() # Send emits that are postponed in replaceContainer. @@ -867,7 +869,8 @@ class MachineManager(QObject): for setting_info in new_quality_settings_list: setting_info["stack"].sendPostponedEmits() - self.activeQualityChanged.emit() + if not has_user_interaction: + self.activeQualityChanged.emit() ## Determine the quality and quality changes settings for the current machine for a quality name. # @@ -986,9 +989,6 @@ class MachineManager(QObject): stack.qualityChanges.nameChanged.connect(self._onQualityNameChanged) self._onQualityNameChanged() - def _askUserToKeepOrClearCurrentSettings(self): - Application.getInstance().discardOrKeepProfileChanges() - @pyqtProperty(str, notify = activeVariantChanged) def activeVariantName(self) -> str: if self._active_container_stack: From 5a8fa92c3fa2d504f8eabeeb49ea24b004404b75 Mon Sep 17 00:00:00 2001 From: "A.Sasin" Date: Thu, 19 Oct 2017 09:01:15 +0200 Subject: [PATCH 081/218] Added semicolon CURA-4449 --- cura.desktop.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura.desktop.in b/cura.desktop.in index 2d823f01a0..778e1d5033 100644 --- a/cura.desktop.in +++ b/cura.desktop.in @@ -10,6 +10,6 @@ TryExec=@CMAKE_INSTALL_FULL_BINDIR@/cura Icon=cura-icon Terminal=false Type=Application -MimeType=application/sla;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;image/bmp;image/gif;image/jpeg;image/png;model/x3d+xml +MimeType=application/sla;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;image/bmp;image/gif;image/jpeg;image/png;model/x3d+xml; Categories=Graphics; Keywords=3D;Printing; From 475f6223d47719af15f428a37bdde270aa02b80c Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 19 Oct 2017 10:24:24 +0200 Subject: [PATCH 082/218] Remove executable bit for json files --- resources/definitions/dagoma_discoeasy200.def.json | 0 resources/definitions/fdmprinter.def.json | 0 resources/definitions/helloBEEprusa.def.json | 0 3 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 resources/definitions/dagoma_discoeasy200.def.json mode change 100755 => 100644 resources/definitions/fdmprinter.def.json mode change 100755 => 100644 resources/definitions/helloBEEprusa.def.json diff --git a/resources/definitions/dagoma_discoeasy200.def.json b/resources/definitions/dagoma_discoeasy200.def.json old mode 100755 new mode 100644 diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json old mode 100755 new mode 100644 diff --git a/resources/definitions/helloBEEprusa.def.json b/resources/definitions/helloBEEprusa.def.json old mode 100755 new mode 100644 From 946b8ae92d53923ecd720b15a4667bb7532df8be Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 19 Oct 2017 10:25:19 +0200 Subject: [PATCH 083/218] Remove executable bit for non-executable files --- resources/extruders/hBp_extruder_left.def.json | 0 resources/extruders/hBp_extruder_right.def.json | 0 resources/meshes/BEEVERYCREATIVE-helloBEEprusa.stl | Bin resources/qml/Actions.qml | 0 resources/qml/Cura.qml | 0 resources/qml/Menus/ContextMenu.qml | 0 resources/qml/Preferences/GeneralPage.qml | 0 resources/qml/Sidebar.qml | 0 8 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 resources/extruders/hBp_extruder_left.def.json mode change 100755 => 100644 resources/extruders/hBp_extruder_right.def.json mode change 100755 => 100644 resources/meshes/BEEVERYCREATIVE-helloBEEprusa.stl mode change 100755 => 100644 resources/qml/Actions.qml mode change 100755 => 100644 resources/qml/Cura.qml mode change 100755 => 100644 resources/qml/Menus/ContextMenu.qml mode change 100755 => 100644 resources/qml/Preferences/GeneralPage.qml mode change 100755 => 100644 resources/qml/Sidebar.qml diff --git a/resources/extruders/hBp_extruder_left.def.json b/resources/extruders/hBp_extruder_left.def.json old mode 100755 new mode 100644 diff --git a/resources/extruders/hBp_extruder_right.def.json b/resources/extruders/hBp_extruder_right.def.json old mode 100755 new mode 100644 diff --git a/resources/meshes/BEEVERYCREATIVE-helloBEEprusa.stl b/resources/meshes/BEEVERYCREATIVE-helloBEEprusa.stl old mode 100755 new mode 100644 diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml old mode 100755 new mode 100644 diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml old mode 100755 new mode 100644 diff --git a/resources/qml/Menus/ContextMenu.qml b/resources/qml/Menus/ContextMenu.qml old mode 100755 new mode 100644 diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml old mode 100755 new mode 100644 diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml old mode 100755 new mode 100644 From 5a125aa514e5891b03f6db10bc52904d710c5bbf Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 19 Oct 2017 13:37:45 +0200 Subject: [PATCH 084/218] Rename printCoreRow to variantRow Because on only one of our printers it's actually a print core. Internally we've always called it the variant. --- resources/qml/SidebarHeader.qml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index 8061d7fc7c..f3887e2885 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -277,10 +277,10 @@ Column } } - // Print core row + //Variant row Item { - id: printCoreRow + id: variantRow height: UM.Theme.getSize("sidebar_setup").height visible: Cura.MachineManager.hasVariants && !sidebar.monitoringPrint && !sidebar.hideSettings @@ -294,7 +294,7 @@ Column Label { - id: printCoreLabel + id: variantLabel text: Cura.MachineManager.activeDefinitionVariantsName; width: Math.floor(parent.width * 0.45 - UM.Theme.getSize("default_margin").width) font: UM.Theme.getFont("default"); @@ -302,7 +302,7 @@ Column } ToolButton { - id: printCoreSelection + id: variantSelection text: Cura.MachineManager.activeVariantName tooltip: Cura.MachineManager.activeVariantName; visible: Cura.MachineManager.hasVariants From 0e74f9d8818397aff865548aac7fb7e13205cc37 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 19 Oct 2017 13:54:10 +0200 Subject: [PATCH 085/218] CURA-4248 - Fix some mistakes in the formulas in quality profiles --- resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg | 2 +- .../quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg index 9d2b603d08..9721a87270 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg @@ -28,5 +28,5 @@ wall_thickness = 1 support_interface_enable = True support_interface_density = =min(extruderValues('material_surface_energy')) support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' -support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height +support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg index 3804ccb873..2d2416078f 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg @@ -26,5 +26,5 @@ wall_thickness = 1 support_interface_enable = True support_interface_density = =min(extruderValues('material_surface_energy')) support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' -support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height +support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height From e9336b9b9e995f80190652ec00767f3d8f4b4e20 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 19 Oct 2017 14:39:32 +0200 Subject: [PATCH 086/218] Small cleanups for discard or keep behavior - CURA-4447 --- cura/CuraApplication.py | 6 +++--- cura/Settings/MachineManager.py | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 4b4f743a77..ce09346a34 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -409,12 +409,10 @@ class CuraApplication(QtApplication): @pyqtSlot(str) def discardOrKeepProfileChangesClosed(self, option): - self.getMachineManager().activeQualityChanged.emit() if option == "discard": global_stack = self.getGlobalContainerStack() for extruder in ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()): extruder.getTop().clear() - global_stack.getTop().clear() # if the user decided to keep settings then the user settings should be re-calculated and validated for errors @@ -423,7 +421,6 @@ class CuraApplication(QtApplication): global_stack = self.getGlobalContainerStack() for extruder in ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()): user_extruder_container = extruder.getTop() - if user_extruder_container: user_extruder_container.update() @@ -431,6 +428,9 @@ class CuraApplication(QtApplication): if user_global_container: user_global_container.update() + # notify listeners that quality has changed (after user selected discard or keep) + self.getMachineManager().activeQualityChanged.emit() + @pyqtSlot(int) def messageBoxClosed(self, button): if self._message_box_callback: diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 0db07485aa..6438453043 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -815,6 +815,7 @@ class MachineManager(QObject): # \param quality_id The quality_id of either a quality or a quality_changes @pyqtSlot(str) def setActiveQuality(self, quality_id: str): + print("set active quality") with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue): self.blurSettings.emit() @@ -858,10 +859,9 @@ class MachineManager(QObject): for stack in name_changed_connect_stacks: stack.nameChanged.connect(self._onQualityNameChanged) - has_user_interaction = False if self.hasUserSettings and Preferences.getInstance().getValue("cura/active_mode") == 1: # Show the keep/discard user settings dialog - has_user_interaction = Application.getInstance().discardOrKeepProfileChanges() + Application.getInstance().discardOrKeepProfileChanges() else: # If the user doesn't have any of adjusted settings then slicing will be triggered by emit() # Send emits that are postponed in replaceContainer. @@ -869,7 +869,6 @@ class MachineManager(QObject): for setting_info in new_quality_settings_list: setting_info["stack"].sendPostponedEmits() - if not has_user_interaction: self.activeQualityChanged.emit() ## Determine the quality and quality changes settings for the current machine for a quality name. From 70cf86c65b42b2fe22540cf5b0a0053081267e10 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 19 Oct 2017 14:40:56 +0200 Subject: [PATCH 087/218] Remove debug print - CURA-4447 --- cura/Settings/MachineManager.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 6438453043..442c61d9ce 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -815,7 +815,6 @@ class MachineManager(QObject): # \param quality_id The quality_id of either a quality or a quality_changes @pyqtSlot(str) def setActiveQuality(self, quality_id: str): - print("set active quality") with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue): self.blurSettings.emit() From 3354f58ddbac08958e44c4cf971da58f0add40b5 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 19 Oct 2017 15:14:28 +0200 Subject: [PATCH 088/218] Remove BAM qualities --- .../um3_aa0.4_BAM_Draft_Print.inst.cfg | 32 ------------------- .../um3_aa0.4_BAM_Fast_Print.inst.cfg | 32 ------------------- .../um3_aa0.4_BAM_Normal_Quality.inst.cfg | 30 ----------------- 3 files changed, 94 deletions(-) delete mode 100644 resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg deleted file mode 100644 index 9721a87270..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg +++ /dev/null @@ -1,32 +0,0 @@ -[general] -version = 2 -name = Fast -definition = ultimaker3 - -[metadata] -type = quality -quality_type = draft -material = generic_bam_ultimaker3_AA_0.4 -weight = -2 -setting_version = 3 - -[values] -cool_fan_full_at_height = =layer_height_0 + 2 * layer_height -cool_fan_speed_max = =cool_fan_speed -machine_nozzle_cool_down_speed = 0.75 -machine_nozzle_heat_up_speed = 1.6 -material_print_temperature = =230 -material_standby_temperature = 100 -prime_tower_enable = False -skin_overlap = 20 -speed_layer_0 = 20 -speed_topbottom = =math.ceil(speed_print * 35 / 70) -speed_wall = =math.ceil(speed_print * 50 / 70) -speed_wall_0 = =math.ceil(speed_wall * 35 / 50) -top_bottom_thickness = 1 -wall_thickness = 1 -support_interface_enable = True -support_interface_density = =min(extruderValues('material_surface_energy')) -support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' -support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height -support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg deleted file mode 100644 index f002f276c3..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg +++ /dev/null @@ -1,32 +0,0 @@ -[general] -version = 2 -name = Normal -definition = ultimaker3 - -[metadata] -type = quality -quality_type = fast -material = generic_bam_ultimaker3_AA_0.4 -weight = -1 -setting_version = 3 - -[values] -default_material_print_temperature = 225 -cool_fan_full_at_height = =layer_height_0 + 2 * layer_height -cool_fan_speed_max = =cool_fan_speed -machine_nozzle_cool_down_speed = 0.75 -machine_nozzle_heat_up_speed = 1.6 -material_standby_temperature = 100 -prime_tower_enable = False -speed_print = 80 -speed_layer_0 = 20 -speed_topbottom = =math.ceil(speed_print * 30 / 80) -speed_wall = =math.ceil(speed_print * 40 / 80) -speed_wall_0 = =math.ceil(speed_wall * 30 / 40) -top_bottom_thickness = 1 -wall_thickness = 1 -support_interface_enable = True -support_interface_density = =min(extruderValues('material_surface_energy')) -support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' -support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height -support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg deleted file mode 100644 index 2d2416078f..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg +++ /dev/null @@ -1,30 +0,0 @@ -[general] -version = 2 -name = Fine -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_bam_ultimaker3_AA_0.4 -weight = 0 -setting_version = 3 - -[values] -default_material_print_temperature = 225 -cool_fan_full_at_height = =layer_height_0 + 2 * layer_height -cool_fan_speed_max = =cool_fan_speed -cool_min_speed = 7 -machine_nozzle_cool_down_speed = 0.75 -machine_nozzle_heat_up_speed = 1.6 -material_standby_temperature = 100 -prime_tower_enable = False -skin_overlap = 10 -speed_layer_0 = 20 -top_bottom_thickness = 1 -wall_thickness = 1 -support_interface_enable = True -support_interface_density = =min(extruderValues('material_surface_energy')) -support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' -support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height -support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height From 30281f17f323c37aa56cd81118e91773ebf4a7b3 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 19 Oct 2017 17:03:31 +0200 Subject: [PATCH 089/218] Add simple mode settings flag for user created profile - CURA-4466 --- cura/Settings/SimpleModeSettingsManager.py | 29 +++++++++++++++++++++- resources/qml/SidebarSimple.qml | 2 +- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/cura/Settings/SimpleModeSettingsManager.py b/cura/Settings/SimpleModeSettingsManager.py index 51aeb74d87..549f6b7b4e 100644 --- a/cura/Settings/SimpleModeSettingsManager.py +++ b/cura/Settings/SimpleModeSettingsManager.py @@ -12,11 +12,14 @@ class SimpleModeSettingsManager(QObject): super().__init__(parent) self._machine_manager = Application.getInstance().getMachineManager() - self._is_profile_customized = False + self._is_profile_customized = False # True when default profile has user changes + self._is_profile_user_created = False # True when profile was custom created by user self._machine_manager.activeStackValueChanged.connect(self._updateIsProfileCustomized) + self._machine_manager.activeStackValueChanged.connect(self._updateIsProfileUserCreated) isProfileCustomizedChanged = pyqtSignal() + isProfileUserCreated = pyqtSignal() @pyqtProperty(bool, notify = isProfileCustomizedChanged) def isProfileCustomized(self): @@ -32,11 +35,13 @@ class SimpleModeSettingsManager(QObject): # check user settings in the global stack user_setting_keys.update(set(global_stack.userChanges.getAllKeys())) + # check user settings in the extruder stacks if global_stack.extruders: for extruder_stack in global_stack.extruders.values(): user_setting_keys.update(set(extruder_stack.userChanges.getAllKeys())) + # remove settings that are visible in recommended (we don't show the reset button for those) for skip_key in self.__ignored_custom_setting_keys: if skip_key in user_setting_keys: user_setting_keys.remove(skip_key) @@ -47,6 +52,28 @@ class SimpleModeSettingsManager(QObject): self._is_profile_customized = has_customized_user_settings self.isProfileCustomizedChanged.emit() + @pyqtProperty(bool, notify = isProfileUserCreated) + def isProfileUserCreated(self): + return self._is_profile_user_created + + def _updateIsProfileUserCreated(self): + if not self._machine_manager.activeMachine: + return False + + global_stack = self._machine_manager.activeMachine + + # get all keys present in the quality changes container + quality_changes_keys = global_stack.qualityChanges.getAllKeys() + + # check if the qualityChanges container is not empty (meaning there are user changes) + is_profile_user_created = len(quality_changes_keys) > 0 + + print("is_user_created_profile", global_stack.qualityChanges.getName(), is_profile_user_created) + + if is_profile_user_created != self._is_profile_user_created: + self._is_profile_user_created = is_profile_user_created + self.isProfileUserCreated.emit() + # These are the settings included in the Simple ("Recommended") Mode, so only when the other settings have been # changed, we consider it as a user customized profile in the Simple ("Recommended") Mode. __ignored_custom_setting_keys = ["support_enable", diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 1205d8cf5c..6091d04b72 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -291,7 +291,7 @@ Item implicitWidth: 10 * screenScaleFactor implicitHeight: implicitWidth radius: implicitWidth / 2 - visible: !Cura.SimpleModeSettingsManager.isProfileCustomized; + visible: !Cura.SimpleModeSettingsManager.isProfileCustomized && !Cura.SimpleModeSettingsManager.isProfileUserCreated } } } From 4650a123244c980f1e0f3c0348ed46ef75d15ad2 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Sat, 7 Oct 2017 14:15:08 +0200 Subject: [PATCH 090/218] slicing mode --- resources/definitions/fdmprinter.def.json | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index ca424dfd2f..39c469c7b1 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -643,6 +643,20 @@ "settable_per_mesh": false, "settable_per_extruder": false }, + "slicing_mode": + { + "label": "Slicing Mode", + "description": "How to slice layers with diagonal surfaces. The areas of a layer can be generated based on where the middle of the layer intersects the surface (Middle). Alternatively each layer can have the areas which fall inside of the volume throughout the height of the layer (Exclusive) or a layer has the areas which fall inside anywhere within the layer (Inclusive). Exclusive retains the most details, Inclusive makes for the best fit and Middle takes the least time to process.", + "type": "enum", + "options": + { + "middle": "Middle", + "exclusive": "Exclusive", + "inclusive": "Inclusive" + }, + "default_value": "middle", + "settable_per_mesh": true + }, "line_width": { "label": "Line Width", From 823d11f0e1467acfd5bd6caf2e420b345c8a03dc Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Wed, 18 Oct 2017 17:30:14 +0200 Subject: [PATCH 091/218] rename slicing mode ==> slicing tolerance --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 39c469c7b1..cd6385da50 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -643,9 +643,9 @@ "settable_per_mesh": false, "settable_per_extruder": false }, - "slicing_mode": + "slicing_tolerance": { - "label": "Slicing Mode", + "label": "Slicing Tolerance", "description": "How to slice layers with diagonal surfaces. The areas of a layer can be generated based on where the middle of the layer intersects the surface (Middle). Alternatively each layer can have the areas which fall inside of the volume throughout the height of the layer (Exclusive) or a layer has the areas which fall inside anywhere within the layer (Inclusive). Exclusive retains the most details, Inclusive makes for the best fit and Middle takes the least time to process.", "type": "enum", "options": From be046117c452040f8e5db860862b02e553ea2029 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 19 Oct 2017 18:00:03 +0200 Subject: [PATCH 092/218] Sidable quality slider handle when switching to user created profile - CURA-4466 --- cura/Settings/SimpleModeSettingsManager.py | 27 +++++++++++++--------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/cura/Settings/SimpleModeSettingsManager.py b/cura/Settings/SimpleModeSettingsManager.py index 549f6b7b4e..9a66eb36a5 100644 --- a/cura/Settings/SimpleModeSettingsManager.py +++ b/cura/Settings/SimpleModeSettingsManager.py @@ -16,10 +16,10 @@ class SimpleModeSettingsManager(QObject): self._is_profile_user_created = False # True when profile was custom created by user self._machine_manager.activeStackValueChanged.connect(self._updateIsProfileCustomized) - self._machine_manager.activeStackValueChanged.connect(self._updateIsProfileUserCreated) + self._machine_manager.activeQualityChanged.connect(self._updateIsProfileUserCreated) isProfileCustomizedChanged = pyqtSignal() - isProfileUserCreated = pyqtSignal() + isProfileUserCreatedChanged = pyqtSignal() @pyqtProperty(bool, notify = isProfileCustomizedChanged) def isProfileCustomized(self): @@ -52,27 +52,32 @@ class SimpleModeSettingsManager(QObject): self._is_profile_customized = has_customized_user_settings self.isProfileCustomizedChanged.emit() - @pyqtProperty(bool, notify = isProfileUserCreated) + @pyqtProperty(bool, notify = isProfileUserCreatedChanged) def isProfileUserCreated(self): return self._is_profile_user_created def _updateIsProfileUserCreated(self): + quality_changes_keys = set() + if not self._machine_manager.activeMachine: return False global_stack = self._machine_manager.activeMachine - # get all keys present in the quality changes container - quality_changes_keys = global_stack.qualityChanges.getAllKeys() + # check quality changes settings in the global stack + quality_changes_keys.update(set(global_stack.qualityChanges.getAllKeys())) - # check if the qualityChanges container is not empty (meaning there are user changes) - is_profile_user_created = len(quality_changes_keys) > 0 + # check quality changes settings in the extruder stacks + if global_stack.extruders: + for extruder_stack in global_stack.extruders.values(): + quality_changes_keys.update(set(extruder_stack.qualityChanges.getAllKeys())) - print("is_user_created_profile", global_stack.qualityChanges.getName(), is_profile_user_created) + # check if the qualityChanges container is not empty (meaning it is a user created profile) + has_quality_changes = len(quality_changes_keys) > 0 - if is_profile_user_created != self._is_profile_user_created: - self._is_profile_user_created = is_profile_user_created - self.isProfileUserCreated.emit() + if has_quality_changes != self._is_profile_user_created: + self._is_profile_user_created = has_quality_changes + self.isProfileUserCreatedChanged.emit() # These are the settings included in the Simple ("Recommended") Mode, so only when the other settings have been # changed, we consider it as a user customized profile in the Simple ("Recommended") Mode. From d2d28fbdfb638de4841d13a178d1577071a16eed Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 19 Oct 2017 20:49:11 +0200 Subject: [PATCH 093/218] CURA-4470 Fix quality slider not selecting correct quality profile Compare selected quality by quality_type instead of id when loading a project file from older versions of Cura. --- resources/qml/SidebarSimple.qml | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 6091d04b72..851ec6196b 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -89,14 +89,14 @@ Item var availableMin = -1 var availableMax = -1 - for (var i = 0; i <= Cura.ProfilesModel.rowCount(); i++) { + for (var i = 0; i < Cura.ProfilesModel.rowCount(); i++) { var qualityItem = Cura.ProfilesModel.getItem(i) // Add each quality item to the UI quality model qualityModel.append(qualityItem) // Set selected value - if (Cura.MachineManager.activeQualityId == qualityItem.id) { + if (Cura.MachineManager.activeQualityType == qualityItem.metadata.quality_type) { qualityModel.activeQualityIndex = i } @@ -143,14 +143,7 @@ Item qualityModel.availableTotalTicks = -1 // check, the ticks count cannot be less than zero - if(Cura.ProfilesModel.rowCount() != 0) - { - qualityModel.totalTicks = Cura.ProfilesModel.rowCount() - 1 // minus one, because slider starts from 0 - } - else - { - qualityModel.totalTicks = 0 - } + qualityModel.totalTicks = Math.max(0, Cura.ProfilesModel.rowCount() - 1) } } From 64bcf4b44d029a4bb7438308fe0cd1b3051d50ab Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Fri, 20 Oct 2017 10:22:09 +0200 Subject: [PATCH 094/218] Remove debug log when XML material file contains unused property --- plugins/XmlMaterialProfile/XmlMaterialProfile.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index de3b3fb71f..86f3c87bb5 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -509,8 +509,6 @@ class XmlMaterialProfile(InstanceContainer): elif key in self.__unmapped_settings: if key == "hardware compatible": common_compatibility = self._parseCompatibleValue(entry.text) - else: - Logger.log("d", "Unsupported material setting %s", key) self._cached_values = common_setting_values # from InstanceContainer ancestor meta_data["compatible"] = common_compatibility From 31a04ed8dac85b2c536a4695659cb4d8496582e4 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Fri, 20 Oct 2017 11:37:45 +0200 Subject: [PATCH 095/218] Also emit active quality changed when no dialog interaction occured - CURA-4447 --- cura/Settings/MachineManager.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 442c61d9ce..8cd793dfae 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -858,9 +858,11 @@ class MachineManager(QObject): for stack in name_changed_connect_stacks: stack.nameChanged.connect(self._onQualityNameChanged) + has_user_interaction = False + if self.hasUserSettings and Preferences.getInstance().getValue("cura/active_mode") == 1: # Show the keep/discard user settings dialog - Application.getInstance().discardOrKeepProfileChanges() + has_user_interaction = Application.getInstance().discardOrKeepProfileChanges() else: # If the user doesn't have any of adjusted settings then slicing will be triggered by emit() # Send emits that are postponed in replaceContainer. @@ -868,6 +870,7 @@ class MachineManager(QObject): for setting_info in new_quality_settings_list: setting_info["stack"].sendPostponedEmits() + if not has_user_interaction: self.activeQualityChanged.emit() ## Determine the quality and quality changes settings for the current machine for a quality name. From 95a2559607c0b3620c10689ef2ef97b14ba65d16 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Fri, 20 Oct 2017 12:34:35 +0200 Subject: [PATCH 096/218] indent --- cura/Settings/MachineManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 8cd793dfae..f704378a8f 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -871,7 +871,7 @@ class MachineManager(QObject): setting_info["stack"].sendPostponedEmits() if not has_user_interaction: - self.activeQualityChanged.emit() + self.activeQualityChanged.emit() ## Determine the quality and quality changes settings for the current machine for a quality name. # From 9f73f79b2f6f9607241244c58a9398b36fc38aea Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Fri, 20 Oct 2017 12:37:59 +0200 Subject: [PATCH 097/218] Update simple mode manager states when manager is created - CURA-4466 --- cura/Settings/SimpleModeSettingsManager.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cura/Settings/SimpleModeSettingsManager.py b/cura/Settings/SimpleModeSettingsManager.py index 9a66eb36a5..867a21702c 100644 --- a/cura/Settings/SimpleModeSettingsManager.py +++ b/cura/Settings/SimpleModeSettingsManager.py @@ -18,6 +18,10 @@ class SimpleModeSettingsManager(QObject): self._machine_manager.activeStackValueChanged.connect(self._updateIsProfileCustomized) self._machine_manager.activeQualityChanged.connect(self._updateIsProfileUserCreated) + # update on create as the activeQualityChanged signal is emitted before this manager is created when Cura starts + self._updateIsProfileCustomized() + self._updateIsProfileUserCreated() + isProfileCustomizedChanged = pyqtSignal() isProfileUserCreatedChanged = pyqtSignal() From f1d125b2320dcfff10a3c3c26a2647eaa952e67d Mon Sep 17 00:00:00 2001 From: Buco Date: Fri, 20 Oct 2017 16:09:26 +0200 Subject: [PATCH 098/218] Added quality profiles Made some changes to the main profiles and added quality profiles for each material. --- .../builder_premium_large.def.json | 5 ++-- .../builder_premium_medium.def.json | 5 ++-- .../builder_premium_small.def.json | 5 ++-- .../bp_ABS_Coarse_Quality.inst.cfg | 14 +++++++++++ .../bp_ABS_High_Quality.inst.cfg | 14 +++++++++++ .../bp_ABS_Normal_Quality.inst.cfg | 14 +++++++++++ .../bp_BVOH_Coarse_Quality.inst.cfg | 24 ++++++++++++++++++ .../bp_BVOH_High_Quality.inst.cfg | 25 +++++++++++++++++++ .../bp_BVOH_Normal_Quality.inst.cfg | 23 +++++++++++++++++ .../bp_CPE_Coarse_Quality.inst.cfg | 14 +++++++++++ .../bp_CPE_High_Quality.inst.cfg | 14 +++++++++++ .../bp_CPE_Normal_Quality.inst.cfg | 14 +++++++++++ .../bp_HIPS_Coarse_Quality.inst.cfg | 15 +++++++++++ .../bp_HIPS_High_Quality.inst.cfg | 14 +++++++++++ .../bp_HIPS_Normal_Quality.inst.cfg | 14 +++++++++++ .../bp_Innoflex60_Coarse_Quality.inst.cfg | 24 ++++++++++++++++++ .../bp_Innoflex60_High_Quality.inst.cfg | 25 +++++++++++++++++++ .../bp_Innoflex60_Normal_Quality.inst.cfg | 23 +++++++++++++++++ .../bp_Nylon_Coarse_Quality.inst.cfg | 14 +++++++++++ .../bp_Nylon_High_Quality.inst.cfg | 14 +++++++++++ .../bp_Nylon_Normal_Quality.inst.cfg | 14 +++++++++++ .../bp_PC_Coarse_Quality.inst.cfg | 14 +++++++++++ .../bp_PC_High_Quality.inst.cfg | 14 +++++++++++ .../bp_PC_Normal_Quality.inst.cfg | 14 +++++++++++ .../bp_PET_Coarse_Quality.inst.cfg | 24 ++++++++++++++++++ .../bp_PET_High_Quality.inst.cfg | 25 +++++++++++++++++++ .../bp_PET_Normal_Quality.inst.cfg | 23 +++++++++++++++++ ...nst.cfg => bp_PLA_Coarse_Quality.inst.cfg} | 8 +++--- ....inst.cfg => bp_PLA_High_Quality.inst.cfg} | 4 +-- ...nst.cfg => bp_PLA_Normal_Quality.inst.cfg} | 4 +-- .../bp_PVA_Coarse_Quality.inst.cfg | 24 ++++++++++++++++++ .../bp_PVA_High_Quality.inst.cfg | 25 +++++++++++++++++++ .../bp_PVA_Normal_Quality.inst.cfg | 23 +++++++++++++++++ .../bp_global_Coarse_Quality.inst.cfg | 14 +++++++++++ .../bp_global_High_Quality.inst.cfg | 14 +++++++++++ .../bp_global_Normal_Quality.inst.cfg | 14 +++++++++++ 36 files changed, 552 insertions(+), 20 deletions(-) create mode 100644 resources/quality/builder_premium/bp_ABS_Coarse_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_ABS_High_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_ABS_Normal_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_BVOH_Coarse_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_BVOH_High_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_BVOH_Normal_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_CPE_Coarse_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_CPE_High_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_CPE_Normal_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_HIPS_Coarse_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_HIPS_High_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_HIPS_Normal_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_Innoflex60_Coarse_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_Innoflex60_High_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_Innoflex60_Normal_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_Nylon_Coarse_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_Nylon_High_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_Nylon_Normal_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_PC_Coarse_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_PC_High_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_PC_Normal_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_PET_Coarse_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_PET_High_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_PET_Normal_Quality.inst.cfg rename resources/quality/builder_premium/{builder_premium_low.inst.cfg => bp_PLA_Coarse_Quality.inst.cfg} (77%) rename resources/quality/builder_premium/{builder_premium_high.inst.cfg => bp_PLA_High_Quality.inst.cfg} (81%) rename resources/quality/builder_premium/{builder_premium_normal.inst.cfg => bp_PLA_Normal_Quality.inst.cfg} (80%) create mode 100644 resources/quality/builder_premium/bp_PVA_Coarse_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_PVA_High_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_PVA_Normal_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_global_Coarse_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_global_High_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_global_Normal_Quality.inst.cfg diff --git a/resources/definitions/builder_premium_large.def.json b/resources/definitions/builder_premium_large.def.json index aaeda0fdb1..5fc4b46c98 100644 --- a/resources/definitions/builder_premium_large.def.json +++ b/resources/definitions/builder_premium_large.def.json @@ -13,7 +13,7 @@ "platform": "builder_premium_platform.stl", "platform_offset": [-126, -36, 117], "has_machine_quality": true, - "preferred_quality": "*normal*", + "preferred_quality": "*Normal*", "machine_extruder_trains": { "0": "builder_premium_large_rear", @@ -34,8 +34,7 @@ "infill_pattern": {"value": "'triangles'" }, "infill_before_walls": {"value": false }, - "material_print_temperature": {"value": 215 }, - "default_material_print_temperature": { "default_value": 215 }, + "default_material_print_temperature": { "value": "215" }, "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, "material_standby_temperature": { "value": "material_print_temperature" }, diff --git a/resources/definitions/builder_premium_medium.def.json b/resources/definitions/builder_premium_medium.def.json index 79825a5653..56dab8f863 100644 --- a/resources/definitions/builder_premium_medium.def.json +++ b/resources/definitions/builder_premium_medium.def.json @@ -13,7 +13,7 @@ "platform": "builder_premium_platform.stl", "platform_offset": [-126, -36, 117], "has_machine_quality": true, - "preferred_quality": "*normal*", + "preferred_quality": "*Normal*", "machine_extruder_trains": { "0": "builder_premium_medium_rear", @@ -34,8 +34,7 @@ "infill_pattern": {"value": "'triangles'" }, "infill_before_walls": {"value": false }, - "material_print_temperature": {"value": 215 }, - "default_material_print_temperature": { "default_value": 215 }, + "default_material_print_temperature": { "value": "215" }, "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, "material_standby_temperature": { "value": "material_print_temperature" }, diff --git a/resources/definitions/builder_premium_small.def.json b/resources/definitions/builder_premium_small.def.json index 358b41a072..65103ce1af 100644 --- a/resources/definitions/builder_premium_small.def.json +++ b/resources/definitions/builder_premium_small.def.json @@ -12,7 +12,7 @@ "platform": "builder_premium_platform.stl", "platform_offset": [-126, -36, 117], "has_machine_quality": true, - "preferred_quality": "*normal*", + "preferred_quality": "*Normal*", "machine_extruder_trains": { "0": "builder_premium_small_rear", @@ -33,8 +33,7 @@ "infill_pattern": {"value": "'triangles'" }, "infill_before_walls": {"value": false }, - "material_print_temperature": {"value": 215 }, - "default_material_print_temperature": { "default_value": 215 }, + "default_material_print_temperature": { "value": "215" }, "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, "material_standby_temperature": { "value": "material_print_temperature" }, diff --git a/resources/quality/builder_premium/bp_ABS_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_ABS_Coarse_Quality.inst.cfg new file mode 100644 index 0000000000..4e1294fdb6 --- /dev/null +++ b/resources/quality/builder_premium/bp_ABS_Coarse_Quality.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 2 +name = Not Supported +definition = builder_premium_small + +[metadata] +type = quality +quality_type = coarse +material = generic_abs_175 +setting_version = 3 +weight = -1 +supported = False + +[values] \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_ABS_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_ABS_High_Quality.inst.cfg new file mode 100644 index 0000000000..e6ec6b2158 --- /dev/null +++ b/resources/quality/builder_premium/bp_ABS_High_Quality.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 2 +name = Not Supported +definition = builder_premium_small + +[metadata] +type = quality +quality_type = high +material = generic_abs_175 +setting_version = 3 +weight = 1 +supported = False + +[values] \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_ABS_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_ABS_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..c033dca279 --- /dev/null +++ b/resources/quality/builder_premium/bp_ABS_Normal_Quality.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 2 +name = Not Supported +definition = builder_premium_small + +[metadata] +type = quality +quality_type = normal +material = generic_abs_175 +setting_version = 3 +weight = 0 +supported = False + +[values] diff --git a/resources/quality/builder_premium/bp_BVOH_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_BVOH_Coarse_Quality.inst.cfg new file mode 100644 index 0000000000..80bc8adaa6 --- /dev/null +++ b/resources/quality/builder_premium/bp_BVOH_Coarse_Quality.inst.cfg @@ -0,0 +1,24 @@ +[general] +version = 2 +name = Coarse +definition = builder_premium_small + +[metadata] +type = quality +quality_type = coarse +material = verbatim_bvoh_175 +setting_version = 3 +weight = -1 + +[values] +material_print_temperature = =default_material_print_temperature + 5 +material_standby_temperature = =material_print_temperature +material_initial_print_temperature= =material_print_temperature +material_final_print_temperature= =material_print_temperature +material_bed_temperature = 45 +material_bed_temperature_layer_0= =material_bed_temperature +layer_height = 0.3 +top_thickness = =layer_height * 5 +bottom_thickness = =layer_height * 3 +speed_print = 40 + diff --git a/resources/quality/builder_premium/bp_BVOH_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_BVOH_High_Quality.inst.cfg new file mode 100644 index 0000000000..54ff19f0c6 --- /dev/null +++ b/resources/quality/builder_premium/bp_BVOH_High_Quality.inst.cfg @@ -0,0 +1,25 @@ +[general] +version = 2 +name = High Quality +definition = builder_premium_small + +[metadata] +type = quality +quality_type = high +material = verbatim_bvoh_175 +setting_version = 3 +weight = 1 + +[values] +acceleration_print = 2000 +material_print_temperature = =default_material_print_temperature + 5 +material_standby_temperature = =material_print_temperature +material_initial_print_temperature= =material_print_temperature +material_final_print_temperature= =material_print_temperature +material_bed_temperature = 45 +material_bed_temperature_layer_0= =material_bed_temperature +layer_height = 0.1 +top_thickness = =layer_height * 7 +bottom_thickness = =layer_height * 5 +speed_print = 40 +layer_height_0 = 0.2 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_BVOH_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_BVOH_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..8d026391db --- /dev/null +++ b/resources/quality/builder_premium/bp_BVOH_Normal_Quality.inst.cfg @@ -0,0 +1,23 @@ +[general] +version = 2 +name = Normal +definition = builder_premium_small + +[metadata] +type = quality +quality_type = normal +material = verbatim_bvoh_175 +setting_version = 3 +weight = 0 + +[values] +material_print_temperature = =default_material_print_temperature + 5 +material_standby_temperature = =material_print_temperature +material_initial_print_temperature= =material_print_temperature +material_final_print_temperature= =material_print_temperature +material_bed_temperature = 45 +material_bed_temperature_layer_0= =material_bed_temperature +layer_height = 0.2 +top_thickness = =layer_height * 5 +bottom_thickness = =layer_height * 3 +speed_print = 40 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_CPE_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_CPE_Coarse_Quality.inst.cfg new file mode 100644 index 0000000000..4f5c56af04 --- /dev/null +++ b/resources/quality/builder_premium/bp_CPE_Coarse_Quality.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 2 +name = Not Supported +definition = builder_premium_small + +[metadata] +type = quality +quality_type = coarse +material = generic_cpe_175 +setting_version = 3 +weight = -1 +supported = False + +[values] diff --git a/resources/quality/builder_premium/bp_CPE_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_CPE_High_Quality.inst.cfg new file mode 100644 index 0000000000..dfa7302ee0 --- /dev/null +++ b/resources/quality/builder_premium/bp_CPE_High_Quality.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 2 +name = Not Supported +definition = builder_premium_small + +[metadata] +type = quality +quality_type = high +material = generic_cpe_175 +setting_version = 3 +weight = 1 +supported = False + +[values] \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_CPE_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_CPE_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..8a72c81b16 --- /dev/null +++ b/resources/quality/builder_premium/bp_CPE_Normal_Quality.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 2 +name = Not Supported +definition = builder_premium_small + +[metadata] +type = quality +quality_type = normal +material = generic_cpe_175 +setting_version = 3 +weight = 0 +supported = False + +[values] diff --git a/resources/quality/builder_premium/bp_HIPS_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_HIPS_Coarse_Quality.inst.cfg new file mode 100644 index 0000000000..646f69cee1 --- /dev/null +++ b/resources/quality/builder_premium/bp_HIPS_Coarse_Quality.inst.cfg @@ -0,0 +1,15 @@ +[general] +version = 2 +name = Not Supported +definition = builder_premium_small + +[metadata] +type = quality +quality_type = coarse +material = generic_hips_175 +setting_version = 3 +weight = -1 +supported = False + +[values] + diff --git a/resources/quality/builder_premium/bp_HIPS_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_HIPS_High_Quality.inst.cfg new file mode 100644 index 0000000000..cb28b7c3d4 --- /dev/null +++ b/resources/quality/builder_premium/bp_HIPS_High_Quality.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 2 +name = Not Supported +definition = builder_premium_small + +[metadata] +type = quality +quality_type = high +material = generic_hips_175 +setting_version = 3 +weight = 1 +supported = False + +[values] \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_HIPS_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_HIPS_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..49ae840c49 --- /dev/null +++ b/resources/quality/builder_premium/bp_HIPS_Normal_Quality.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 2 +name = Not Supported +definition = builder_premium_small + +[metadata] +type = quality +quality_type = normal +material = generic_hips_175 +setting_version = 3 +weight = 0 +supported = False + +[values] \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_Innoflex60_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_Innoflex60_Coarse_Quality.inst.cfg new file mode 100644 index 0000000000..32a3695148 --- /dev/null +++ b/resources/quality/builder_premium/bp_Innoflex60_Coarse_Quality.inst.cfg @@ -0,0 +1,24 @@ +[general] +version = 2 +name = Coarse +definition = builder_premium_small + +[metadata] +type = quality +quality_type = coarse +material = innofill_innoflex60_175 +setting_version = 3 +weight = -1 + +[values] +material_print_temperature = =default_material_print_temperature +material_standby_temperature = =material_print_temperature +material_initial_print_temperature= =material_print_temperature +material_final_print_temperature= =material_print_temperature +material_bed_temperature = 45 +material_bed_temperature_layer_0= =material_bed_temperature +layer_height = 0.3 +top_thickness = =layer_height * 5 +bottom_thickness = =layer_height * 3 +speed_print = 30 + diff --git a/resources/quality/builder_premium/bp_Innoflex60_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_Innoflex60_High_Quality.inst.cfg new file mode 100644 index 0000000000..43d547436b --- /dev/null +++ b/resources/quality/builder_premium/bp_Innoflex60_High_Quality.inst.cfg @@ -0,0 +1,25 @@ +[general] +version = 2 +name = High Quality +definition = builder_premium_small + +[metadata] +type = quality +quality_type = high +material = innofill_innoflex60_175 +setting_version = 3 +weight = 1 + +[values] +acceleration_print = 2000 +material_print_temperature = =default_material_print_temperature +material_standby_temperature = =material_print_temperature +material_initial_print_temperature= =material_print_temperature +material_final_print_temperature= =material_print_temperature +material_bed_temperature = 45 +material_bed_temperature_layer_0= =material_bed_temperature +layer_height = 0.1 +top_thickness = =layer_height * 7 +bottom_thickness = =layer_height * 5 +speed_print = 30 +layer_height_0 = 0.2 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_Innoflex60_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_Innoflex60_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..658e868a5f --- /dev/null +++ b/resources/quality/builder_premium/bp_Innoflex60_Normal_Quality.inst.cfg @@ -0,0 +1,23 @@ +[general] +version = 2 +name = Normal +definition = builder_premium_small + +[metadata] +type = quality +quality_type = normal +material = innofill_innoflex60_175 +setting_version = 3 +weight = 0 + +[values] +material_print_temperature = =default_material_print_temperature +material_standby_temperature = =material_print_temperature +material_initial_print_temperature= =material_print_temperature +material_final_print_temperature= =material_print_temperature +material_bed_temperature = 45 +material_bed_temperature_layer_0= =material_bed_temperature +layer_height = 0.2 +top_thickness = =layer_height * 5 +bottom_thickness = =layer_height * 3 +speed_print = 30 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_Nylon_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_Nylon_Coarse_Quality.inst.cfg new file mode 100644 index 0000000000..14441b7c6c --- /dev/null +++ b/resources/quality/builder_premium/bp_Nylon_Coarse_Quality.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 2 +name = Not Supported +definition = builder_premium_small + +[metadata] +type = quality +quality_type = coarse +material = generic_nylon_175 +setting_version = 3 +weight = 0 +supported = False + +[values] diff --git a/resources/quality/builder_premium/bp_Nylon_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_Nylon_High_Quality.inst.cfg new file mode 100644 index 0000000000..90f9a2ed84 --- /dev/null +++ b/resources/quality/builder_premium/bp_Nylon_High_Quality.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 2 +name = Not Supported +definition = builder_premium_small + +[metadata] +type = quality +quality_type = high +material = generic_nylon_175 +setting_version = 3 +weight = 0 +supported = False + +[values] diff --git a/resources/quality/builder_premium/bp_Nylon_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_Nylon_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..b943f0bd02 --- /dev/null +++ b/resources/quality/builder_premium/bp_Nylon_Normal_Quality.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 2 +name = Not Supported +definition = builder_premium_small + +[metadata] +type = quality +quality_type = normal +material = generic_nylon_175 +setting_version = 3 +weight = 0 +supported = False + +[values] diff --git a/resources/quality/builder_premium/bp_PC_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_PC_Coarse_Quality.inst.cfg new file mode 100644 index 0000000000..c7c5782d96 --- /dev/null +++ b/resources/quality/builder_premium/bp_PC_Coarse_Quality.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 2 +name = Not Supported +definition = builder_premium_small + +[metadata] +type = quality +quality_type = coarse +material = generic_pc_175 +setting_version = 3 +weight = 0 +supported = False + +[values] diff --git a/resources/quality/builder_premium/bp_PC_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_PC_High_Quality.inst.cfg new file mode 100644 index 0000000000..01f5845748 --- /dev/null +++ b/resources/quality/builder_premium/bp_PC_High_Quality.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 2 +name = Not Supported +definition = builder_premium_small + +[metadata] +type = quality +quality_type = high +material = generic_pc_175 +setting_version = 3 +weight = 0 +supported = False + +[values] diff --git a/resources/quality/builder_premium/bp_PC_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_PC_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..26a2183a91 --- /dev/null +++ b/resources/quality/builder_premium/bp_PC_Normal_Quality.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 2 +name = Not Supported +definition = builder_premium_small + +[metadata] +type = quality +quality_type = normal +material = generic_pc_175 +setting_version = 3 +weight = 0 +supported = False + +[values] diff --git a/resources/quality/builder_premium/bp_PET_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_PET_Coarse_Quality.inst.cfg new file mode 100644 index 0000000000..fb56005655 --- /dev/null +++ b/resources/quality/builder_premium/bp_PET_Coarse_Quality.inst.cfg @@ -0,0 +1,24 @@ +[general] +version = 2 +name = Coarse +definition = builder_premium_small + +[metadata] +type = quality +quality_type = coarse +material = generic_petg_175 +setting_version = 3 +weight = -1 + +[values] +material_print_temperature = =default_material_print_temperature - 5 +material_standby_temperature = =material_print_temperature +material_initial_print_temperature= =material_print_temperature +material_final_print_temperature= =material_print_temperature +material_bed_temperature = 45 +material_bed_temperature_layer_0= =material_bed_temperature +layer_height = 0.3 +top_thickness = =layer_height * 5 +bottom_thickness = =layer_height * 3 +speed_print = 60 + diff --git a/resources/quality/builder_premium/bp_PET_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_PET_High_Quality.inst.cfg new file mode 100644 index 0000000000..f6e735deb0 --- /dev/null +++ b/resources/quality/builder_premium/bp_PET_High_Quality.inst.cfg @@ -0,0 +1,25 @@ +[general] +version = 2 +name = High Quality +definition = builder_premium_small + +[metadata] +type = quality +quality_type = high +material = generic_petg_175 +setting_version = 3 +weight = 1 + +[values] +acceleration_print = 2000 +material_print_temperature = =default_material_print_temperature - 5 +material_standby_temperature = =material_print_temperature +material_initial_print_temperature= =material_print_temperature +material_final_print_temperature= =material_print_temperature +material_bed_temperature = 45 +material_bed_temperature_layer_0= =material_bed_temperature +layer_height = 0.1 +top_thickness = =layer_height * 7 +bottom_thickness = =layer_height * 5 +speed_print = 40 +layer_height_0 = 0.2 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_PET_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_PET_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..13b1e90be6 --- /dev/null +++ b/resources/quality/builder_premium/bp_PET_Normal_Quality.inst.cfg @@ -0,0 +1,23 @@ +[general] +version = 2 +name = Normal +definition = builder_premium_small + +[metadata] +type = quality +quality_type = normal +material = generic_petg_175 +setting_version = 3 +weight = 0 + +[values] +material_print_temperature = =default_material_print_temperature - 5 +material_standby_temperature = =material_print_temperature +material_initial_print_temperature= =material_print_temperature +material_final_print_temperature= =material_print_temperature +material_bed_temperature = 45 +material_bed_temperature_layer_0= =material_bed_temperature +layer_height = 0.2 +top_thickness = =layer_height * 5 +bottom_thickness = =layer_height * 3 +speed_print = 50 \ No newline at end of file diff --git a/resources/quality/builder_premium/builder_premium_low.inst.cfg b/resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg similarity index 77% rename from resources/quality/builder_premium/builder_premium_low.inst.cfg rename to resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg index 8d8c3464d2..88b1a899e9 100644 --- a/resources/quality/builder_premium/builder_premium_low.inst.cfg +++ b/resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg @@ -1,22 +1,20 @@ [general] version = 2 -name = Low Quality +name = Coarse definition = builder_premium_small [metadata] type = quality -quality_type = low +quality_type = coarse material = generic_pla_175 setting_version = 3 weight = -1 -global_quality = True [values] -material_print_temperature = 215 +material_print_temperature = =default_material_print_temperature + 15 material_standby_temperature = =material_print_temperature material_initial_print_temperature= =material_print_temperature material_final_print_temperature= =material_print_temperature -default_material_print_temperature= =material_print_temperature material_bed_temperature = 45 material_bed_temperature_layer_0= =material_bed_temperature layer_height = 0.3 diff --git a/resources/quality/builder_premium/builder_premium_high.inst.cfg b/resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg similarity index 81% rename from resources/quality/builder_premium/builder_premium_high.inst.cfg rename to resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg index 5e990e64d9..a61b4ee958 100644 --- a/resources/quality/builder_premium/builder_premium_high.inst.cfg +++ b/resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg @@ -9,15 +9,13 @@ quality_type = high material = generic_pla_175 setting_version = 3 weight = 1 -global_quality = True [values] -material_print_temperature = 215 acceleration_print = 2000 +material_print_temperature = =default_material_print_temperature + 15 material_standby_temperature = =material_print_temperature material_initial_print_temperature= =material_print_temperature material_final_print_temperature= =material_print_temperature -default_material_print_temperature= =material_print_temperature material_bed_temperature = 45 material_bed_temperature_layer_0= =material_bed_temperature layer_height = 0.1 diff --git a/resources/quality/builder_premium/builder_premium_normal.inst.cfg b/resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg similarity index 80% rename from resources/quality/builder_premium/builder_premium_normal.inst.cfg rename to resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg index 7d401d4dea..6b0648b4e4 100644 --- a/resources/quality/builder_premium/builder_premium_normal.inst.cfg +++ b/resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg @@ -9,14 +9,12 @@ quality_type = normal material = generic_pla_175 setting_version = 3 weight = 0 -global_quality = True [values] -material_print_temperature = 215 +material_print_temperature = =default_material_print_temperature + 15 material_standby_temperature = =material_print_temperature material_initial_print_temperature= =material_print_temperature material_final_print_temperature= =material_print_temperature -default_material_print_temperature= =material_print_temperature material_bed_temperature = 45 material_bed_temperature_layer_0= =material_bed_temperature layer_height = 0.2 diff --git a/resources/quality/builder_premium/bp_PVA_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_PVA_Coarse_Quality.inst.cfg new file mode 100644 index 0000000000..fe0c1046b8 --- /dev/null +++ b/resources/quality/builder_premium/bp_PVA_Coarse_Quality.inst.cfg @@ -0,0 +1,24 @@ +[general] +version = 2 +name = Coarse +definition = builder_premium_small + +[metadata] +type = quality +quality_type = coarse +material = generic_pva_175 +setting_version = 3 +weight = -1 + +[values] +material_print_temperature = =default_material_print_temperature + 10 +material_standby_temperature = =material_print_temperature +material_initial_print_temperature= =material_print_temperature +material_final_print_temperature= =material_print_temperature +material_bed_temperature = 45 +material_bed_temperature_layer_0= =material_bed_temperature +layer_height = 0.3 +top_thickness = =layer_height * 5 +bottom_thickness = =layer_height * 3 +speed_print = 40 + diff --git a/resources/quality/builder_premium/bp_PVA_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_PVA_High_Quality.inst.cfg new file mode 100644 index 0000000000..13c6c7ef89 --- /dev/null +++ b/resources/quality/builder_premium/bp_PVA_High_Quality.inst.cfg @@ -0,0 +1,25 @@ +[general] +version = 2 +name = High Quality +definition = builder_premium_small + +[metadata] +type = quality +quality_type = high +material = generic_pva_175 +setting_version = 3 +weight = 1 + +[values] +acceleration_print = 2000 +material_print_temperature = =default_material_print_temperature + 10 +material_standby_temperature = =material_print_temperature +material_initial_print_temperature= =material_print_temperature +material_final_print_temperature= =material_print_temperature +material_bed_temperature = 45 +material_bed_temperature_layer_0= =material_bed_temperature +layer_height = 0.1 +top_thickness = =layer_height * 7 +bottom_thickness = =layer_height * 5 +speed_print = 40 +layer_height_0 = 0.2 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_PVA_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_PVA_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..5b16476b4b --- /dev/null +++ b/resources/quality/builder_premium/bp_PVA_Normal_Quality.inst.cfg @@ -0,0 +1,23 @@ +[general] +version = 2 +name = Normal +definition = builder_premium_small + +[metadata] +type = quality +quality_type = normal +material = generic_pva_175 +setting_version = 3 +weight = 0 + +[values] +material_print_temperature = =default_material_print_temperature + 10 +material_standby_temperature = =material_print_temperature +material_initial_print_temperature= =material_print_temperature +material_final_print_temperature= =material_print_temperature +material_bed_temperature = 45 +material_bed_temperature_layer_0= =material_bed_temperature +layer_height = 0.2 +top_thickness = =layer_height * 5 +bottom_thickness = =layer_height * 3 +speed_print = 40 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_global_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_global_Coarse_Quality.inst.cfg new file mode 100644 index 0000000000..0edca57629 --- /dev/null +++ b/resources/quality/builder_premium/bp_global_Coarse_Quality.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 2 +name = Coarse +definition = builder_premium_small + +[metadata] +type = quality +quality_type = coarse +setting_version = 3 +weight = -1 +global_quality = True + +[values] +layer_height = 0.3 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_global_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_global_High_Quality.inst.cfg new file mode 100644 index 0000000000..193202cd6f --- /dev/null +++ b/resources/quality/builder_premium/bp_global_High_Quality.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 2 +name = High Quality +definition = builder_premium_small + +[metadata] +type = quality +quality_type = high +setting_version = 3 +weight = 1 +global_quality = True + +[values] +layer_height = 0.1 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_global_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_global_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..60aa0a150c --- /dev/null +++ b/resources/quality/builder_premium/bp_global_Normal_Quality.inst.cfg @@ -0,0 +1,14 @@ +[general] +version = 2 +name = Normal +definition = builder_premium_small + +[metadata] +type = quality +quality_type = normal +setting_version = 3 +weight = 0 +global_quality = True + +[values] +layer_height = 0.2 \ No newline at end of file From eb0b08a813b70db07c4e6ebe694e257da88635a7 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Sun, 22 Oct 2017 18:35:05 +0200 Subject: [PATCH 099/218] CURA-4470 Hide quality slider handle when quality profile doesn't exist --- resources/qml/SidebarSimple.qml | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 851ec6196b..23be322a70 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -76,12 +76,13 @@ Item property var totalTicks: 0 property var availableTotalTicks: 0 - property var activeQualityIndex: 0 + property var existingQualityProfile: 0 + property var qualitySliderActiveIndex: 0 property var qualitySliderStepWidth: 0 - property var qualitySliderAvailableMin : 0 - property var qualitySliderAvailableMax : 0 - property var qualitySliderMarginRight : 0 + property var qualitySliderAvailableMin: 0 + property var qualitySliderAvailableMax: 0 + property var qualitySliderMarginRight: 0 function update () { reset() @@ -97,7 +98,8 @@ Item // Set selected value if (Cura.MachineManager.activeQualityType == qualityItem.metadata.quality_type) { - qualityModel.activeQualityIndex = i + qualityModel.qualitySliderActiveIndex = i + qualityModel.existingQualityProfile = 1 } // Set min available @@ -141,6 +143,7 @@ Item function reset () { qualityModel.clear() qualityModel.availableTotalTicks = -1 + qualityModel.existingQualityProfile = 0 // check, the ticks count cannot be less than zero qualityModel.totalTicks = Math.max(0, Cura.ProfilesModel.rowCount() - 1) @@ -261,7 +264,7 @@ Item maximumValue: qualityModel.qualitySliderAvailableMax >= 0 ? qualityModel.qualitySliderAvailableMax : 0 stepSize: 1 - value: qualityModel.activeQualityIndex + value: qualityModel.qualitySliderActiveIndex width: qualityModel.qualitySliderStepWidth * qualityModel.availableTotalTicks @@ -284,17 +287,17 @@ Item implicitWidth: 10 * screenScaleFactor implicitHeight: implicitWidth radius: implicitWidth / 2 - visible: !Cura.SimpleModeSettingsManager.isProfileCustomized && !Cura.SimpleModeSettingsManager.isProfileUserCreated + visible: !Cura.SimpleModeSettingsManager.isProfileCustomized && !Cura.SimpleModeSettingsManager.isProfileUserCreated && qualityModel.existingQualityProfile } } } onValueChanged: { // Only change if an active machine is set and the slider is visible at all. - if(Cura.MachineManager.activeMachine != null && visible) + if (Cura.MachineManager.activeMachine != null && visible) { //Prevent updating during view initializing. Trigger only if the value changed by user - if(qualitySlider.value != qualityModel.activeQualityIndex) + if (qualitySlider.value != qualityModel.qualitySliderActiveIndex) { //start updating with short delay qualitySliderChangeTimer.start(); From 2361e96e29941c366c4a3f07373ffb34a44c423c Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 23 Oct 2017 11:41:20 +0200 Subject: [PATCH 100/218] Wait with updating active stack variant and material until dialog was closed - CURA-4447 --- cura/CuraApplication.py | 3 +++ cura/Settings/MachineManager.py | 33 +++++++++++++++++++++++++++------ 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index ce09346a34..1680e7c6a6 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -407,6 +407,8 @@ class CuraApplication(QtApplication): has_user_interaction = True return has_user_interaction + onDiscardOrKeepProfileChangesClosed = pyqtSignal() # Used to notify other managers that the dialog was closed + @pyqtSlot(str) def discardOrKeepProfileChangesClosed(self, option): if option == "discard": @@ -429,6 +431,7 @@ class CuraApplication(QtApplication): user_global_container.update() # notify listeners that quality has changed (after user selected discard or keep) + self.onDiscardOrKeepProfileChangesClosed.emit() self.getMachineManager().activeQualityChanged.emit() @pyqtSlot(int) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index f704378a8f..d32e7dcb4d 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -47,6 +47,10 @@ class MachineManager(QObject): self._active_container_stack = None # type: CuraContainerStack self._global_container_stack = None # type: GlobalStack + # Used to store the new containers until after confirming the dialog + self._new_variant_container = None + self._new_material_container = None + self._error_check_timer = QTimer() self._error_check_timer.setInterval(250) self._error_check_timer.setSingleShot(True) @@ -58,6 +62,7 @@ class MachineManager(QObject): self._instance_container_timer.timeout.connect(self.__onInstanceContainersChanged) Application.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerChanged) + ## When the global container is changed, active material probably needs to be updated. self.globalContainerChanged.connect(self.activeMaterialChanged) self.globalContainerChanged.connect(self.activeVariantChanged) @@ -84,6 +89,9 @@ class MachineManager(QObject): ExtruderManager.getInstance().activeExtruderChanged.connect(self.activeStackChanged) self.activeStackChanged.connect(self.activeStackValueChanged) + # when a user closed dialog check if any delayed material or variant changes need to be applied + Application.getInstance().onDiscardOrKeepProfileChangesClosed.connect(self._executeDelayedActiveContainerStackChanges) + Preferences.getInstance().addPreference("cura/active_machine", "") self._global_event_keys = set() @@ -109,7 +117,7 @@ class MachineManager(QObject): "The selected material is incompatible with the selected machine or configuration."), title = catalog.i18nc("@info:title", "Incompatible Material")) - globalContainerChanged = pyqtSignal() # Emitted whenever the global stack is changed (ie: when changing between printers, changing a global profile, but not when changing a value) + globalContainerChanged = pyqtSignal() # Emitted whenever the global stack is changed (ie: when changing between printers, changing a global profile, but not when changing a value) activeMaterialChanged = pyqtSignal() activeVariantChanged = pyqtSignal() activeQualityChanged = pyqtSignal() @@ -747,7 +755,7 @@ class MachineManager(QObject): self.blurSettings.emit() old_material.nameChanged.disconnect(self._onMaterialNameChanged) - self._active_container_stack.material = material_container + self._new_material_container = material_container # self._active_container_stack will be updated with a delay Logger.log("d", "Active material changed") material_container.nameChanged.connect(self._onMaterialNameChanged) @@ -801,13 +809,13 @@ class MachineManager(QObject): old_material = self._active_container_stack.material if old_variant: self.blurSettings.emit() - self._active_container_stack.variant = containers[0] + self._new_variant_container = containers[0] # self._active_container_stack will be updated with a delay Logger.log("d", "Active variant changed to {active_variant_id}".format(active_variant_id = containers[0].getId())) preferred_material_name = None if old_material: preferred_material_name = old_material.getName() - - self.setActiveMaterial(self._updateMaterialContainer(self._global_container_stack.getBottom(), self._global_container_stack, containers[0], preferred_material_name).id) + preferred_material_id = self._updateMaterialContainer(self._global_container_stack.getBottom(), self._global_container_stack, containers[0], preferred_material_name).id + self.setActiveMaterial(preferred_material_id) else: Logger.log("w", "While trying to set the active variant, no variant was found to replace.") @@ -871,7 +879,20 @@ class MachineManager(QObject): setting_info["stack"].sendPostponedEmits() if not has_user_interaction: - self.activeQualityChanged.emit() + self.activeQualityChanged.emit() + + ## Used to update material and variant in the active container stack with a delay. + # This delay prevents the stack from triggering a lot of signals (eventually resulting in slicing) + # before the user decided to keep or discard any of their changes using the dialog. + # The activeQualityChanged signal triggers this method. + def _executeDelayedActiveContainerStackChanges(self): + if self._new_material_container is not None: + self._active_container_stack.material = self._new_material_container + self._new_material_container = None + + if self._new_variant_container is not None: + self._active_container_stack.variant = self._new_variant_container + self._new_variant_container = None ## Determine the quality and quality changes settings for the current machine for a quality name. # From e63616ca419ca30a613a9f9d9840f3a55ac6b350 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 23 Oct 2017 11:43:15 +0200 Subject: [PATCH 101/218] Update method description - CURA-4447 --- cura/Settings/MachineManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index d32e7dcb4d..a4dd311bb4 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -884,7 +884,7 @@ class MachineManager(QObject): ## Used to update material and variant in the active container stack with a delay. # This delay prevents the stack from triggering a lot of signals (eventually resulting in slicing) # before the user decided to keep or discard any of their changes using the dialog. - # The activeQualityChanged signal triggers this method. + # The Application.onDiscardOrKeepProfileChangesClosed signal triggers this method. def _executeDelayedActiveContainerStackChanges(self): if self._new_material_container is not None: self._active_container_stack.material = self._new_material_container From ff732720ca409d1e6807066fa9421edd841b7d88 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 23 Oct 2017 12:45:07 +0200 Subject: [PATCH 102/218] Set quality slider active index to -1 for user created profile, fix for CURA-4466 --- resources/qml/SidebarSimple.qml | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 23be322a70..65a3d612dc 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -98,8 +98,15 @@ Item // Set selected value if (Cura.MachineManager.activeQualityType == qualityItem.metadata.quality_type) { - qualityModel.qualitySliderActiveIndex = i - qualityModel.existingQualityProfile = 1 + + // set to -1 when switching to user created profile so all ticks are clickable + if (Cura.SimpleModeSettingsManager.isProfileUserCreated) { + qualityModel.qualitySliderActiveIndex = -1 + } else { + qualityModel.qualitySliderActiveIndex = i + } + + qualityModel.existingQualityProfile = 1 } // Set min available @@ -293,14 +300,12 @@ Item } onValueChanged: { - // Only change if an active machine is set and the slider is visible at all. - if (Cura.MachineManager.activeMachine != null && visible) - { - //Prevent updating during view initializing. Trigger only if the value changed by user - if (qualitySlider.value != qualityModel.qualitySliderActiveIndex) - { - //start updating with short delay - qualitySliderChangeTimer.start(); + // only change if an active machine is set and the slider is visible at all. + if (Cura.MachineManager.activeMachine != null && visible) { + // prevent updating during view initializing. Trigger only if the value changed by user + if (qualitySlider.value != qualityModel.qualitySliderActiveIndex) { + // start updating with short delay + qualitySliderChangeTimer.start() } } } From 4cfd0de580120bc67250462ce37bf6bba43025b9 Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Mon, 23 Oct 2017 14:20:10 +0200 Subject: [PATCH 103/218] CURA-4248 hide settings in UI for Surface Energy and Adhesion Tendency --- resources/definitions/fdmprinter.def.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index e953d18865..826449afd9 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1872,6 +1872,7 @@ "default_value": 10, "minimum_value": "0", "maximum_value": "10", + "enabled": false, "settable_per_mesh": false, "settable_per_extruder": true }, @@ -1884,6 +1885,7 @@ "default_value": 100, "minimum_value": "0", "maximum_value": "100", + "enabled": false, "settable_per_mesh": false, "settable_per_extruder": true }, From 560be2931a49a31bfd5b86670e0d0c6401a5d9ac Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 23 Oct 2017 15:41:45 +0200 Subject: [PATCH 104/218] Create empty not supported container dynamically when no qualities are found - CURA-4451 --- cura/CrashHandler.py | 1 + cura/Settings/ProfilesModel.py | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/cura/CrashHandler.py b/cura/CrashHandler.py index a78ecb8a72..ad80d286c3 100644 --- a/cura/CrashHandler.py +++ b/cura/CrashHandler.py @@ -53,6 +53,7 @@ class CrashHandler: self.exception_type = exception_type self.value = value self.traceback = tb + self.dialog = QDialog() # While we create the GUI, the information will be stored for sending afterwards self.data = dict() diff --git a/cura/Settings/ProfilesModel.py b/cura/Settings/ProfilesModel.py index bf1993b184..d7d413ea20 100644 --- a/cura/Settings/ProfilesModel.py +++ b/cura/Settings/ProfilesModel.py @@ -7,6 +7,7 @@ from PyQt5.QtCore import Qt from UM.Application import Application from UM.Settings.ContainerRegistry import ContainerRegistry +from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.Models.InstanceContainersModel import InstanceContainersModel from cura.QualityManager import QualityManager @@ -61,6 +62,7 @@ class ProfilesModel(InstanceContainersModel): active_extruder = extruder_manager.getActiveExtruderStack() extruder_stacks = extruder_manager.getActiveExtruderStacks() materials = [global_container_stack.material] + if active_extruder in extruder_stacks: extruder_stacks.remove(active_extruder) extruder_stacks = [active_extruder] + extruder_stacks @@ -83,8 +85,30 @@ class ProfilesModel(InstanceContainersModel): if quality.getMetaDataEntry("quality_type") not in quality_type_set: result.append(quality) + # If not qualities are found we dynamically create an empty container with name "Not Supported" + if len(result) == 0: + machine_id = global_container_stack.definition.getId() + material_id = extruder_stacks[0].material.getId() + result.append(self.generateNoSupportedInstanceContainer(machine_id, material_id)) + return result + def generateNoSupportedInstanceContainer(self, machine_id: str, material_id: str): + container = InstanceContainer("not_supported") + container.setName("Not Supported") + container.metaData["quality_type"] = "normal" + container.metaData["setting_version"] = 3 + container.metaData["supported"] = False + container.metaData["type"] = "quality" + container.metaData["weight"] = "0" + container.metaData["material"] = material_id + container.readOnly = True + container.setDirty(False) + container.setCachedValues({}) + definition = ContainerRegistry.getInstance().findDefinitionContainers(id = machine_id) + container.setDefinition(definition) + return container + ## Re-computes the items in this model, and adds the layer height role. def _recomputeItems(self): #Some globals that we can re-use. From d2ef373d19ae874bb6fbebf4a621ccf3c5f0db88 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 23 Oct 2017 15:50:42 +0200 Subject: [PATCH 105/218] Also apply container changes when no user interaction is required - CURA-4447 --- cura/Settings/MachineManager.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index a4dd311bb4..efc9515ef1 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -879,6 +879,7 @@ class MachineManager(QObject): setting_info["stack"].sendPostponedEmits() if not has_user_interaction: + self._executeDelayedActiveContainerStackChanges() self.activeQualityChanged.emit() ## Used to update material and variant in the active container stack with a delay. From d018e0b2bbee6166684b9c309ff64be42d0446a6 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 23 Oct 2017 17:34:31 +0200 Subject: [PATCH 106/218] First steps towards salvation - CURA-4451 --- cura/Settings/ProfilesModel.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/cura/Settings/ProfilesModel.py b/cura/Settings/ProfilesModel.py index d7d413ea20..8aeccd7e14 100644 --- a/cura/Settings/ProfilesModel.py +++ b/cura/Settings/ProfilesModel.py @@ -72,6 +72,15 @@ class ProfilesModel(InstanceContainersModel): # The actual list of quality profiles come from the first extruder in the extruder list. result = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, extruder_stacks) + # If not qualities are found we dynamically create an empty container with name "Not Supported" + if len(result) == 0: + machine_id = global_container_stack.definition.getId() + material_id = extruder_stacks[0].material.getId() + not_supported_container = self.generateNoSupportedInstanceContainer(machine_id, material_id) + result.append(not_supported_container) + # ContainerRegistry.getInstance().addContainer(not_supported_container) + return result + # The usable quality types are set quality_type_set = set([x.getMetaDataEntry("quality_type") for x in result]) @@ -85,26 +94,17 @@ class ProfilesModel(InstanceContainersModel): if quality.getMetaDataEntry("quality_type") not in quality_type_set: result.append(quality) - # If not qualities are found we dynamically create an empty container with name "Not Supported" - if len(result) == 0: - machine_id = global_container_stack.definition.getId() - material_id = extruder_stacks[0].material.getId() - result.append(self.generateNoSupportedInstanceContainer(machine_id, material_id)) - return result def generateNoSupportedInstanceContainer(self, machine_id: str, material_id: str): container = InstanceContainer("not_supported") container.setName("Not Supported") - container.metaData["quality_type"] = "normal" container.metaData["setting_version"] = 3 container.metaData["supported"] = False container.metaData["type"] = "quality" container.metaData["weight"] = "0" container.metaData["material"] = material_id - container.readOnly = True - container.setDirty(False) - container.setCachedValues({}) + container.metaData["quality_type"] = "normal" definition = ContainerRegistry.getInstance().findDefinitionContainers(id = machine_id) container.setDefinition(definition) return container @@ -181,8 +181,8 @@ class ProfilesModel(InstanceContainersModel): for item in containers: profile = container_registry.findContainers(id=item["id"]) if not profile: - self._setItemLayerHeight(item, "", unit) - item["available"] = False + self._setItemLayerHeight(item, "", "") + item["available"] = True yield item continue From 3794ae16ae767e14e901e6c8a68846efd6631de9 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Mon, 23 Oct 2017 17:41:58 +0200 Subject: [PATCH 107/218] Dont show layer height text in profiles drop down when there is not layer height set - CURA-4451 --- resources/qml/Menus/ProfileMenu.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ProfileMenu.qml b/resources/qml/Menus/ProfileMenu.qml index 17eb7cfb1d..b0f2ef14d2 100644 --- a/resources/qml/Menus/ProfileMenu.qml +++ b/resources/qml/Menus/ProfileMenu.qml @@ -17,7 +17,7 @@ Menu MenuItem { - text: model.name + " - " + model.layer_height + text: model.name + (model.layer_height != "" ? (" - " + model.layer_height) : "") checkable: true checked: Cura.MachineManager.activeQualityChangesId == "" && Cura.MachineManager.activeQualityType == model.metadata.quality_type exclusiveGroup: group From 56fa7036b3545ebdfad420fa28e8efc3b35bfcfa Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 23 Oct 2017 20:55:08 +0200 Subject: [PATCH 108/218] Add controls for jogging the head/bed --- resources/qml/PrintMonitor.qml | 277 +++++++++++++++++++++ resources/themes/cura-light/icons/home.svg | 56 +++++ 2 files changed, 333 insertions(+) create mode 100644 resources/themes/cura-light/icons/home.svg diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index a2626e53de..e8ab76a264 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -677,6 +677,192 @@ Column watchedProperties: ["value"] } + Loader + { + sourceComponent: monitorSection + property string label: catalog.i18nc("@label", "Printer control") + } + + Row + { + width: base.width - 2 * UM.Theme.getSize("default_margin").width + height: childrenRect.height + 2 * UM.Theme.getSize("default_margin").width + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + + spacing: UM.Theme.getSize("default_margin").width + + Label + { + text: catalog.i18nc("@label", "Position") + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + + width: Math.floor(parent.width * 0.4) - UM.Theme.getSize("default_margin").width + } + + GridLayout + { + columns: 3 + rows: 4 + rowSpacing: UM.Theme.getSize("default_lining").width + columnSpacing: UM.Theme.getSize("default_lining").height + + Label + { + text: catalog.i18nc("@label", "X/Y") + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + width: parent.width + horizontalAlignment: Text.AlignHCenter + + Layout.row: 1 + Layout.column: 2 + Layout.preferredWidth: UM.Theme.getSize("section").height + } + + Button + { + Layout.row: 2 + Layout.column: 2 + Layout.preferredWidth: width + Layout.preferredHeight: height + iconSource: UM.Theme.getIcon("arrow_top"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.moveHead(0, 10, 0) + } + } + + Button + { + Layout.row: 3 + Layout.column: 1 + Layout.preferredWidth: width + Layout.preferredHeight: height + iconSource: UM.Theme.getIcon("arrow_left"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.moveHead(-10, 0, 0) + } + } + + Button + { + Layout.row: 3 + Layout.column: 3 + Layout.preferredWidth: width + Layout.preferredHeight: height + iconSource: UM.Theme.getIcon("arrow_right"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.moveHead(10, 0, 0) + } + } + + Button + { + Layout.row: 4 + Layout.column: 2 + Layout.preferredWidth: width + Layout.preferredHeight: height + iconSource: UM.Theme.getIcon("arrow_bottom"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.moveHead(0, -10, 0) + } + } + + Button + { + Layout.row: 3 + Layout.column: 2 + Layout.preferredWidth: width + Layout.preferredHeight: height + iconSource: UM.Theme.getIcon("home"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.homeHead() + } + } + } + + + Column + { + spacing: UM.Theme.getSize("default_lining").height + + Label + { + text: catalog.i18nc("@label", "Z") + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + width: UM.Theme.getSize("section").height + + horizontalAlignment: Text.AlignHCenter + } + + Button + { + iconSource: UM.Theme.getIcon("arrow_top"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.moveHead(0, 0, 10) + } + } + + Button + { + iconSource: UM.Theme.getIcon("home"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.homeBed() + } + } + + Button + { + iconSource: UM.Theme.getIcon("arrow_bottom"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.moveHead(0, 0, -10) + } + } + } + } + Loader { sourceComponent: monitorSection @@ -754,4 +940,95 @@ Column } } } + + Component + { + id: monitorButtonStyle + + ButtonStyle + { + background: Rectangle + { + border.width: UM.Theme.getSize("default_lining").width + border.color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled_border"); + } + else if(control.pressed) + { + return UM.Theme.getColor("action_button_active_border"); + } + else if(control.hovered) + { + return UM.Theme.getColor("action_button_hovered_border"); + } + else + { + return UM.Theme.getColor("action_button_border"); + } + } + color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled"); + } + else if(control.pressed) + { + return UM.Theme.getColor("action_button_active"); + } + else if(control.hovered) + { + return UM.Theme.getColor("action_button_hovered"); + } + else + { + return UM.Theme.getColor("action_button"); + } + } + Behavior on color + { + ColorAnimation + { + duration: 50 + } + } + } + + label: Item + { + UM.RecolorImage + { + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + width: Math.floor(control.width / 2) + height: Math.floor(control.height / 2) + sourceSize.width: width + sourceSize.height: width + color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled_text"); + } + else if(control.pressed) + { + return UM.Theme.getColor("action_button_active_text"); + } + else if(control.hovered) + { + return UM.Theme.getColor("action_button_hovered_text"); + } + else + { + return UM.Theme.getColor("action_button_text"); + } + } + source: control.iconSource + } + } + } + } } \ No newline at end of file diff --git a/resources/themes/cura-light/icons/home.svg b/resources/themes/cura-light/icons/home.svg new file mode 100644 index 0000000000..617c3ce9da --- /dev/null +++ b/resources/themes/cura-light/icons/home.svg @@ -0,0 +1,56 @@ + + + + + + image/svg+xml + + + + + + + + + From 9cd88693825de607be097a0935723d7f8fc04e7e Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 23 Oct 2017 22:27:05 +0200 Subject: [PATCH 109/218] Add settable jog distance --- resources/qml/PrintMonitor.qml | 95 +++++++++++++++++++++++++++++++--- 1 file changed, 88 insertions(+), 7 deletions(-) diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index e8ab76a264..84097798bf 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -694,7 +694,7 @@ Column Label { - text: catalog.i18nc("@label", "Position") + text: catalog.i18nc("@label", "Jog position") color: UM.Theme.getColor("setting_control_text") font: UM.Theme.getFont("default") @@ -734,7 +734,7 @@ Column onClicked: { - connectedPrinter.moveHead(0, 10, 0) + connectedPrinter.moveHead(0, distancesRow.currentDistance, 0) } } @@ -751,7 +751,7 @@ Column onClicked: { - connectedPrinter.moveHead(-10, 0, 0) + connectedPrinter.moveHead(-distancesRow.currentDistance, 0, 0) } } @@ -768,7 +768,7 @@ Column onClicked: { - connectedPrinter.moveHead(10, 0, 0) + connectedPrinter.moveHead(distancesRow.currentDistance, 0, 0) } } @@ -785,7 +785,7 @@ Column onClicked: { - connectedPrinter.moveHead(0, -10, 0) + connectedPrinter.moveHead(0, -distancesRow.currentDistance, 0) } } @@ -831,7 +831,7 @@ Column onClicked: { - connectedPrinter.moveHead(0, 0, 10) + connectedPrinter.moveHead(0, 0, distancesRow.currentDistance) } } @@ -857,12 +857,93 @@ Column onClicked: { - connectedPrinter.moveHead(0, 0, -10) + connectedPrinter.moveHead(0, 0, -distancesRow.currentDistance) } } } } + Row + { + id: distancesRow + + width: base.width - 2 * UM.Theme.getSize("default_margin").width + height: childrenRect.height + 2 * UM.Theme.getSize("default_margin").width + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + + spacing: UM.Theme.getSize("default_margin").width + + property real currentDistance: 10 + + Label + { + text: catalog.i18nc("@label", "Jog distance") + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + + width: Math.floor(parent.width * 0.4) - UM.Theme.getSize("default_margin").width + } + + Row + { + Repeater + { + model: distancesModel + delegate: Button + { + height: UM.Theme.getSize("setting_control").height + width: height + UM.Theme.getSize("default_margin").width + + text: model.label + exclusiveGroup: distanceGroup + checkable: true + checked: distancesRow.currentDistance == model.value + onClicked: distancesRow.currentDistance = model.value + + style: ButtonStyle { + background: Rectangle { + border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width + border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : + control.hovered ? UM.Theme.getColor("action_button_hovered_border") : + UM.Theme.getColor("action_button_border") + color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : + control.hovered ? UM.Theme.getColor("action_button_hovered") : + UM.Theme.getColor("action_button") + Behavior on color { ColorAnimation { duration: 50; } } + Label { + anchors.left: parent.left + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: UM.Theme.getSize("default_lining").width * 2 + anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2 + color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_text") : + control.hovered ? UM.Theme.getColor("action_button_hovered_text") : + UM.Theme.getColor("action_button_text") + font: UM.Theme.getFont("default") + text: control.text + horizontalAlignment: Text.AlignHCenter + elide: Text.ElideMiddle + } + } + label: Item { } + } + } + } + } + + ListModel + { + id: distancesModel + ListElement { label: "0.1"; value: 0.1 } + ListElement { label: "1"; value: 1 } + ListElement { label: "10"; value: 10 } + ListElement { label: "100"; value: 100 } + } + ExclusiveGroup { id: distanceGroup } + } + + Loader { sourceComponent: monitorSection From 35684e0aa45ff37b8ed0508939fb4798a4ddf362 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Tue, 24 Oct 2017 09:57:48 +0200 Subject: [PATCH 110/218] Move profiles dropdown text generator to separate method --- resources/qml/Settings/SettingView.qml | 31 ++++++++++++++++---------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 56fd789564..1892b9d5a6 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -51,27 +51,34 @@ Item { id: globalProfileSelection - text: { - var result = Cura.MachineManager.activeQualityName; - if (Cura.MachineManager.activeQualityLayerHeight > 0) { - result += " "; - result += " - "; - result += Cura.MachineManager.activeQualityLayerHeight + "mm"; - result += ""; - } - return result; - } + text: generateActiveQualityText() enabled: !header.currentExtruderVisible || header.currentExtruderIndex > -1 - width: Math.floor(parent.width * 0.55) height: UM.Theme.getSize("setting_control").height anchors.left: globalProfileLabel.right anchors.right: parent.right tooltip: Cura.MachineManager.activeQualityName style: UM.Theme.styles.sidebar_header_button - activeFocusOnPress: true; + activeFocusOnPress: true menu: ProfileMenu { } + function generateActiveQualityText () { + var result = "" + + if (Cura.MachineManager.activeQualityName) { + result += Cura.MachineManager.activeQualityName + + if (Cura.MachineManager.activeQualityLayerHeight > 0) { + result += " " + result += " - " + result += Cura.MachineManager.activeQualityLayerHeight + "mm" + result += "" + } + } + + return result + } + UM.SimpleButton { id: customisedSettings From 6294900bc72f4b791ccf6c820a69bc488d68faef Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 24 Oct 2017 10:23:07 +0200 Subject: [PATCH 111/218] Disable controls when manual control is not available --- resources/qml/PrintMonitor.qml | 470 +++++++++++++++++---------------- 1 file changed, 245 insertions(+), 225 deletions(-) diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 84097798bf..412b6e9a59 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -683,250 +683,270 @@ Column property string label: catalog.i18nc("@label", "Printer control") } - Row + Column { - width: base.width - 2 * UM.Theme.getSize("default_margin").width - height: childrenRect.height + 2 * UM.Theme.getSize("default_margin").width - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width - - spacing: UM.Theme.getSize("default_margin").width - - Label + enabled: { - text: catalog.i18nc("@label", "Jog position") - color: UM.Theme.getColor("setting_control_text") - font: UM.Theme.getFont("default") - - width: Math.floor(parent.width * 0.4) - UM.Theme.getSize("default_margin").width - } - - GridLayout - { - columns: 3 - rows: 4 - rowSpacing: UM.Theme.getSize("default_lining").width - columnSpacing: UM.Theme.getSize("default_lining").height - - Label + if (connectedPrinter == null) { - text: catalog.i18nc("@label", "X/Y") - color: UM.Theme.getColor("setting_control_text") - font: UM.Theme.getFont("default") - width: parent.width - horizontalAlignment: Text.AlignHCenter - - Layout.row: 1 - Layout.column: 2 - Layout.preferredWidth: UM.Theme.getSize("section").height + return false; //Can't control the printer if not connected. } - - Button + if (!connectedPrinter.acceptsCommands) { - Layout.row: 2 - Layout.column: 2 - Layout.preferredWidth: width - Layout.preferredHeight: height - iconSource: UM.Theme.getIcon("arrow_top"); - style: monitorButtonStyle - width: height - height: UM.Theme.getSize("setting_control").height - - onClicked: - { - connectedPrinter.moveHead(0, distancesRow.currentDistance, 0) - } + return false; //Not allowed to do anything. } - - Button + if (connectedPrinter.jobState == "printing" || connectedPrinter.jobState == "resuming" || connectedPrinter.jobState == "pausing" || connectedPrinter.jobState == "error" || connectedPrinter.jobState == "offline") { - Layout.row: 3 - Layout.column: 1 - Layout.preferredWidth: width - Layout.preferredHeight: height - iconSource: UM.Theme.getIcon("arrow_left"); - style: monitorButtonStyle - width: height - height: UM.Theme.getSize("setting_control").height - - onClicked: - { - connectedPrinter.moveHead(-distancesRow.currentDistance, 0, 0) - } + return false; //Printer is in a state where it can't react to manual control } - - Button - { - Layout.row: 3 - Layout.column: 3 - Layout.preferredWidth: width - Layout.preferredHeight: height - iconSource: UM.Theme.getIcon("arrow_right"); - style: monitorButtonStyle - width: height - height: UM.Theme.getSize("setting_control").height - - onClicked: - { - connectedPrinter.moveHead(distancesRow.currentDistance, 0, 0) - } - } - - Button - { - Layout.row: 4 - Layout.column: 2 - Layout.preferredWidth: width - Layout.preferredHeight: height - iconSource: UM.Theme.getIcon("arrow_bottom"); - style: monitorButtonStyle - width: height - height: UM.Theme.getSize("setting_control").height - - onClicked: - { - connectedPrinter.moveHead(0, -distancesRow.currentDistance, 0) - } - } - - Button - { - Layout.row: 3 - Layout.column: 2 - Layout.preferredWidth: width - Layout.preferredHeight: height - iconSource: UM.Theme.getIcon("home"); - style: monitorButtonStyle - width: height - height: UM.Theme.getSize("setting_control").height - - onClicked: - { - connectedPrinter.homeHead() - } - } - } - - - Column - { - spacing: UM.Theme.getSize("default_lining").height - - Label - { - text: catalog.i18nc("@label", "Z") - color: UM.Theme.getColor("setting_control_text") - font: UM.Theme.getFont("default") - width: UM.Theme.getSize("section").height - - horizontalAlignment: Text.AlignHCenter - } - - Button - { - iconSource: UM.Theme.getIcon("arrow_top"); - style: monitorButtonStyle - width: height - height: UM.Theme.getSize("setting_control").height - - onClicked: - { - connectedPrinter.moveHead(0, 0, distancesRow.currentDistance) - } - } - - Button - { - iconSource: UM.Theme.getIcon("home"); - style: monitorButtonStyle - width: height - height: UM.Theme.getSize("setting_control").height - - onClicked: - { - connectedPrinter.homeBed() - } - } - - Button - { - iconSource: UM.Theme.getIcon("arrow_bottom"); - style: monitorButtonStyle - width: height - height: UM.Theme.getSize("setting_control").height - - onClicked: - { - connectedPrinter.moveHead(0, 0, -distancesRow.currentDistance) - } - } - } - } - - Row - { - id: distancesRow - - width: base.width - 2 * UM.Theme.getSize("default_margin").width - height: childrenRect.height + 2 * UM.Theme.getSize("default_margin").width - anchors.left: parent.left - anchors.leftMargin: UM.Theme.getSize("default_margin").width - - spacing: UM.Theme.getSize("default_margin").width - - property real currentDistance: 10 - - Label - { - text: catalog.i18nc("@label", "Jog distance") - color: UM.Theme.getColor("setting_control_text") - font: UM.Theme.getFont("default") - - width: Math.floor(parent.width * 0.4) - UM.Theme.getSize("default_margin").width + return true; } Row { - Repeater + width: base.width - 2 * UM.Theme.getSize("default_margin").width + height: childrenRect.height + UM.Theme.getSize("default_margin").width + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + + spacing: UM.Theme.getSize("default_margin").width + + Label { - model: distancesModel - delegate: Button + text: catalog.i18nc("@label", "Jog position") + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + + width: Math.floor(parent.width * 0.4) - UM.Theme.getSize("default_margin").width + } + + GridLayout + { + columns: 3 + rows: 4 + rowSpacing: UM.Theme.getSize("default_lining").width + columnSpacing: UM.Theme.getSize("default_lining").height + + Label { + text: catalog.i18nc("@label", "X/Y") + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + width: parent.width + horizontalAlignment: Text.AlignHCenter + + Layout.row: 1 + Layout.column: 2 + Layout.preferredWidth: UM.Theme.getSize("section").height + } + + Button + { + Layout.row: 2 + Layout.column: 2 + Layout.preferredWidth: width + Layout.preferredHeight: height + iconSource: UM.Theme.getIcon("arrow_top"); + style: monitorButtonStyle + width: height height: UM.Theme.getSize("setting_control").height - width: height + UM.Theme.getSize("default_margin").width - text: model.label - exclusiveGroup: distanceGroup - checkable: true - checked: distancesRow.currentDistance == model.value - onClicked: distancesRow.currentDistance = model.value + onClicked: + { + connectedPrinter.moveHead(0, distancesRow.currentDistance, 0) + } + } - style: ButtonStyle { - background: Rectangle { - border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width - border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : - control.hovered ? UM.Theme.getColor("action_button_hovered_border") : - UM.Theme.getColor("action_button_border") - color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : - control.hovered ? UM.Theme.getColor("action_button_hovered") : - UM.Theme.getColor("action_button") - Behavior on color { ColorAnimation { duration: 50; } } - Label { - anchors.left: parent.left - anchors.right: parent.right - anchors.verticalCenter: parent.verticalCenter - anchors.leftMargin: UM.Theme.getSize("default_lining").width * 2 - anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2 - color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_text") : - control.hovered ? UM.Theme.getColor("action_button_hovered_text") : - UM.Theme.getColor("action_button_text") - font: UM.Theme.getFont("default") - text: control.text - horizontalAlignment: Text.AlignHCenter - elide: Text.ElideMiddle + Button + { + Layout.row: 3 + Layout.column: 1 + Layout.preferredWidth: width + Layout.preferredHeight: height + iconSource: UM.Theme.getIcon("arrow_left"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.moveHead(-distancesRow.currentDistance, 0, 0) + } + } + + Button + { + Layout.row: 3 + Layout.column: 3 + Layout.preferredWidth: width + Layout.preferredHeight: height + iconSource: UM.Theme.getIcon("arrow_right"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.moveHead(distancesRow.currentDistance, 0, 0) + } + } + + Button + { + Layout.row: 4 + Layout.column: 2 + Layout.preferredWidth: width + Layout.preferredHeight: height + iconSource: UM.Theme.getIcon("arrow_bottom"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.moveHead(0, -distancesRow.currentDistance, 0) + } + } + + Button + { + Layout.row: 3 + Layout.column: 2 + Layout.preferredWidth: width + Layout.preferredHeight: height + iconSource: UM.Theme.getIcon("home"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.homeHead() + } + } + } + + + Column + { + spacing: UM.Theme.getSize("default_lining").height + + Label + { + text: catalog.i18nc("@label", "Z") + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + width: UM.Theme.getSize("section").height + + horizontalAlignment: Text.AlignHCenter + } + + Button + { + iconSource: UM.Theme.getIcon("arrow_top"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.moveHead(0, 0, distancesRow.currentDistance) + } + } + + Button + { + iconSource: UM.Theme.getIcon("home"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.homeBed() + } + } + + Button + { + iconSource: UM.Theme.getIcon("arrow_bottom"); + style: monitorButtonStyle + width: height + height: UM.Theme.getSize("setting_control").height + + onClicked: + { + connectedPrinter.moveHead(0, 0, -distancesRow.currentDistance) + } + } + } + } + + Row + { + id: distancesRow + + width: base.width - 2 * UM.Theme.getSize("default_margin").width + height: childrenRect.height + UM.Theme.getSize("default_margin").width + anchors.left: parent.left + anchors.leftMargin: UM.Theme.getSize("default_margin").width + + spacing: UM.Theme.getSize("default_margin").width + + property real currentDistance: 10 + + Label + { + text: catalog.i18nc("@label", "Jog distance") + color: UM.Theme.getColor("setting_control_text") + font: UM.Theme.getFont("default") + + width: Math.floor(parent.width * 0.4) - UM.Theme.getSize("default_margin").width + } + + Row + { + Repeater + { + model: distancesModel + delegate: Button + { + height: UM.Theme.getSize("setting_control").height + width: height + UM.Theme.getSize("default_margin").width + + text: model.label + exclusiveGroup: distanceGroup + checkable: true + checked: distancesRow.currentDistance == model.value + onClicked: distancesRow.currentDistance = model.value + + style: ButtonStyle { + background: Rectangle { + border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width + border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : + control.hovered ? UM.Theme.getColor("action_button_hovered_border") : + UM.Theme.getColor("action_button_border") + color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : + control.hovered ? UM.Theme.getColor("action_button_hovered") : + UM.Theme.getColor("action_button") + Behavior on color { ColorAnimation { duration: 50; } } + Label { + anchors.left: parent.left + anchors.right: parent.right + anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: UM.Theme.getSize("default_lining").width * 2 + anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2 + color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_text") : + control.hovered ? UM.Theme.getColor("action_button_hovered_text") : + UM.Theme.getColor("action_button_text") + font: UM.Theme.getFont("default") + text: control.text + horizontalAlignment: Text.AlignHCenter + elide: Text.ElideMiddle + } } + label: Item { } } - label: Item { } } } } From b50f027c8349945fa7fcfcc3b28f0df1d0c98e1d Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Tue, 24 Oct 2017 10:25:53 +0200 Subject: [PATCH 112/218] Add not supported role to profiles model --- cura/Settings/ProfilesModel.py | 5 ++++- resources/qml/Menus/ProfileMenu.qml | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/cura/Settings/ProfilesModel.py b/cura/Settings/ProfilesModel.py index 8aeccd7e14..59a2e8d78f 100644 --- a/cura/Settings/ProfilesModel.py +++ b/cura/Settings/ProfilesModel.py @@ -20,12 +20,14 @@ class ProfilesModel(InstanceContainersModel): LayerHeightRole = Qt.UserRole + 1001 LayerHeightWithoutUnitRole = Qt.UserRole + 1002 AvailableRole = Qt.UserRole + 1003 + NotSupportedRole = Qt.UserRole + 1004 def __init__(self, parent = None): super().__init__(parent) self.addRoleName(self.LayerHeightRole, "layer_height") self.addRoleName(self.LayerHeightWithoutUnitRole, "layer_height_without_unit") self.addRoleName(self.AvailableRole, "available") + self.addRoleName(self.NotSupportedRole, "not_supported") Application.getInstance().globalContainerStackChanged.connect(self._update) @@ -182,7 +184,8 @@ class ProfilesModel(InstanceContainersModel): profile = container_registry.findContainers(id=item["id"]) if not profile: self._setItemLayerHeight(item, "", "") - item["available"] = True + item["available"] = False + item["not_supported"] = True yield item continue diff --git a/resources/qml/Menus/ProfileMenu.qml b/resources/qml/Menus/ProfileMenu.qml index b0f2ef14d2..f3886d4743 100644 --- a/resources/qml/Menus/ProfileMenu.qml +++ b/resources/qml/Menus/ProfileMenu.qml @@ -22,7 +22,7 @@ Menu checked: Cura.MachineManager.activeQualityChangesId == "" && Cura.MachineManager.activeQualityType == model.metadata.quality_type exclusiveGroup: group onTriggered: Cura.MachineManager.setActiveQuality(model.id) - visible: model.available + visible: model.available || model.not_supported } onObjectAdded: menu.insertItem(index, object); From a9f2ad7ca348f974949d811b913f01e53d7ffa81 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 24 Oct 2017 11:03:51 +0200 Subject: [PATCH 113/218] Hide manual controls for outputdevices that don't support it --- cura/PrinterOutputDevice.py | 6 ++++++ .../NetworkClusterPrinterOutputDevice.py | 1 + resources/qml/PrintMonitor.qml | 13 +++++++------ 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/cura/PrinterOutputDevice.py b/cura/PrinterOutputDevice.py index c6e98257ba..837ecc97c6 100644 --- a/cura/PrinterOutputDevice.py +++ b/cura/PrinterOutputDevice.py @@ -74,6 +74,7 @@ class PrinterOutputDevice(QObject, OutputDevice): self._can_pause = True self._can_abort = True self._can_pre_heat_bed = True + self._can_control_manually = True def requestWrite(self, nodes, file_name = None, filter_by_machine = False, file_handler = None): raise NotImplementedError("requestWrite needs to be implemented") @@ -144,6 +145,11 @@ class PrinterOutputDevice(QObject, OutputDevice): def canAbort(self): return self._can_abort + # Does the printer support manual control at all + @pyqtProperty(bool, constant=True) + def canControlManually(self): + return self._can_control_manually + @pyqtProperty(QObject, constant=True) def monitorItem(self): # Note that we specifically only check if the monitor component is created. diff --git a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py index cfa793996b..dee6b30e4b 100644 --- a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py @@ -103,6 +103,7 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte self._can_pause = True self._can_abort = True self._can_pre_heat_bed = False + self._can_control_manually = False self._cluster_size = int(properties.get(b"cluster_size", 0)) self._cleanupRequest() diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index 412b6e9a59..f926444847 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -677,14 +677,9 @@ Column watchedProperties: ["value"] } - Loader - { - sourceComponent: monitorSection - property string label: catalog.i18nc("@label", "Printer control") - } - Column { + visible: connectedPrinter != null ? connectedPrinter.canControlManually : false enabled: { if (connectedPrinter == null) @@ -702,6 +697,12 @@ Column return true; } + Loader + { + sourceComponent: monitorSection + property string label: catalog.i18nc("@label", "Printer control") + } + Row { width: base.width - 2 * UM.Theme.getSize("default_margin").width From 46fc478f9d0974d50208d5cee3936db357d67970 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 24 Oct 2017 11:15:33 +0200 Subject: [PATCH 114/218] Tweak disabled appearance --- resources/qml/PrintMonitor.qml | 72 ++++++++++++++++++++++++---------- 1 file changed, 51 insertions(+), 21 deletions(-) diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index f926444847..b0b68d0338 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -924,12 +924,38 @@ Column style: ButtonStyle { background: Rectangle { border.width: control.checked ? UM.Theme.getSize("default_lining").width * 2 : UM.Theme.getSize("default_lining").width - border.color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_border") : - control.hovered ? UM.Theme.getColor("action_button_hovered_border") : - UM.Theme.getColor("action_button_border") - color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active") : - control.hovered ? UM.Theme.getColor("action_button_hovered") : - UM.Theme.getColor("action_button") + border.color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled_border"); + } + else if (control.checked || control.pressed) + { + return UM.Theme.getColor("action_button_active_border"); + } + else if(control.hovered) + { + return UM.Theme.getColor("action_button_hovered_border"); + } + return UM.Theme.getColor("action_button_border"); + } + color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled"); + } + else if (control.checked || control.pressed) + { + return UM.Theme.getColor("action_button_active"); + } + else if (control.hovered) + { + return UM.Theme.getColor("action_button_hovered"); + } + return UM.Theme.getColor("action_button"); + } Behavior on color { ColorAnimation { duration: 50; } } Label { anchors.left: parent.left @@ -937,9 +963,22 @@ Column anchors.verticalCenter: parent.verticalCenter anchors.leftMargin: UM.Theme.getSize("default_lining").width * 2 anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2 - color: (control.checked || control.pressed) ? UM.Theme.getColor("action_button_active_text") : - control.hovered ? UM.Theme.getColor("action_button_hovered_text") : - UM.Theme.getColor("action_button_text") + color: + { + if(!control.enabled) + { + return UM.Theme.getColor("action_button_disabled_text"); + } + else if (control.checked || control.pressed) + { + return UM.Theme.getColor("action_button_active_text"); + } + else if (control.hovered) + { + return UM.Theme.getColor("action_button_hovered_text"); + } + return UM.Theme.getColor("action_button_text"); + } font: UM.Theme.getFont("default") text: control.text horizontalAlignment: Text.AlignHCenter @@ -1066,10 +1105,7 @@ Column { return UM.Theme.getColor("action_button_hovered_border"); } - else - { - return UM.Theme.getColor("action_button_border"); - } + return UM.Theme.getColor("action_button_border"); } color: { @@ -1085,10 +1121,7 @@ Column { return UM.Theme.getColor("action_button_hovered"); } - else - { - return UM.Theme.getColor("action_button"); - } + return UM.Theme.getColor("action_button"); } Behavior on color { @@ -1123,10 +1156,7 @@ Column { return UM.Theme.getColor("action_button_hovered_text"); } - else - { - return UM.Theme.getColor("action_button_text"); - } + return UM.Theme.getColor("action_button_text"); } source: control.iconSource } From d8e1b5b9b40146b2d7c0c903c45c0a4393d87e8a Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Tue, 24 Oct 2017 11:25:12 +0200 Subject: [PATCH 115/218] CURA-4481 add setting Remove Empty First Layers --- plugins/CuraEngineBackend/ProcessSlicedLayersJob.py | 1 + resources/definitions/fdmprinter.def.json | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py index c9fac23d91..a352564bc2 100644 --- a/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py +++ b/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py @@ -240,3 +240,4 @@ class ProcessSlicedLayersJob(Job): else: if self._progress_message: self._progress_message.hide() + diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 826449afd9..baae3f7579 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3956,6 +3956,15 @@ "limit_to_extruder": "support_infill_extruder_nr", "enabled": "support_enable and support_use_towers", "settable_per_mesh": true + }, + "remove_empty_first_layers": + { + "label": "Remove Empty First Layers", + "description": "Remove empty layers beneath the first printed layer if they are present.", + "type": "bool", + "default_value": true, + "settable_per_mesh": false, + "settable_per_extruder": false } } }, From 7dc4975b361570759ee602231f2efbf09d3afa61 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Tue, 24 Oct 2017 11:33:47 +0200 Subject: [PATCH 116/218] Tweak layout and texts --- resources/qml/PrintMonitor.qml | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/resources/qml/PrintMonitor.qml b/resources/qml/PrintMonitor.qml index b0b68d0338..ce169ba714 100644 --- a/resources/qml/PrintMonitor.qml +++ b/resources/qml/PrintMonitor.qml @@ -714,11 +714,13 @@ Column Label { - text: catalog.i18nc("@label", "Jog position") + text: catalog.i18nc("@label", "Jog Position") color: UM.Theme.getColor("setting_control_text") font: UM.Theme.getFont("default") width: Math.floor(parent.width * 0.4) - UM.Theme.getSize("default_margin").width + height: UM.Theme.getSize("setting_control").height + verticalAlignment: Text.AlignVCenter } GridLayout @@ -733,12 +735,15 @@ Column text: catalog.i18nc("@label", "X/Y") color: UM.Theme.getColor("setting_control_text") font: UM.Theme.getFont("default") - width: parent.width + width: height + height: UM.Theme.getSize("setting_control").height + verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter Layout.row: 1 Layout.column: 2 - Layout.preferredWidth: UM.Theme.getSize("section").height + Layout.preferredWidth: width + Layout.preferredHeight: height } Button @@ -838,7 +843,8 @@ Column color: UM.Theme.getColor("setting_control_text") font: UM.Theme.getFont("default") width: UM.Theme.getSize("section").height - + height: UM.Theme.getSize("setting_control").height + verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter } @@ -898,11 +904,13 @@ Column Label { - text: catalog.i18nc("@label", "Jog distance") + text: catalog.i18nc("@label", "Jog Distance") color: UM.Theme.getColor("setting_control_text") font: UM.Theme.getFont("default") width: Math.floor(parent.width * 0.4) - UM.Theme.getSize("default_margin").width + height: UM.Theme.getSize("setting_control").height + verticalAlignment: Text.AlignVCenter } Row From 9083fe1bf0d51063d355fae5557338aa2923f60f Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Tue, 24 Oct 2017 11:53:56 +0200 Subject: [PATCH 117/218] Add not supported instance container type and qt role - CURA-4451 --- cura/Settings/NotSupportedProfileContainer.py | 47 +++++++ cura/Settings/ProfilesModel.py | 33 +++-- .../builder_premium_large.def.json | 117 ++++++++++++++++++ .../builder_premium_medium.def.json | 117 ++++++++++++++++++ .../builder_premium_small.def.json | 116 +++++++++++++++++ .../builder_premium_large_front.def.json | 27 ++++ .../builder_premium_large_rear.def.json | 27 ++++ .../builder_premium_medium_front.def.json | 27 ++++ .../builder_premium_medium_rear.def.json | 27 ++++ .../builder_premium_small_front.def.json | 27 ++++ .../builder_premium_small_rear.def.json | 27 ++++ resources/meshes/builder_premium_platform.stl | Bin 0 -> 1348084 bytes .../bp_PLA_Coarse_Quality.inst.cfg | 24 ++++ .../bp_PLA_High_Quality.inst.cfg | 25 ++++ .../bp_PLA_Normal_Quality.inst.cfg | 23 ++++ 15 files changed, 645 insertions(+), 19 deletions(-) create mode 100644 cura/Settings/NotSupportedProfileContainer.py create mode 100644 resources/definitions/builder_premium_large.def.json create mode 100644 resources/definitions/builder_premium_medium.def.json create mode 100644 resources/definitions/builder_premium_small.def.json create mode 100644 resources/extruders/builder_premium_large_front.def.json create mode 100644 resources/extruders/builder_premium_large_rear.def.json create mode 100644 resources/extruders/builder_premium_medium_front.def.json create mode 100644 resources/extruders/builder_premium_medium_rear.def.json create mode 100644 resources/extruders/builder_premium_small_front.def.json create mode 100644 resources/extruders/builder_premium_small_rear.def.json create mode 100644 resources/meshes/builder_premium_platform.stl create mode 100644 resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg create mode 100644 resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg diff --git a/cura/Settings/NotSupportedProfileContainer.py b/cura/Settings/NotSupportedProfileContainer.py new file mode 100644 index 0000000000..156f13ba4a --- /dev/null +++ b/cura/Settings/NotSupportedProfileContainer.py @@ -0,0 +1,47 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from UM.Signal import signalemitter + +from UM.Settings.InstanceContainer import InstanceContainer +from UM.Settings.ContainerRegistry import ContainerRegistry +from UM.MimeTypeDatabase import MimeType, MimeTypeDatabase + + +## A container for not supported profiles. +# +# +@signalemitter +class NotSupportedProfileContainer(InstanceContainer): + + def __init__(self, container_id: str, machine_id: str, material_id: str, *args, **kwargs): + super().__init__(container_id, *args, **kwargs) + + # self._id = str(container_id) # type: str + # self._name = "Not supported" # type: str + + self.setMetaData({ + "setting_version": 3, + "supported": False, + "type": "quality", + "weight": "0", + "material": material_id + }) + + # register this container + ContainerRegistry.getInstance().addContainer(self) + + # set printer definition + definition = ContainerRegistry.getInstance().findDefinitionContainers(id = machine_id) + self.setDefinition(definition[0]) + + +# register the container mime type +not_support_instance_mime = MimeType( + name = "application/x-cura-notsupportedinstancecontainer", + comment = "Cura Not Supported Instance Container", + suffixes = [] +) + +MimeTypeDatabase.addMimeType(not_support_instance_mime) +ContainerRegistry.addContainerTypeByName(NotSupportedProfileContainer, "not_supported_instance", not_support_instance_mime.name) diff --git a/cura/Settings/ProfilesModel.py b/cura/Settings/ProfilesModel.py index 59a2e8d78f..68d538c671 100644 --- a/cura/Settings/ProfilesModel.py +++ b/cura/Settings/ProfilesModel.py @@ -7,11 +7,11 @@ from PyQt5.QtCore import Qt from UM.Application import Application from UM.Settings.ContainerRegistry import ContainerRegistry -from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.Models.InstanceContainersModel import InstanceContainersModel from cura.QualityManager import QualityManager from cura.Settings.ExtruderManager import ExtruderManager +from cura.Settings.NotSupportedProfileContainer import NotSupportedProfileContainer ## QML Model for listing the current list of valid quality profiles. @@ -78,9 +78,9 @@ class ProfilesModel(InstanceContainersModel): if len(result) == 0: machine_id = global_container_stack.definition.getId() material_id = extruder_stacks[0].material.getId() - not_supported_container = self.generateNoSupportedInstanceContainer(machine_id, material_id) + container_id = machine_id + "_" + material_id + "_not_supported" + not_supported_container = NotSupportedProfileContainer(container_id, machine_id, material_id) result.append(not_supported_container) - # ContainerRegistry.getInstance().addContainer(not_supported_container) return result # The usable quality types are set @@ -98,32 +98,22 @@ class ProfilesModel(InstanceContainersModel): return result - def generateNoSupportedInstanceContainer(self, machine_id: str, material_id: str): - container = InstanceContainer("not_supported") - container.setName("Not Supported") - container.metaData["setting_version"] = 3 - container.metaData["supported"] = False - container.metaData["type"] = "quality" - container.metaData["weight"] = "0" - container.metaData["material"] = material_id - container.metaData["quality_type"] = "normal" - definition = ContainerRegistry.getInstance().findDefinitionContainers(id = machine_id) - container.setDefinition(definition) - return container - ## Re-computes the items in this model, and adds the layer height role. def _recomputeItems(self): - #Some globals that we can re-use. + + # Some globals that we can re-use. global_container_stack = Application.getInstance().getGlobalContainerStack() if global_container_stack is None: return # Detecting if the machine has multiple extrusion multiple_extrusion = global_container_stack.getProperty("machine_extruder_count", "value") > 1 + # Get the list of extruders and place the selected extruder at the front of the list. extruder_manager = ExtruderManager.getInstance() active_extruder = extruder_manager.getActiveExtruderStack() extruder_stacks = extruder_manager.getActiveExtruderStacks() + if multiple_extrusion: # Place the active extruder at the front of the list. # This is a workaround checking if there is an active_extruder or not before moving it to the front of the list. @@ -181,7 +171,9 @@ class ProfilesModel(InstanceContainersModel): # Now all the containers are set for item in containers: - profile = container_registry.findContainers(id=item["id"]) + profile = container_registry.findContainers(id = item["id"]) + + # when the profile is not supported if not profile: self._setItemLayerHeight(item, "", "") item["available"] = False @@ -195,6 +187,7 @@ class ProfilesModel(InstanceContainersModel): # Easy case: This profile defines its own layer height. if profile.hasProperty("layer_height", "value"): self._setItemLayerHeight(item, profile.getProperty("layer_height", "value"), unit) + item["not_supported"] = False yield item continue @@ -213,16 +206,18 @@ class ProfilesModel(InstanceContainersModel): quality = None if quality and quality.hasProperty("layer_height", "value"): self._setItemLayerHeight(item, quality.getProperty("layer_height", "value"), unit) + item["not_supported"] = False yield item continue - #Quality has no value for layer height either. Get the layer height from somewhere lower in the stack. + # Quality has no value for layer height either. Get the layer height from somewhere lower in the stack. skip_until_container = global_container_stack.material if not skip_until_container or skip_until_container == ContainerRegistry.getInstance().getEmptyInstanceContainer(): #No material in stack. skip_until_container = global_container_stack.variant if not skip_until_container or skip_until_container == ContainerRegistry.getInstance().getEmptyInstanceContainer(): #No variant in stack. skip_until_container = global_container_stack.getBottom() self._setItemLayerHeight(item, global_container_stack.getRawProperty("layer_height", "value", skip_until_container = skip_until_container.getId()), unit) # Fall through to the currently loaded material. + item["not_supported"] = False yield item def _setItemLayerHeight(self, item, value, unit): diff --git a/resources/definitions/builder_premium_large.def.json b/resources/definitions/builder_premium_large.def.json new file mode 100644 index 0000000000..5fc4b46c98 --- /dev/null +++ b/resources/definitions/builder_premium_large.def.json @@ -0,0 +1,117 @@ +{ + "id": "builder_premium_large", + "version": 2, + "name": "Builder Premium Large", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Builder SZ", + "manufacturer": "Builder", + "category": "Other", + "quality_definition": "builder_premium_small", + "file_formats": "text/x-gcode", + "platform": "builder_premium_platform.stl", + "platform_offset": [-126, -36, 117], + "has_machine_quality": true, + "preferred_quality": "*Normal*", + "machine_extruder_trains": + { + "0": "builder_premium_large_rear", + "1": "builder_premium_large_front" + } + }, + + + + "overrides": { + "machine_name": { "default_value": "Builder Premium Large" }, + "machine_heated_bed": { "default_value": true }, + "machine_width": { "default_value": 215 }, + "machine_height": { "default_value": 600 }, + "machine_depth": { "default_value": 205 }, + "material_diameter": { "default_value": 1.75 }, + + "infill_pattern": {"value": "'triangles'" }, + "infill_before_walls": {"value": false }, + + "default_material_print_temperature": { "value": "215" }, + "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, + "material_standby_temperature": { "value": "material_print_temperature" }, + + "switch_extruder_retraction_speeds": {"default_value": 15 }, + "switch_extruder_retraction_speed": {"default_value": 15 }, + "switch_extruder_prime_speed": {"default_value": 15 }, + "switch_extruder_retraction_amount": {"value": 1 }, + + "speed_travel": { "value": "100" }, + "speed_layer_0": { "value": "20" }, + "speed_prime_tower": { "value": "speed_topbottom" }, + "speed_print": { "value": "40" }, + "speed_support": { "value": "speed_wall_0" }, + "speed_support_interface": { "value": "speed_topbottom" }, + "speed_topbottom": { "value": "math.ceil(speed_print * 20 / 35)" }, + "speed_wall": { "value": "math.ceil(speed_print * 30 / 40)" }, + "speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 25)" }, + "speed_wall_x": { "value": "speed_wall" }, + + "prime_tower_position_x": { "default_value": 175 }, + "prime_tower_position_y": { "default_value": 178 }, + "prime_tower_wipe_enabled": { "default_value": false }, + "prime_tower_min_volume": { "default_value": 50 }, + "dual_pre_wipe": { "default_value": false }, + + "prime_blob_enable": { "enabled": true }, + + "acceleration_enabled": { "value": "True" }, + "acceleration_layer_0": { "value": "acceleration_topbottom" }, + "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_print": { "value": "3000" }, + "acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_support_interface": { "value": "acceleration_topbottom" }, + "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_travel": { "value": "acceleration_print" }, + "acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 1000 / 1000)" }, + + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "cool_min_layer_time": { "default_value": 10 }, + + "jerk_enabled": { "value": "True" }, + "jerk_layer_0": { "value": "jerk_topbottom" }, + "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_print": { "value": "25" }, + "jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_support_interface": { "value": "jerk_topbottom" }, + "jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" }, + "jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" }, + "jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" }, + + "wall_thickness": { "value": "1.2" }, + + "retraction_amount": { "default_value": 3 }, + "retraction_speed": { "default_value": 15 }, + "retraction_retract_speed": { "default_value": 15 }, + "retraction_prime_speed": { "default_value": 15 }, + "travel_retract_before_outer_wall": { "default_value": true }, + "skin_overlap": { "value": "15" }, + "adhesion_type": { "default_value": "skirt" }, + "machine_nozzle_heat_up_speed": { "default_value": 2 }, + "machine_nozzle_cool_down_speed": { "default_value": 2 }, + "machine_head_polygon": { "default_value": [[-75, -18],[-75, 35],[18, 35],[18, -18]] }, + "gantry_height": { "default_value": 55 }, + "machine_max_feedrate_x": { "default_value": 300 }, + "machine_max_feedrate_y": { "default_value": 300 }, + "machine_max_feedrate_z": { "default_value": 40 }, + "machine_max_acceleration_z": { "default_value": 500 }, + "machine_acceleration": { "default_value": 1000 }, + "machine_max_jerk_xy": { "default_value": 10 }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + "machine_start_gcode": { + "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E15 ;extrude 15mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\nT0 ;Start with Rear Extruder\n;Put printing message on LCD screen\nM117 Printing..." + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" + }, + "machine_extruder_count": { "default_value": 2 } + } +} \ No newline at end of file diff --git a/resources/definitions/builder_premium_medium.def.json b/resources/definitions/builder_premium_medium.def.json new file mode 100644 index 0000000000..56dab8f863 --- /dev/null +++ b/resources/definitions/builder_premium_medium.def.json @@ -0,0 +1,117 @@ +{ + "id": "builder_premium_medium", + "version": 2, + "name": "Builder Premium Medium", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Builder SZ", + "manufacturer": "Builder", + "category": "Other", + "quality_definition": "builder_premium_small", + "file_formats": "text/x-gcode", + "platform": "builder_premium_platform.stl", + "platform_offset": [-126, -36, 117], + "has_machine_quality": true, + "preferred_quality": "*Normal*", + "machine_extruder_trains": + { + "0": "builder_premium_medium_rear", + "1": "builder_premium_medium_front" + } + }, + + + + "overrides": { + "machine_name": { "default_value": "Builder Premium Medium" }, + "machine_heated_bed": { "default_value": true }, + "machine_width": { "default_value": 215 }, + "machine_height": { "default_value": 400 }, + "machine_depth": { "default_value": 205 }, + "material_diameter": { "default_value": 1.75 }, + + "infill_pattern": {"value": "'triangles'" }, + "infill_before_walls": {"value": false }, + + "default_material_print_temperature": { "value": "215" }, + "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, + "material_standby_temperature": { "value": "material_print_temperature" }, + + "switch_extruder_retraction_speeds": {"default_value": 15 }, + "switch_extruder_retraction_speed": {"default_value": 15 }, + "switch_extruder_prime_speed": {"default_value": 15 }, + "switch_extruder_retraction_amount": {"value": 1 }, + + "speed_travel": { "value": "100" }, + "speed_layer_0": { "value": "20" }, + "speed_prime_tower": { "value": "speed_topbottom" }, + "speed_print": { "value": "40" }, + "speed_support": { "value": "speed_wall_0" }, + "speed_support_interface": { "value": "speed_topbottom" }, + "speed_topbottom": { "value": "math.ceil(speed_print * 20 / 35)" }, + "speed_wall": { "value": "math.ceil(speed_print * 30 / 40)" }, + "speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 25)" }, + "speed_wall_x": { "value": "speed_wall" }, + + "prime_tower_position_x": { "default_value": 175 }, + "prime_tower_position_y": { "default_value": 178 }, + "prime_tower_wipe_enabled": { "default_value": false }, + "prime_tower_min_volume": { "default_value": 50 }, + "dual_pre_wipe": { "default_value": false }, + + "prime_blob_enable": { "enabled": true }, + + "acceleration_enabled": { "value": "True" }, + "acceleration_layer_0": { "value": "acceleration_topbottom" }, + "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_print": { "value": "3000" }, + "acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_support_interface": { "value": "acceleration_topbottom" }, + "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_travel": { "value": "acceleration_print" }, + "acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 1000 / 1000)" }, + + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "cool_min_layer_time": { "default_value": 10 }, + + "jerk_enabled": { "value": "True" }, + "jerk_layer_0": { "value": "jerk_topbottom" }, + "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_print": { "value": "25" }, + "jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_support_interface": { "value": "jerk_topbottom" }, + "jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" }, + "jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" }, + "jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" }, + + "wall_thickness": { "value": "1.2" }, + + "retraction_amount": { "default_value": 3 }, + "retraction_speed": { "default_value": 15 }, + "retraction_retract_speed": { "default_value": 15 }, + "retraction_prime_speed": { "default_value": 15 }, + "travel_retract_before_outer_wall": { "default_value": true }, + "skin_overlap": { "value": "15" }, + "adhesion_type": { "default_value": "skirt" }, + "machine_nozzle_heat_up_speed": { "default_value": 2 }, + "machine_nozzle_cool_down_speed": { "default_value": 2 }, + "machine_head_polygon": { "default_value": [[-75, -18],[-75, 35],[18, 35],[18, -18]] }, + "gantry_height": { "default_value": 55 }, + "machine_max_feedrate_x": { "default_value": 300 }, + "machine_max_feedrate_y": { "default_value": 300 }, + "machine_max_feedrate_z": { "default_value": 40 }, + "machine_max_acceleration_z": { "default_value": 500 }, + "machine_acceleration": { "default_value": 1000 }, + "machine_max_jerk_xy": { "default_value": 10 }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + "machine_start_gcode": { + "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E15 ;extrude 15mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\nT0 ;Start with Rear Extruder\n;Put printing message on LCD screen\nM117 Printing..." + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" + }, + "machine_extruder_count": { "default_value": 2 } + } +} \ No newline at end of file diff --git a/resources/definitions/builder_premium_small.def.json b/resources/definitions/builder_premium_small.def.json new file mode 100644 index 0000000000..65103ce1af --- /dev/null +++ b/resources/definitions/builder_premium_small.def.json @@ -0,0 +1,116 @@ +{ + "id": "builder_premium_small", + "version": 2, + "name": "Builder Premium Small", + "inherits": "fdmprinter", + "metadata": { + "visible": true, + "author": "Builder SZ", + "manufacturer": "Builder", + "category": "Other", + "file_formats": "text/x-gcode", + "platform": "builder_premium_platform.stl", + "platform_offset": [-126, -36, 117], + "has_machine_quality": true, + "preferred_quality": "*Normal*", + "machine_extruder_trains": + { + "0": "builder_premium_small_rear", + "1": "builder_premium_small_front" + } + }, + + + + "overrides": { + "machine_name": { "default_value": "Builder Premium Small" }, + "machine_heated_bed": { "default_value": true }, + "machine_width": { "default_value": 215 }, + "machine_height": { "default_value": 200 }, + "machine_depth": { "default_value": 205 }, + "material_diameter": { "default_value": 1.75 }, + + "infill_pattern": {"value": "'triangles'" }, + "infill_before_walls": {"value": false }, + + "default_material_print_temperature": { "value": "215" }, + "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, + "material_standby_temperature": { "value": "material_print_temperature" }, + + "switch_extruder_retraction_speeds": {"default_value": 15 }, + "switch_extruder_retraction_speed": {"default_value": 15 }, + "switch_extruder_prime_speed": {"default_value": 15 }, + "switch_extruder_retraction_amount": {"value": 1 }, + + "speed_travel": { "value": "100" }, + "speed_layer_0": { "value": "20" }, + "speed_prime_tower": { "value": "speed_topbottom" }, + "speed_print": { "value": "40" }, + "speed_support": { "value": "speed_wall_0" }, + "speed_support_interface": { "value": "speed_topbottom" }, + "speed_topbottom": { "value": "math.ceil(speed_print * 20 / 35)" }, + "speed_wall": { "value": "math.ceil(speed_print * 30 / 40)" }, + "speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 25)" }, + "speed_wall_x": { "value": "speed_wall" }, + + "prime_tower_position_x": { "default_value": 175 }, + "prime_tower_position_y": { "default_value": 178 }, + "prime_tower_wipe_enabled": { "default_value": false }, + "prime_tower_min_volume": { "default_value": 50 }, + "dual_pre_wipe": { "default_value": false }, + + "prime_blob_enable": { "enabled": true }, + + "acceleration_enabled": { "value": "True" }, + "acceleration_layer_0": { "value": "acceleration_topbottom" }, + "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_print": { "value": "3000" }, + "acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, + "acceleration_support_interface": { "value": "acceleration_topbottom" }, + "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_travel": { "value": "acceleration_print" }, + "acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, + "acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 1000 / 1000)" }, + + "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, + "cool_min_layer_time": { "default_value": 10 }, + + "jerk_enabled": { "value": "True" }, + "jerk_layer_0": { "value": "jerk_topbottom" }, + "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_print": { "value": "25" }, + "jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" }, + "jerk_support_interface": { "value": "jerk_topbottom" }, + "jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" }, + "jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" }, + "jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" }, + + "wall_thickness": { "value": "1.2" }, + + "retraction_amount": { "default_value": 3 }, + "retraction_speed": { "default_value": 15 }, + "retraction_retract_speed": { "default_value": 15 }, + "retraction_prime_speed": { "default_value": 15 }, + "travel_retract_before_outer_wall": { "default_value": true }, + "skin_overlap": { "value": "15" }, + "adhesion_type": { "default_value": "skirt" }, + "machine_nozzle_heat_up_speed": { "default_value": 2 }, + "machine_nozzle_cool_down_speed": { "default_value": 2 }, + "machine_head_polygon": { "default_value": [[-75, -18],[-75, 35],[18, 35],[18, -18]] }, + "gantry_height": { "default_value": 55 }, + "machine_max_feedrate_x": { "default_value": 300 }, + "machine_max_feedrate_y": { "default_value": 300 }, + "machine_max_feedrate_z": { "default_value": 40 }, + "machine_max_acceleration_z": { "default_value": 500 }, + "machine_acceleration": { "default_value": 1000 }, + "machine_max_jerk_xy": { "default_value": 10 }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + "machine_start_gcode": { + "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E15 ;extrude 15mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\nT0 ;Start with Rear Extruder\n;Put printing message on LCD screen\nM117 Printing..." + }, + "machine_end_gcode": { + "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" + }, + "machine_extruder_count": { "default_value": 2 } + } +} \ No newline at end of file diff --git a/resources/extruders/builder_premium_large_front.def.json b/resources/extruders/builder_premium_large_front.def.json new file mode 100644 index 0000000000..159682dc1c --- /dev/null +++ b/resources/extruders/builder_premium_large_front.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_large_front", + "version": 2, + "name": "Front Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_large", + "position": "1" + }, + + "overrides": { + "extruder_nr": { + "default_value": 1, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/extruders/builder_premium_large_rear.def.json b/resources/extruders/builder_premium_large_rear.def.json new file mode 100644 index 0000000000..5e9cc062ae --- /dev/null +++ b/resources/extruders/builder_premium_large_rear.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_large_rear", + "version": 2, + "name": "Rear Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_large", + "position": "0" + }, + + "overrides": { + "extruder_nr": { + "default_value": 0, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/extruders/builder_premium_medium_front.def.json b/resources/extruders/builder_premium_medium_front.def.json new file mode 100644 index 0000000000..9a330b4f4b --- /dev/null +++ b/resources/extruders/builder_premium_medium_front.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_medium_front", + "version": 2, + "name": "Front Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_medium", + "position": "1" + }, + + "overrides": { + "extruder_nr": { + "default_value": 1, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/extruders/builder_premium_medium_rear.def.json b/resources/extruders/builder_premium_medium_rear.def.json new file mode 100644 index 0000000000..49d4734306 --- /dev/null +++ b/resources/extruders/builder_premium_medium_rear.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_medium_rear", + "version": 2, + "name": "Rear Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_medium", + "position": "0" + }, + + "overrides": { + "extruder_nr": { + "default_value": 0, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/extruders/builder_premium_small_front.def.json b/resources/extruders/builder_premium_small_front.def.json new file mode 100644 index 0000000000..2e6293d153 --- /dev/null +++ b/resources/extruders/builder_premium_small_front.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_small_front", + "version": 2, + "name": "Front Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_small", + "position": "1" + }, + + "overrides": { + "extruder_nr": { + "default_value": 1, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/extruders/builder_premium_small_rear.def.json b/resources/extruders/builder_premium_small_rear.def.json new file mode 100644 index 0000000000..d1606cdd79 --- /dev/null +++ b/resources/extruders/builder_premium_small_rear.def.json @@ -0,0 +1,27 @@ +{ + "id": "builder_premium_small_rear", + "version": 2, + "name": "Rear Extruder", + "inherits": "fdmextruder", + "metadata": { + "machine": "builder_premium_small", + "position": "0" + }, + + "overrides": { + "extruder_nr": { + "default_value": 0, + "maximum_value": "1" + }, + "machine_nozzle_offset_x": { "default_value": 0.0 }, + "machine_nozzle_offset_y": { "default_value": 0.0 }, + + "machine_extruder_start_pos_abs": { "default_value": true }, + "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, + "machine_extruder_end_pos_abs": { "default_value": true }, + "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, + "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, + "extruder_prime_pos_abs": { "default_value": true } + } +} diff --git a/resources/meshes/builder_premium_platform.stl b/resources/meshes/builder_premium_platform.stl new file mode 100644 index 0000000000000000000000000000000000000000..b315d4b6d4720b7dc57123ae214a0f5c286bc55f GIT binary patch literal 1348084 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�hbTgf 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�oy?S1LD=wVvF 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 z zcI0j2tIR#jEq@eO2uwZd(2xxe*k|>cO#g#j-+gcFnAh8^apj>8D@fqypZ|ti^TwET zpuJf;p_h#WrjGN;}0D{2Q>izjs=JTj*0;Cu^(`HsGC6BYjf`D@fpq!FMGwql|V5vBs-xJrn{{>1Nbp z8`s5H;Rn9sJsRf^G;;Uf;VqIF=3oU0TroVJpSwKvK3hM__v(0rLSQOvSsfOWb)$7{ zA@vy4bw%9N*V}F1^uR5`zsSFts?mCTp{7g%$M=eLD|Zaml`Og*mAX` zvCKO4{~kl{@3MCXKC(NWR0yR)BW6tRM9m$E8(%6yuGT*l`hk-(I^21$S2d)eL_ZTB=WSMc9g zSV02U82%K&#H?oPHH}RFzltjardC&CEc5Q;)|Sn*`V@%$((F02nOWt#hd!(zfolvu z&#*MFY4u`erqjJ_Bruinsm0Q#IBwl+LGSi4gEN}3@5-7F&cC#=f&{Kg9?#IYjAn~N z*~}`@IUOW0RcM3BmZo;Bh_kdZ%$jq}xHj>sVSQ}kU>G4eEz7aGM#HMDymgO;IaomgS0(-#oSx*ZxOBI##<2*6z*LdS%smK0^mA=fWqV3?jgB`3OfvXb#=B!)8e)9N^?bje!Aux6FK~*-g(N63AVES8S zYO~f}`a?cv5nti3f&{Kg9#5Z(m+bKeiaB5M-&aUrYSp4DEJxsWYuij(MSolU+P?o? zeP`Z-1RE1g2gut;((}-C;G}PQPUQ#w6Ke3ZJvDEoy0E1&K@jYOsB|He2V@ z(t4Gh?Xs&ppJ4}^y%hpezj`h9Iw8gidr9k6w(AwmHrdOX75*)5$h#@7G5iGE^QyAX zn_ac)UZPL!uU#sbb%HCJb1yvfVFd~NY)=0yD`yhd-fA>^ouY$g_^1Y!?RNoHo zj6qFfjrJ*tOiszhRUND#fuCk>sqIoZ zv!7;jQt)#!NMI_Va4D8;RJ_%2AFV!-{c<^1PLy-*JxQ>!f&_jxJ)YSKWt~dZOFOe; z!W05igRPQm-v`Hw98#R?MmY385WMb(`wmjj%#r-Kb7F!gzK zNj7)uF>7K2`hC^&UO^}3_bkrSy?!QEkibtfzw&cAk8`lkbNeg)+Xo3uy>DNdZ5npM zdU1_bpW)4Zwi^dU+TEMBHL-%kjctL<9r?ajyTp#!DEypfre`0-+p5D7H%%sqE+VDL*L;mS)JD@fp4 z$)9?tuQ0@q6ZyzpCh zjE5h-HY(Tap%9pw|4T_`%)f6H4x%-2_ssgnt=fg-V*d(ru!01xmE5)yhI{jVcFT7* z`&fm*)acd4*uD5W)`YLA$MbZiy(arSds*Hg4pxxBm5={!Kd{w~{65xhJv~?eSIMxV5XvfgY(OjLnKz|#mtQ4A0@ue`tpZs6Z8xljlj&Dqw{(Hdhx*U# zgadviR*=B8(&Ksks+1F7^nl%hpOHcWQ~v}OX4!7vvi5&L>u&a?@9oKV2io_0wKcJV z1g@2Q^|8;`pQTD+4;>ex5SXgwDaQ7Fe#iRy3H6x1!)xcMX$6^c!cD9ofh!+>uJir< zzI!9Kds}85s}Puy`)<*iNKZ;n@o7hBtRR6aAO983cb(qxY1e5aFeUHbrGLi){?wt? zpPo8|6(n%2RPXpj0#mqF^1F&VS2sIk{@UF0CPrCBk-+tl&hPd#GaSBV6#7`)kas~} zWw<`RiYdwd`u3xBq$$03ckb+Ip1gX;sKkHoVg(6Y`8=McE&A~L42~F`PWG~qz*J+S zBpa0LqxI|qeFk$@Z)P6Nz0+9r^rejzByg?tczVsMVKxpKYjiu2(?J4LIrrKzF3{ zvuhYHD*5}u3WPgYK?2uGkEi3A!rp&!KlSa)JyszwHS>8vHvRTHt9TdcQQ*}8J9NNE z`$3r@4pxxBwUS?Bu};{BSI@Kij0;u>OqJT7pWPn%yOl8){jIFr*_^f+PulIeRCTa| z1g@3*JY46}PRjkq?98Y0D+H#>UdqRAq<&-hD$xIVrJou(!wWsJt3OV#v4RAyeEd^e zx0};($5lI!pX);cQ_~LRW%(<;w*L5)epA1{-P5rGf41+(kMUv!30(R3wYv;`ocg_e z_E!FT7YR(wtdftlTm0I3dzOBeSkVof5!<%eEZ)z=3KFchT-}6DvsI%EzyNEL`H-{^M!yuv}vm0#kC|4C;ZqU|1F@ z3=JcV_<~c7k?H!GNMK4#U1Z-!e=D4{zzP!TDoWEFbH!8ZK231YYheo4N`5!)mo3aG zlV2D$Uc@M?C=$3n^5^N78D_4lIL(;JukgwVmn#g{$Mao_vA~e@tmY(o?*_jeX2utu zZ+y$I@L~lCT>1EuxepFA_hxNvWKHa4BY~+~FN(5mEz`5%W#}^)^{S(}{MW|DR=)0H z1qoa$`B~?M4a~J|o_V9=aym$0YL}-7oA!G;mTNPuS5F&eH%rc$=iSS%x?=?iTr2q= zJQtoBNh3EO-5S_KAu#pJtAeaxmvpSde!APR_xwQP!^CC2Fi*IH6(n%2iy0bBIik z@7-pjhdV)w7u$ZP`FRGYAc1Qozhi6DFlWH>4)&k?3NI3vimj51jUShWjr~Z!OHLPU zeeVE>@7hwbJAHp=u2$v;EMwuwH;dV9Kv+9ya2aH0;TA`c2)cRXQhNafGk( z$hIa{kifOl9zpu>EX4Zbiyi54CZ6q*NZ9@?j>*Qby zTGMCn?d)Ll&JPW|i*CNOv4RAymHa&QhDPR(xs&1=?ab*QfvLi=g_z&L9ISE@tyfd( zi zU~1Raui2!C9BfrVT6fge3w-_)1sh@XiSByg?dd%iTRG538Qv-A2ttB2uv-^n2$AIl7odz zqxGslbbh}Ake!ceX*S?f5JVr=DghF6S?n_5KN_6jLeD>-aquiiS z6DvsI%E#ZkLGeb*guF(X6CnzLDLE}oJ#a!AD@drTsF=bo&!0Ap1g3DUPW>aoTz|N) zZzaFtjuj+u<>PZKEk~NI*7(`O`4x90F!gj|QP#75K{jV3eFkr~>1NKTd(HRc!b=+~ zNZ?xO@q9b9o|!&p5xY0P;*JESE-x(1HZCj3%Ku91RnhP)W{R+kcAkHlI9Ndf*GfKJ z6Mx$%u)CPO{PP|v0c-83aRu4gtO0E3N18<1^G9}LRGCcn41UEOEBLy&R`R=$cI=Ex zd;2qcupOZgnELamKRdB4fF<3e9@PtPv@f*#$#>$X!46iCz_pV9vW$CaKU^@wmxr&r zNMNdY+dS+@#X@Yy68c-EN>|S5mv*%8*BVtFtRR6apT|?JMqMYk=71yqhx020rna`t z#rjPt#JcXJwf*GqZ=FcL5^)*$6?d#4fh!-sJ9_I#XT`M1-UXY&6arIo%jRSm_7!3) z`q6tgs^U1OPhdUoa(=}fD@fp4>G6y@I?~C+{_>vTSKN`n)Y1bv*@ehLY*}skO&zhN zgEKNVk?#`YXJQ2jTr2rBc^AvcQzD=7gkNz-0#lXm^wiFhJ1LDu z4ceMmK?2uG{>*{qC+zyaVZ3xVg(6Y`S|zw!*j;oR(riOkA;{> zU`jmK;$Ru-flt4{3KF>kmeeKj2ANsI@1g?Di%w4vD=EpCV z*dBg<7YR(A9bba&3ogSNuBFf5>A~&HXOkw_ZTbBSSV02UN{=USFn^AI&!zUYZ8;qz zFg0{jF}6EpS@tqJttERpq&Fw!9%z4-qN#%wByg?d|L2{~8Gh>q+k0~NPzX$A+*_DE zOjVAREktYLZ!`Yz{?j?Y?s+E6!3q+%@_9UW@0IqwO!~_=`TGckz|^U)3bKP{c{VEr z^$5tb&Az;)sjvU9gB`3OfomnVBHwF!Xqj0-XF3Ke1f~XE_h-{OR$%>o)Fa8SoKt)H zNbidVRUND#forA5v$}dMXHsH1qj-FNg}_vW7kSx6zltpHb^8Bco%%XuCVy?DLmL@suG5LqSPgZ>*Ml-vg}c_Ko(t$-n+p; z{Y-1{X**ZaLmyU6A-N@>p5SVK9obN>QCWsyDNYnjQ<{a~8u29~t^eW833KFuYfrA5sN@gG8UE$%z{`ve0fvKLS z3$hkn7>oU!{?E%b@8ZN3US(W~9 z3G{uwD_wubv*U#EGhcVHf&{LW9#6`QU7d5|?;15u1{+9V>NDGvA^lP)W{v& z*2D@DxK{GJEE=t~x80v^ydN2&5SXg_dl6>jGTELqv|gp^yW5xLm!d|*uqLRGqY9Z?J?8J1#9DXI}!>UjdD@fqV=kcs-dfpgO zZK&^A>V67=Dfyf``df*o){W!4b72Jubrr=Y;~{}5Tr2rs*XdyvoV?cV{5nQiMUlYu z(c}61SPL`eL3*bYzkgReEwEtsiwxJtxq($!ztXkX%R%(s-MFcZ`EGJrr#fGEv4RAy zd>&7(BlXPV1+zKLj`y;Wz|^ZdmD%DEwb(a#=rfpNaTT-2`jpPq2QO``Ac1Qo|3#KF zkGZU8DyMaPP6r80^=eUx?ToI?&Mc(02>Byg?tcxt9u<(ri%-q+86tU_Sw z_N_9k^)K~V_p#JtSo{|I&aegEs{DQitRR7FC0|7c-?jTKt8BcO9IOzS3Joa5Qhe5k z)eNM+mHAZx=ib~UMiRe|3@b?B%IEQX*1nWex#>xx?%DhbfvJ(RO0c^%8nfS9()ZxK zl1-fMVLux`^WVEzK>}Ak{#!IvGbdyJH0JV+VG4n%1#645Tz@rYrN5x}ZihAPoGg>m zm;rot2`fn8TFK8qZmaKH^ky|L@^u#pOxfv6uv?oOvl36~cgfxg6`X(t{~A+lKNBlR z;9BYN97&tQX;J;7v9M8qLSQPx>5{BVlSXXm2>MNJH92oTOn2DujB9IR1qoa$J)R+T zr`ZFGL>UA4{R~K8s!yXbEMvO{?0sWeuhPsN>3jdOtg&EwxQP`caINIOMUPkXp8xR3 zyEN}ug}_vW5#`vJn0hQvf9kRL^)%yrm>pNf7iwY!30(O+o|Y+28Ea>!u*1ISrx2Ku z&oHIG6+Myk;-{S#v4VuUihd5eJ0gK8Tq`}EE2UbRGiUr_fB$QYvWg;s>!ZhW;InFG z@Xiv>2Yx>TK9vX8$F2iRRw!#@Hhwd$i5o1hx#B}HXDGj)0V_!0%IERaDqYI_dO-yz zkl)XM1g2i)GuffOjoI!N^ch@U)!(cenBRHzg0H(!K?2uGzV3EUX> zH)l(4&{MhQ^iJz-xwf|bG<~>(6(n%2rv%%JI$Z+`M$XP3W2G}0hL(Phqi3eOj_G3|4`L={lk~0ho9fY z3KF>T@!z6PD?1C%7BT(#{R~K8>hy++?E3X~%vYPZlf0Vm~;D$^rJ%* z0#hkAR%Ib!t=Npov|g1pUdF9#A82^igqv7F0@q4@=I+O--hyL)@DAfwfRMnHx{rJ6 z+*6FdHcs~C*%)eK1qodF_?c~X*r>6{YsWtdQ3y<_&kDn*O=ATKbrt=A@7#Oz)6Ts} zU<%hter=+u*L<)kyOZUY7-bbj0@p`wEVa8h)wcX)?ESFO8(C^8yW_oQtz1!`RSRCq zemHQ~YCF6kEAPj5yean1%KUXh{{QjIx^B*wH7*;o><9xZNQnIh-97KiEg$I2+r80f zouY(7VCu$)mF)J;)a<*Xjd+idr$d|v9R?X|`S%A_kPy%1boadPQFgS`a7TV)9)A`R z5}11PW)YkfqbG~Jclo^^SV2PU1>x>_e=~TD(`{k5xI+9p3JFXt zy0MCN9_h~>ly1g*q$@kv8N1<#uPDFHi4`QoUJ&k{_o3-WIbHq?w72v7OOU{n->#MH zpV=i?_v_7hkAHl9onGn2**AC(tRNxwf^he||7ur%r(&m__LqEm83{~fTeh5?jIYc* zom=uAS+jL?rgloSH$06ou!4lx3&P#={!EFEPLFPX+1L5`D0It63xueIVm z_D-$q>^_*r8N}~B#|jc+F9>(f`y_8or`jL>&TzjH3W2GAeG8bkUjz2bur|EM+tsC< z2`h>?mwt;eu!4lx3&P#={`2<%&h<2=)9vr#3W2G>&*rcR6I-xvi?`!FI;G3xRLoJ+ z*~CACSV2PU1>x>_Uw?E8r^B{(&J_N>LIP7~Hcw-B@3vzPAGYT`KDN1Pm)qaY>Bj%h zv4VtnE~mTaeU26T>{WZeb!PGR6%v^0bZ-KyT%$AFw6G)ZaiaS)`=6*j&RE_9D@cgF zAlyCg|1DPAem85R6Tz?1BY~;SZ$`3>3;466{5$g=pSSwi_ip_l=Q96WVFd~CTuyh- z`?8ZgzTfMNacsVpAc3i0iuPxxA9Q8M7Ioo07C$ZL{rU4D&cl~623C*|dqKE+-Z$u! z#_;A3bJnITp%9od{JSx`QWv(PWH;WUa?2*h&ZFNtU%rYlu!4kmE~mTaeS@sa4gVd3 zotk`Z0tqG6xE1@Se+M@FZZPk$`mY1V#ztM82>u!LKm`f07lga#{k)e?jO8!7I)C!_ z6%v?gAS|9#}y_e5<*8-X8=vKmt?ZTkYOYy?GD(9>fX~;ycmZ^B&Lp zAb}}iEG=91w9DRDNc!lMx01J7S!1qpF3%iZ&yuGcQ+ z*J~^B>$ON=N?d6;wDeovgRV_X=hr6s@oN)UK|)-oaQD2&dvTD!l(>p~ti=G{gRVOd z{&d|LD@cfI(C(i1c%LN_m=bpgO-Vh7_rQCKu!4lRzsTM5p6;RF@aZ0UBrqlJ{v5V; zFz}0a zc`0Ypj^sV=@+Y^n`Sj!#tRNwt;^OXkkI$w;0#o9tQw^L^yvGZ8{uNe`5Kqr?_q@la z?;(LH@m#%|ox^w!e8Qhn`Sgq}dR_6fKX=c2eD)_2m=aI*tnhs}@9_&fUlc1yh-Zzu zd*0)dhmpXPc&6}o9V2*;pFTa^I17KeF;}#z;O~X?{Au!c4#U%Fh z`ev(Xs&SkcI$@rjs&{X5ET5IZ3KDYv!3mtGUN+v&T`t5-;_oXYFjfEfbas5yE~{-< zI;wd8AMHKk+L-0J8(;+qx&PoqP7EKM#!39x%KU+U4fu*H3)b?&@?@Km7Ei zvpvW%)AH{@tRNxwf^he|U-VNk=Z~F%=Fhwb5||o4bs?)b>VmcKb2_TRwaPlzE(Mr% z`TagvK|<^W;qG}qW@8L41g3;prkOp76LEPuIYSdp8Kd9DBpW1EkPvR@?s>0sP9iWRJn>0q zIx3xWQUwX&hVGvCI_D$;Q^FH#22SBUbk0c?B!nBfd*17ulL$-+PaOKyRNh19oK!(V zxS_k}z0Ns_z?AUB-Os3p&N-=qgm6Q5&wHJ75`ihztDa zObN4$?KhqG&^aenkPvR@?s>0sP9iWR%<^ru8N7$iIjMq#a6@;`d!2ImIf=lO@Wh$(X7e68=cEb}!VTR$?{&^e1g3;p-mO1}_s}^fRge&F=0sP9iWRJTbc1Lf%8?oK!(VxS_k}z0Ns_z?AUBoNuUy&N-=qgm6Q5&wHJ75`ih< ziJi_Z;yrZENfji78@hYm>ztDaObJiy7QLAF&^aenkPvR@?s>0sP9iWRJhA4aCA^2u zIjMq#a6@;`d!2IJ#@}V6(ockx_jR1oRbJl2~W(Nei`qfb55!tA>5Gm zsaK!3gs+7u;fZxGQ4gJSQUwX&hVGvCI_D$;Q^FIsY^I~qIVV++5N_!1d9QO$A}}R9 zvFGF!yob&?se*)XLwC=6opTa_DdCBmx~}9sbk0c?B!o@6d*17u^Z&2)$sj2uJn=>8 zRlJAJIsab)Lb##3=e^E3iNKWb#9Ys)ht4^vf`o8Gch7sBa}t3mVV1wduI4>-&Pf#{ zq#H(ZLg$=BU`lvm(TQs~p>s~EAR*mwEhlu&Nd%^(C(=>roikD)q#H(YLhqcBuuEYS zlb%RNrFYJ?3L)Ik-Sb}WoNHm1!gWk~A{~|9IinOpy5Txb=$$hvd6&Xd|E^=wEUAay zIaNZs;d)N!oihpya((i3&a|`XsC3Rr6?|Rkh8sAcb50^KC7qLwO7EQO6+*b7yXU>$ zIoBr}B&DQt(oyN1bAv)iH{8Sty>o5=gWSZVb8h5>-Z?iagmlBroX|VxMli_DOgbm^ z&^xC}NH?S&dgt5-2DzC@=cIqR-Z?iZgml9#oX|VxCNRh?OgbkWmEJiwD};2zt(?$1 zCqMR#OWBmgjNR?Dl}YEMqtZL)7KM;*7|jX2b8Z2HjAp_)D`%&p(m5wp@O7md#&AOC zoJ3$sIw$qeJEuxWH>4hV=iCYg8N;M=(!X5qoY4v)-EbQx^v)R#2Dyz%=cJ?3J7D8nC-ly_0}OH(6VCZ^5FM4yIjMrLE8TE6Cv?t91g4~O(oyN1bC*I$H{8Ps zy>spYgWLmiOw>c~oGKyRkb3Bya~Bxo9+*+3f4SZ{cPoT+!@Zo)JLhgN$i49V0XizZ zbM8?H;fC&>_j>2tlWdTblFms-rFYJ~3L)KaKPU9gxfcv_KRh>VA1CzAxlbXa8y?_< z-Z}SyK^{ncCS>OHbX0oh+^-PQ4XKCjIw!prrlfOH5504$gmlA$oX|VxelW;`@GN&a zD!p?aPzd3M?w4wxp@0^FhAdfQX zob)f(JLeIFkZwqO-s_$72pD7>lg>#;rFYJw3L$Nh_Pp0S=TR_7ACt~WN2PbpIE9eT zNqgSwoih#$(gx?GqtZL4Pa&jpI-Jlurw5`ih< zoad9Mht4^vf`oL#W1P@AClQzu*E!S9rlZn3r=t+kCgVAwcTNWkGM-82q@&V1=P`wl z&Uu^@dgnX_26-Hula5O7obd`Fo$~}I^v)R%26+OUla5O7oW~VHI_F7F=$-R8IOj=l zPU@j|PL+_(Nj>z=c^nM#BseGi%k|EALLsDcp5lbwIZuE=o=SGk?fvMebk0c?d|hdi zr#Yc>P9iWRos*7A@0_O;Lb~A@PUxNU6d2?ga85cZy>p&c2x*fEoX|VxX>iU2CY_Ud z=$%s~q;paay>p%hgG>PDq<^{IInOABa87s6d%bg>Nj6AIN#~@a(mQ8@LP+OKWi z6Tl!7!8y-zLhqbs6+$?tyXU>$InO2=B&DQt(oyN1Gf^R=b0%>@@0^L?oILf(IRpR4 z)>+3@vBd9x?e0!&30uVC?Cf|@5epFo0Ra&MLBP0TVxgFrh=HPlg`!^D3unjfZV|D& z^N$vvV)_yKjlR zwfpC8(MFjjx-x3Fmc{@5XLx(+Gkd>wp8uQggY~^H`CcY3`&i6Hch5?s_9riDMZ>b_ z@I8q%r0FGXZ}uIURUwIve{fH0cJmG=x=-~Wmiwhy$0MUn{y$dH>-rfj|G_MJ{9+>Q z*6*U`c{YnK{kV#fn`g9#%kOexSrt!W<6V;V-5qN}1&Lbs6KO-sMgFO>IFWCT7ukNf z02}nQu!;n_>}n>_ftT*d4ArIssePdy+cEr#sZ4qPM#c60La`6x|9*Txt1$e3f2#28 z&V)X)VR6q_J7WeCb2hA`%ljVH=BzS4)%(dkNQZ~~joB}bR_#C+_6UF9*}f53Or6=t zsi~&d@k?lk!zS^m{?+2?tdwn9c(W{upO)`@VroTvERL+0&5{gMkT_XpIej@|zqWp` z@u?yjwwH+R75H|C?_~WypU|!2 zLV7lJwbnu$bEojqWZVl6c7JPs6Dml|iHoDV>{rO+ajjf+l3vG+#YDteWt6(InA$#0 z(QNZ)S>^Fj--Vha#?F=fdu@^h|1J{W7cQahE}OJ}$`~!by1p(6o#w(~XA&y{UD$6t z!{4HQUJ}3_bY8FbEH|5Gw~rIw>bLo3(@PiQG>5=D)Q`@lhw3lT?hQ1)?M;iGRgcv3 zXDtS<&`~KiU>?1Dcd1r(*&T|1iN8&5x~;Yd^kbpd7g%K=;c$8$os$@^B_B z_%vT;b3Mk2Ko^@GN7LL^$lu`i(9i17X?>VdV~&mr60au5(Nb|MwBUnAMhAzyq*|s2 zTOL2fia=MHCJX7p(A8Svb%SuooT@%;K8W?5p00l|Pp4OB#%f80@6bYhX3ztc*;;f% z?sA<@TlJnPKh-lfM@^_ah?!&e>Zl-5V#N$PuHYPPjDwLe{o^Wi>gFM=Z1d$-1iGwy zx9Iw<>X3_p?8JfXR(*xUZ<|?k{KENKq=%8=^Z0-ocQ=6jeR+cwfi67$e69Per=}kJ zgIVE}Z2d;ac$#)$x>k8tCVfz1A}wAcMw@NPq@J_K)4T_!%9ghroKM}bYY^+*^_Gqb z5|y)~>7wKqt^Q@>+@5c4Gxe{G;jF9OW-G$VW!1Yu{$8rf&0uzD>lv%QLSlsDbXsjf zti}o%E%yi+rA}}h#OyNMBg@CTBfmQrC>qY5>goFO9^v%clqsTxYeOUGuIAIV zs3HHm<;35Wut%1rn@z0a5<7+p5}P7|XqBxqwY#N_PxaofyS{v?9UFM74a@tbFD=_+ zzSfxUV2`_5m)O*oM!U|HV}^GHiS8BHlzr;x$WTE7_r>OO8F?M_n$6m?Exqil2z22m z`%N znenOGf10kFMmw;(U0PTX=)ykaYpeg~rMI6{m;E=&WYt$l6x!RDo)|Y@Bk4v)-;?h8 ziZQnANnBei0$q4y`6&F zF`r>sdEKHG{A}^HOk`Wmo9LB(yS3YVl$vQV(HVtzYxMjr>er|(y%MlXj(2CZd1?9k zNg;h?(TNNdB$ggDQTqwIw3!!-@$SCW1@!eFs_ScyjJG1t_4}!b#@PL>WnVD}%k+AB z)!Ci(_}x(q72S@|@M>w=u*d)VQ)PZo^-&`u^bW40tum0X-pllJ&w={ha|ycb+2K|M zy0G8)Dp1ZH^x`uX>Y0{Eh6)n6cPhX0V|Lf;rmxXA9U5*$pv(Grj16>j?pZR>`RRYw z)dW@$k#$sh==N@H6F)Y*68;sb&YihIZJjcV)os~{HafdQ9H|ni9ckZt+qK5UZqvm( zO!VQd40!}Q+H_YpoSvaRJ~)D*g2dcrlzvUvrFGyv&DZ|yZ?C@U-&1uc5oJZ7tK(Ec zFQo0(_T4au<8LddTIUw(;V$DCDw{v6^!wx8n$C|iX7gF+F2&TCruEc!oyJ>bAW^3ad^UG;G6S_jRUD!}o}@&)7ZgbX9Pw`1hbKJ?PYwOqBStPu5!S^J~pc?ldN8qt-X%Hbt7Rc(Q(`+UP|o@*>@pp@KxA zdp+r%`x~|EV*m4Zi)X5Vvr3Q&!}*(H@JY~R{iz<;X{Z+5<4pSBYsjMe1k)=W*ND&l zK6?ON%KyEAUzZN_@S!LETQB~fuiSF0nOY&F6)9DxDMJN`%~=7o-~Kh)&NoKOH_>+L z@aN6RkV-8WD(x!y)BQb?G^cz2J0qyEt2(YiV=_6bl~o23k@@q3#I$uFK?!M{d z6O|;WwpPaji7s7&X;#K+?S>fpyvSD68ESj-ezAiUfi65Yit^~(Aj_ka2y*7w-+J>2&*=4caPR zJNf!frOmvOwR?Q5zRPVY-RqMgKUJ5EVfu&4~GHa{|bYYwLI>J8+us-g+ z$h@6@>8U^F((!To#iu&?eJ(vacfVGh&ko_I<@>%4%gYu%@*qpLL|e53iDC2R(7gHf zXhX%!#MtbA^%t-Ekbk<(u_DlgZQ^6Nt2NoWrmiGz{$G~1TjOYE0u!@NuQ$fgvfG(< zh0hK}6^f$=PFb|Ne4dH7gH~X7+wxtA-QrA0peuRy99pQ-9yx!N_MjSNSj>A_*8dZ z)neyXcOouH{jCUeVVn4#lNUO&KP~H!jWujcABr!fmMPb@QA@HYenPtj@pQTQjy86u zk}%-U9u*|Ax-6#a=APF^4>3MfwF+(7)jQ2da^J*sB+!NZW~^@9n|XIE zMOuBEX8Nb*GJ5{uea(T-H2c1dr`;Hz1wNidt=rMNxCiSVUxs`y5N<*RiAPcKv`Xc> zniHSD=5-WxXSchTCzHc^SrO>MKICVgik@su|B_@_Laf!N!o2^vw{2wbnQg{rwuv#b zjS3Pm^_J6Jwcg6(@wSjJiy51rw5c>W0||6Ry65yr)7!@He51W98$SBI`ts>zz1pv3 zG|1+jwwm8vaP(hBU+VX@U;J!vyU}vGvea97#d(}wf_VqQ1CNZiinKrdCw zM|1AVTz=e-G;9$d+JOYRZum5$**l8MjH=s1$?j(zL zG#SSn33Pp%*nrk~RZ(VqwT~oy+eMj-zCs0w5pNpOweKs+jGos6NkcwEX!I2l=wc-r z(qj&_Wk$Up5hTyAg%%?N6(m9?*wXA@wPc3Rq5h=C%8I(t4kXYutf(Djs)Nj!Zxc%T z2X)tt3{;S)6>d+%v+ZR@luuu>&ux~-KmuJALmJVO9~@=Ipq&Fqc->92n>HfP>)MJ8RFJ5ikI;rMy2*?MTg#By100y~y+Q(AuM2ge--me0j5gKF zkpoex$Up^&=uAF$*0#6IQ28$7bAOtcaV|juT~}`PpzF8xlNnxKZ`Fwvdokmfqk@Fv zt)igYe zCQKV3Gj=BErl<)KA_Em9CQk{Y^U4Owj7JyuwO{utP-Gy1u5P==(CF^D8Bfnvvm{4F ziVRecuw68U4$lsd8Aq$Vvow6`FOE49==x{a6l%LQK(^yRL?b=vc$mmQ1&OoT6xz`x zx3A_#kJPhQc#C!*fvz}@88ju?PiCxhP0+7K1&a(+kSJMt2F>5iSGFU{caQE-lCPZ2 zzq?4FtL@j>)TxuV%!nUyT~FTc#eVYdE-FYwu9;0E@_WgQZ~wm1i%lV-9Y~;SmP;HR zyV*l#tlCkCEj`vrv;!3+oUhNP$ENj?83QMjVoO>#78yvOt4y86bmG&lGNX5)I;_U0 z<{|?XBtnxG(G?HfWQI@k1}x9QN+JUZbR|uSr#EZ6$c$aB+p;gIRYV3VNZ7qxN*}wJ zWk%brZQ1yjzjWhxAc3y1PRptH)b=u?@%e77dz$Oh0;3 zoZFE=*V6En^lQ@=GNZ|0KbEieVR8LH1&KjNR?xfKn#+vIWBahR2j}a?c^3(E4dw5t zR`Iiy8Nc@oVNsQ*iFTlZ#G%%!XtScWG9!TYXInFCi@rhvUEzBZ=}xDbGNa?va5iwO zA~H}x;>NF4bU~$>GUHr&AR8WD-eO#%kU-a=Q;F2&V>y{odrKsn6SB3v@%umpi8G}W z>866^Wk%?Y0JiVIPBFeh0$soBCDIy4ipY#xwZoZP=VD?EhYAv{B3IENMT*LdgYiDB zaCJ}BXa^GL>T`Z2J@)q>Io{3lbuinY#)=G7kmzc&l4kZ&WJY$mUThfO9oRVLNTBPl zQ_HE#rPnf}drx0>xb+EA@OIUrkI)c$ZXLLB+wO6YZ+BdcVxzm0bSXORD~GV zT2zq0x{dD*ShEEi(XR+G`U(kjO?$YQE^|LCGrmT*W{wA{5o7Fw3KCc$^Cwa|)?j_k z*Af{>pzCbS1@wMDi_AD(q!xQ>X(=*LLBe`2L-Q-Ze%Z7V8Azb3((^gA^_stBM&qag z?6=uf^c5;dSkJI*+wCKn674_*33u12^k#I5%ovrT>3(~CiSgY< z0$t|YV`GUe2=I?HEXmb2}2~dctR&w_i(? z8G-K~WGq?`DKbz&!Ye79>U)!9Mio=A>E76!3?$H%**}=}<#Vq&HRp||S50SIMu@&b z1&L|PgQ?AobuuF$s+Aht-A^13B+%8?--p)pNtPM^l@C|zHVYB$Kn006XME_GsvBiS zvO|LEc&oR_KmuLtj5}R=G*xC)IkQh)wBBE2pn^o$kY4nXf11qjPQ9d#Gib7EmGu-Es337D(Ulf!lJndmpF=L5k6bwKB)(TjpbO_w_}#uX6-dHm zXK_4GK?3Ja`15d^O0s_Oy@~JIWDCxP;#@EOx)kMNfr9K;hBxW5_oxLGB&=tI`}g~x zGw%T;DWAUy33TDFi=W{J-_f@!gGsGQ$1JEIVLcbVuG3Ea(8ma}hG!swF8p;VN`SgT zFIjk$$Up@N>$?Ee=X&Y355|dhAb~FYb@BbSTiNOpJST_@RFJT~|M50$sb&1fXweQN z(1pJ)zT2kj^^Am!Xpw;m5_o5eKV^|L%k)=?$)X)dpbLLpeE-_ZPfa0BCy5MHkcf#7 zruhQb$@#<+>w2k6nvWOlKmuL(>*71IwV$kR+cSpP@MDe&5)sFJ=;F^CWX9fzG__b% zq-X~c=)zwYf3l|7QFTjLsAvZ&NK6XoMejSO$&9|+->Q8|28j$L(1pJ)zPD4~JS1U( zugE|Ji3N*Y>DiJwcTyDPW^x7MOnQn8B+zC3t39#4CYch}S!AGsMARIOYVD88c04KA zoJ<tg)^S~uKwO}WLER8A_Em9=IpVhd!7`R8QbbblZVIdn2d8G66nGiPetj~FPdz< zJl15i0~I8WWj3T8_}ptwJ32&9CSjZNT8s=N(1kOed=u9q(WL9IBuj0cfeI3LhT76* zN^O~OI(q_nw4{k{WFUbqobgnYPN&9_8p(dTaV|jxiPC=d)cujY%;@1giaed0C^C>h z7tVO{YGOw?sTRFUH`;*;65CT7Q_rD}GNW6C!Q|TEY>|Nkx^TvmKhN+!fS8+q674_* ziS{lnXhwiZX58}fB+uMSGNZ4MKo`z<^7qwlbR&J1R$|66M+J#vW!li}#Evqf?^u-_ zpI|RCkU&>;tC`eH){3yi79s-`B!=;4v95mZCNqvbsz+@5n3?e#L;_tnQ&BE>A2sdUI7zev6(nX% z4x{br2g;1-VA?(~X|l*b0$n)csVIZrHn$vE8qJK~ASy`QT|9YLkF9i!&z+ur0H4s9V?e8nwabv*+eaf{E(N{>I3uip}C?n*N-nV$L$Up^&pX+DSt>wLBM*QW1 ztWA@CA_EC@;f$xEtm<2u<;~+EzE`Lq@gQ?P-Mpxm%ov+qm!0hHB7Pr8pbKX_`CGqs zjacVldr0>&V_|ns3X2ts34K@VJWq7 zH_MC#lY6s;i%N-hAb~EN@#N3%cIwCet6MnPfR1iEm>lfN;NGLgM0P(ZW;6(s5xN~HCx)RY-V zBPX-gm#bQgzCr?BIOEBmR=*U@E~S=qHqIreAW^$&B8@9hUS?G59?jI18(xiwq>tg)^RfX5v2ItH}4NXa_1tSU+Dfd9FXZr+!sGMIW;u zfiCN3SSmmEV6NAGtF1oH(NRGHpJ(Ck(brn%?6uUNWMur*@d?bI`NL_A^NHduA*@*W zn_(gOO$*%mlPMz#$rMI5v_5S0^e4KoVpWtyd7hcR*6|^WZscXC zAYuKa?BSLjRj2hsNL<7b9SL+{#md)V`OjaqAMHt+Ov%SkK?0v>=5O%SSg)>&@fR6L zpbINjzUDye7WM5~H<5t~64uWlZyuMeb}QRUWFUbqtXTQ8YOeRyl3C6o0~I9jnRNbi zv{sC?jw2!i33Oq_%2yZbQ-stT<{&aqL1Gtwdtmn6L-I+d;c@lI=AQN<0||6t#mb)} z%d{cY)>jl6s37rHZ9^AFU6dKVo7<7`hsuZyB+!KwE58n!Tavstf2qbXM+J%gWn0ii zAMeSG*0s75n|-fU<9me!y0BtZl;KUx@OQw5hnvC_F2agvA~=8GVHWy0Bv9J1KYeB}<&$Ovdp*1&Il+4d~#P6=lYU zZDHhChXNKO0||6t#mY}U&wNPFybCQx1}aGGxZQyIwWuvK<~xOu%B-GlWFUbqtXTO| z#U1;SRC}r$8K@v}_@*tL)6GF<*fnbE zi93%?G`mI*nK8I=Wm4*|Rw4rlbYaD+C|#=*AT19z5gDi;@$ZX{w9FDunKAw0clAQH ztH?kCU0AUyN~3Q#)Sq(+Gk$}pAW`>l4>~ZjpUkK+>yVln;4LzcKo?f5{7s~VNvc;$ zH_;AMkQl6b(>=HQ%Z!2H)6}5Ufg%G5bYaEH-z=`;rsg}`N3;VKBm!Cl(ccpTWkyVV zK6UTRVIl(wbYaEHSApuh-n43uk7x%fNF;@Z(a-w^$PD`n(+-Zf5+*W`Ko?f5{4Kgw z^(`X?`-%)ykodE249%FDn^CM%e%*FjPCJl57gntNnAfeVm%i#HGEhNcZ{!r(gg+aV zb8hdDHcby$mvcOjKo?f5d&*%I;kU$q!tbDiT3g7j;OB_W8Do6x) z#?ii4JY>eGPL)~Fz?|PX66nH;l|Li=Z+UiVSZ$Gk3KH8L7t?XYy2%WOBF)&HVL9h3 zB+!KwE5ASZ)s8KwQA}i@g2bA|@w5+hkr}$b3-bufIqxEYF05GjNI$JTb9Z_y&h4lm zF{J-;nz6FI%((NwlLf})TtARN7gnr_vNpX73qF)4GEhOHM(j$up+gIq(M}t{s;W8H zK_t+H6|16j%<9bsT^=GbP(k8H{zSTKh^@?M?;OH9sX5nkB+!KwE6=#wkKH%j6JrKc zkXXi7?kV5Crp&0YJ&a|y&L_qtNT3TVRz8Qk)|YwyaBw!RgQy_!KQ>s9=O`gWNeLj?(ZvqMp89bBgRPtQXpF6_zhJz9J( z87m}3Szls>dhF~+_0{j*R__TTVg2^9>G4^$>W!kL?m&|jfiA3&_{zhTcdN^HXQ^}F zdNNdyuzqj5^ZfT}wdJ2xBLfL^VTHt3>@9OieZ2Ot$Up^&stuiJsoQ7edn|X%g-MtF zS40L9=)ww#pG$r{SA$Nk7a6D^(TO#sQ$A+NjLIu3kXae2A_EC@VTHusOAY*`9yu{Z zWT1k?p9Fgvv*n%4cwVp;DU%&7GLS$QR!IE%F{~hYAJax;pn}BrGY#n6OL=I{dSu>x z8xv8{(1jHeubpFykw>R*nv7$P3KF$K>(Mvuipz{2106`-8naEtF-HPjSRpCO z$JZsuL7x}SMg}TKxW&|^&+b)}8A;U|krR!xGK>r)(1jHeANwpQL54@WT8s=-ka$zI z9$h`Bw#?Wy&W^09{n=t5 z$Up*JSRwH@^^)?FydAoU3{;RMJwKmD{V9o>f+4Ab~Edkod|*b7rgW{`o30P(i|dYIhpt;U_az z&77m|+*3njAb~Edkoeo=4qesr2lF%IyNe1EDgC@?^|67u$74Y|b;`y1A_EC@VTHu+ z*Czfpot;utWT1jXi?jiBzT-fdvF5=6Q>~r$A_EC@VTHt3^1Ndv;#}%lTeG6^AaYkQC)si6gqc^`gi? z1&NbQ`L2AwyUUF5c!ec9JrU$}W+C3KB)OFQfTic9a>tT}!dL z&6&tR0$o@k@q61RKk1Hj7mEy3kXXHB1s(d{S!Q%@UXA@2880%BKo?d>iqhj=UN(41 zf02O-66LO}qAS#vGUH?UdaT>>ULpetbYX?WSIzEGgn2D2D>6_)qKp4(YG1%kW)wMT z#}ksf_)h@TZ|b{L1Ij^HT21tnli)Qp%KfNog&61NT3TVB!2I% zVoCP8sI3_Lpn}9=mo;?osd6$Std#@X`tLF^zCr?BSRwIykY2@E5oNa+!=Zvi^OdXV z(|62g)4Dk^`a;R$PH77^*P z^Lnd!2YRS0ACI;o(1q2DqIfzzG;N%J)U=CEVyGZtzkt6--~XgsdHB|`aP{Pq79s-) zbYb{y~scXiRX74(dF%K%Zw*mr>XVcloA<8pbM)PMR~ogklI|EATm%v zB5^`P`t{^%nbB$3T=hVYYbK+wkU$q!FN$)haw&C3r^X@!6(sUbuS+{!QE1L8&EG~W zQai7U5gACJ3#%7J*_mEWU3h1|vvE97LE?R(+O+7NVlv}P%2M^&gwxJOJCHyZRxgS& zD!PJNDXn;WBLfvA{;61tR=iqKX1IM?s?u@OGmH!*(1q0te)Rq||d>5;m-VL@G8AzZDs~5h{PtVe7L_l?m`0hfzgv9TxI@IY^Bbm|rV@xV@$iqS z(!P}<0~I7Lt#P1X!Bl2Ed_78ic+Np&Ab~EdUii8F?lV)^q z>F@yoGUI9TGgI&Jvqc6H=)&qnQD)Vrrg4)?hzwMaXs-69+xHEW83Qtxn@YA^C^C>h z7gjI4j{0@q+2dwek%0;ll?xA`lNJw_8RMFiG>kL+GyvRTTU0A*Fu}?9tj5W{7iwsndSkf_yI;Q1jJa}ue%;>a4 zWFUbqtX}x)-?a-{PQ{lI8K@x9to~FQ{dACQM_i$umVai)i3}vrh1H9q%*^z%%nC0i zGEhOnG=3&su_{Pr%uoGg*;6o9WFUbqtX}vvYR4kWtc7_+1}aE+#?GaGvii%6^G)jN zhmVgF8AzZDs~1HXk+{e5vgcdz8$<;O_m&GOJ>n%Z+W5NY^VbE63?$Hn)r+FkEpW}^ zap#K2Kn02SgO}1HA?`9m+dDunUDGTwkU$q!FZ?-x?(ZxWy6qMjs3753VmUQ`?JP6a zr;gYAU#KlIkU$q!FMJO9b6$NEStv44LE=ZbRrFATDl?`A#Ol{~eizp$B+!M`3xB%p zpJIBQQ=TFN6(kykt)`h{9A$>x$vFMeqirGs33Org!k>XWUPiC=Ccnr)1&QiKlc@74 zJDCwYWQo3UWNVRu1iG+#QIxOW%Ih}ox`;6YDoE^ql0<(Wswp$-+r{fw{pO_`*IFdd zh1CmRug|rDKH^wDF}^|tiGAObXsPApWX9HfOZEG^%A1S~B+!M`3tv}lM_K*gsAnPr z6(sh!CebQ03d@YNp9^%Sf{7vn33Org!k-;%S3>_mT};L`3Kb+AuCAtwqkqWpZadrA z`ur^~MFtY+!s>+|kAemC$`faa3{;TtTDOXZetnudrjE+54`Q*VU!5m0B+!Mcjwwo5 z-43R!TYqIdTsGNiJu)PGDz2pK3*OY!JI0E=ubuLyyM@+H-^TY!!TnKi*~yu_IS6(owauSJ#3e`E%)ymVf9 zi3}vrh1CncuQp7C}pY6D=$$M zp@KxaE!AoL6S?=Jc;%(@$}8RY)gpl|tX}wYGM|>}yz&y&9V$rl>t2JZgX+k3@XAZ) zm6tgCAb~EdUikIgcd^bZFL7o-1&NRIZD{b0@)8+HpbM)PMd6i~&MPmGfeI2k z`n9I@8|BVZ^UBM@D=(3O1iG+#Q50Tz>Adn18K@vJahOJ5jm^DR#49fgue?MC66nI} zh2Qh~ud>c7FOh)?5+{bb(P@#n_a=DdW#N^VYJ9JdKo?do{N8r*GYhZ0L0!YeP4fdsm+dQlW!d0BYnB{EP!;&)IWo&P>WX7I`@gI8W60||6t^}@#` zO-fpL_10wKm6yms1&Ok=r_ySs+`i(Kmx)(iA_EC@VfDh-lr6N=#49h6 zfeI39E639E7Y50`;+2<)S6(6m33Org!dI0~{bk~nm&iZ`iMsvgQQtec_c?jxW#W~W z$Up*JSiL9;ue?-Vd5H{EknnR}ME6h1z30U%FB7l4#BUG@bYbyhH{nNCYiSq!o!KGkE2t^2$qOAb~EdUih=;0kJBtyu>vM6(n2=Cei9U zTFDGvd8xee5*bLK3#%8tWBSQBl~-OO0~I9R?_Eo~&$X8syz)|c3`n30s~1J#m6ysZulB~Z78N8icdnxchUDIl z;+2=mD=#s=LIPb_z3|NhzS<&~GpD=&+2jY0xlSiSJIUTkNpyz&wms32jzA7rWTj%shu zla|&Q;~5g@vaX88ZAef<{%NUC?-$8XK?3)m@oZhu`5v0$o@kDax5^ z{7rI&h`aizAo1;S6?!~9_dTy#wrstw zj~JdVGLS$QR!Dr!{#{@6?!(@R3{;RPIkpuIZ|NobYUR{}dTXznA_EC@VTHtZKKXK0 zA9=D6F^)MZNL;zD(l)xk%xImyLjP6joyb4}U05OU^KSKRdec@FL zijp4KK)+hQp~yf5iNkjTXtm8@GUMmvZI()7ii->+(1jI}qC6kAz|yy;gUCPyi9Q!X z>D!9oGUG(P*Xb9lloT0ApbIM`z9ZZ1BhDS_HWC@AAkpwz6y0`fxXj4EYJq9Ox8lS& zUm<}mtdRKgyN}k~1iG+7 z;@{n%8f59WxgrAr_Vas$aXaTRDwL&a$7tJ zhy=Q@LgM#?)kb83OVUB(`hf}(W6CDe&06kzUiYS#AdPytizgb9Ko?d>it;kfo;U>` z65}gWkl5+5o;rCHlI;lZU6l0p$*UXJ4+{;NS^j$8Ejea#svNTileq>nFM)?V=ae-ve8ryitv!dHFx`ZRs` zoP zMV>rABHqLaA_Em9@c1jr7_VW(LoX~ckU*E`on*SuzMRZxn&3lfJ=-eYwL}F8 z{2nXH>dRrI)v7h=#+n02psUNVWO`$$jm&5?+Ly$*l@;qupn?Sc9{DJI$1swd`AfWO zi3GZQuCAxGr#Z-sZN+V-f(Km`dr&nwF8NnME7 zqpu)=18FHe8U8q^{9_* z$LIES$d}UPiSh0$DoEgUm%o(~WJ7%Inu-i0&~bx9_96onByb$W_YJ>uS$)*QQ)D24t|AX& z>8;x#GUNA`9qI(Fi^xC)2^`Py3i7~G)$dlI$Up*J;|oorv15kkwqtyldS!NRk%0;l zI4)I`9RYS~be<5AfdsnxeT|~wArUg;>DA|^ntS_+3{;T7@io7ym8fi5y)H~-Ac3yH ze?sZ0&AA!PyI9iKC;N&FRFJ?rfsbArXIQpu3>6tjpsVcS0IIbNm+dG~ThaBdIqg6N z39NT`b>|zX$MCgMjo$|n=qj4gn|3T6Dl`0VN9nZ=dWd$Qf&|uW{9ICdhyJRFpU6N0 zT|Gy+(s4Zp%Z&a3d-a*cT}1{eNMQZR*V*3oQh&R*yU0KSU7z2XXlUWw6)=0cz0zw> zXe%;MK?3V&MR|OsG3E;q6-gub>aelh8;T56kihu>{`-iwW1R-q z7a2&PE4W}Ini<+t_SJGH{&r1v8Iges5;(8HR|U>e*|?U)MFtY+8vLyutsauQ3hj)S zPAt0FCvo0I1qqy=Q526DcV<8DzBsodfv#;qHnez5?uv^AN_ArEpIbx*DoEfwlcId8 z?$2gUS+Mp==83KBT)$5(G{7{(42ixXo8B+zxpqcT0SH+LoIgg9U3_~*D-0|FH! zaQ>2iuROz8#O%>xoe3n+<>gz222RUe4Y8Q3533Y$)MBh5gbETk56f4~dOC!CtD@<~ zxdaJxl`LPKj;!}fjzw=D_GA@ZeRShmiwY7rpR6eF{_|&!sYxOO33T~H)S_|psmz#L zsVke@ZIj4A1qqxN=jZnAz1U5MERlf(x+Z%ypjqcH$&60pOw6lgw#YyQ37p^OPg(TR zm{W_Q%;+m5&{b|nV|vWdA~RmtH)7KU7G_3Yp@Ib7r%;p=P7dt(>bfEW33QF=kslVRFL@4Y#7aJ7o*kVyUr_0odsnqel7gi0-D!~K$q>JFxob5x^~giAV!=kK=uvn z#ad`%^fFBr(uJX`wZ!Xps9VQ{^la*Ctp#7Jmd%c%X>Kdzr+QGJAQ_wC&5qtUYC#2w zIdO4xm;DO4OU$H$@6|4=0>wJQNT91{x!E+keVoj=(k4rF{d=%js~8m|K2)4dM^uTE z8O84IQ1dp55bGf$VdZk2PFwY!DKpO8U7;o(A0^f*RzN`_$Za|;*L0@LSZnL0=BY4F zWFUbq&)MT?-UCx*Mzg|ps%y20q8+Fpv25;m`gHMBnbGXRQq#kF(INv0bm4b_kKsIT zIUk=jS+oNcB--)s)f(R^GQ)ditYvtIXtCxp66nHjC?A)6dTLRA<*XNu3KILP@Tble zOp_Tacev}NhUfGZ66nHT8ea)PpRA`&juP!a1&LeseQAk$vt&lq!`t+`84==pg#^0r zjG-vUVvg$7num!DRFJ4;aihC`E|eLG=ilhng9eD>fdsnn%*R(%Nz21hyZDJ?jtUZy zMfg)SZxUt3is}_u-;^HWcp!l;JcIMqddk_b_{y##0~I9dbabKv(znWtkkDrA<^9&8 z9Y~-HuSAMcBarW-n75heD^!qpxwbL&scw-O4qaVYr`a_`1`_DPE2^S6mT_l3lgo>C zpn}B3&JF1DgO_B+3l~3@T1ycbNT3Tx2K;IDy+JIg*=w=RHY!L2`PZU5n?IEq)&2`* z9Y-A!Yk4DqE*#XvD010&Ah?BojRc|sIdwRUs#{?B5@@bXn zTt42-+2y$Pu4p#AbRMx+3KHnTk+Y)oycx|ZJxwwhYm%da#NF4G>8}rUWJagT6IeG( zW3iSu66nGTfIsEEbR4T#w7+VsNsbBLXWP@I=QjNYs0$o_iD9ZM~ zBG~;GyHukcs30+>mkkY=o4aeMdC(w6-rN-#NT3TVGX6AfS|DqC^^?dz1&N_A>e0g^ zb9aRHIMAClxLAT1>(C>CF03s1cz0%ZcJ+59VzdJlB;I^+pu3`a%DxJHZDQq~*b$?z zkU$q!$o#3v04KJiW=mom4^)si-_MaY7@E6VbJOs8Y|OR}#8@L933Oql&)06-T8$Mw z;wIXG3KFhQO!Qo(++B{>WfWr9w|I$mAb~ENvEVx*WdG2sjPe&5s3385m@91&I9T@8 z*z=e4)uV@szqtv50>Yc`aiDQlgx^RY-KS^F`y}CGJ zq{u)8iLl49wEL?NnX&EUc{RIMh&UcdpbKY;`O~<+AE~9!1&d>j3KDH2=hKCIgJs6J zJ_U(+jaO`cZcpnc6=qa472DfB+!L3_k6y6 zLnBggy0geY1&OdG3AEUUKC&G}_+F3~Z5%{~6#*{11Hqq;ZrPD|Z>%FSP{F_3so5&J zZfiH05q;K!bZAma^c525!aFI7;_|8=u}dl-GEhO{$Fw!ncsC^HTAR2vn9P5AUt9-~ zKo{N-;&1Q_8b-W+o)y;*RFL>yVIBRVwU!wkl}D2QN+pSF6cXsdJ6n9-r^gub>F_LZ ztwjZiaarqW=a~*NBmKg7vWhy2b|8T+yhF#|9~?f3bjm0o+JOoZ%g-m%;lpfXMnrNn znHW>eWL!UxKo{O=Kyp3Iow5`B|24X%i|))ViNY8(J>%w`C2Y)YC7j z|Ni!*Q|Q0y*oyP%sZj&PZr=sBE};K<28w^f|M*?TkKzp z1iJ7n!B@spnvgp)OA=$hZB&rBl(>@axX@K*yq?yX)JP~O+JOYR@GQZ145`m|61eq3 z>`jge5{np(Us@R(x33TCEg0KEPuLtQ_ahKSe92F#vg{-An7AKi8 z@j);deQc>}>`jgYy6`N)cP4$yckMkmTs8KPMg@t>w(F_Cql3%{%QKu*Y}-&|Ab~DC zOYoKJD+Q2Dwy|8yJu_pr(%QB-Ks35U* zegb`U{-DfAZ`P2!sMc6yAc3ye@k?lk!zS5|cGJs~iLY&$(GFCQ2&%J$28C>q8LP*Z zAl`p>5E)3I3ukWmb22r)sEjB=480||8D z%q?Gi@AU@fNp}OqF-HZ7ZGFONr1SLLb~Kr3>0CZ10||8D%&nsAbG>X)1_y`?RFLrZ z45I!+X2^`A6xb?AC$)@tkpas5CAiL={k(vR-1iEnMmaj%aJz193`Z{Tx*d)7tY)&N|kwmY{ocui*b!Y z1&O&ktI(JKRFoMzVc4p}d3ligaAb~ENx#cTh4s>LhJ_U(!JWxSmeTByKd0Y>farRCN)~8@?k%0ud zaOPG~TE4Skr5e^08K@x9&$AWHwYm&o)L z8Aw>UVCI&ugs>o4&yMXSGH@0ciTsT{Y3t)5GGpTI7~Qw;5OF+^Ko`#3^6Pomp8CRj zJ|Y7ZB(kptQ2kDr%&1wUp#G&-xX3^PT{v^ADA(_9w50wUATm%vV(-~dUPpz?j3EQZ z9H^KYDf$Wtbm7dcqC_~^nljS@i80A9Z3#dhU=d=R}bm7dcq9hz> zpw2ARU$g@iB(~q1O0U(&v2t5F_GrSd2VQ}4!Y47{DSfdfPIR#N1Epi z-KsIl5CjI;|IVdJ_UY3Vc&nW z%Ts#Lms=yuZ2o@Pj%Md8vzPt5lN!|noZSvZm@nsNg?Gq3|GG&acchJTWO@*UC4SGv&NRU*wnzfTC)mlF}@$BT3=a#I)HjH zs36fH?+Ekgl>M4RKO^Jargo%M+s4ec_!SEh=)zCPp9D;3MZSbPGIpzY1}aFLeidn6 zG-;34*xATP$!t!(m1x73WNx-1&}H57_@I6y-|+(MS;^I=&Id-A3y-^@r3~px1L8-R zGn_AKH|)F8cLzt9-TK{-EqC0}mn6?B%AQW0Y(fQzvYTS~WMJg2WMiJc1h>(f&PPw7gBh&ZO?6T5QAjv(8AM z3y-X#{ChBvoUd_OKk7bDom60?IjF%)ty-aO^y}*pX64vJ?clkt^hN2B=BM3X%k!1p zT7MErZ|hmDrmCnQaqG+obC5@-_9ND4c>$;XB&*9qz5LQKRs^~Vo*rTT_~Ev8Nt_cO zR~|}+^dGM~l-jAj={(Z>=3XAU`fNA4pN=$lETqt0JG;?sJx7{*9?C;=&Y~ao4k39W z7wCm8$to&H9IrmoT-xq~HcRcsKh?zkLrJ9uDSE)BIaUO^uzh?EIW~wK=zBnq^GvX6 z2NIo1j5JS(eyt@}F*00_4j_(Qnf`a%B~}Ewu-EyHQ@e)}*T|2Sf7hK;eFl#-hdd}j ztB&tZ-wYUOj{B=9P43d2{uwpWy#7=P*>a}?A>_bKQ{$>dAs_&(5v(K>VD`RKXlqr*~qVk5jytA_B^Nuey8{usJ6`)W*csc`?gH%YZq(m1hvB;J{a(NSyu9xZ_nw*EnR(8f2xEnt z9CAEiH=GD`;hCjA8L#fFS+#Gb@l7(bSzTgzdD^w?)kZ&a<)By|afEg+o9buIP8rv{ zDjVlK;&~5NaOFc&?$>{1RFKHrE0#~#RMwnhg#KL8Xl?}a3EpFR7N$B8=)$8;Ys8lh zVG#qXm{!gD>U2Jk2&Qv$Dy_J=A)OnV-M_I9ld7-x{eJ3=6M-%~H#DdEAY+l^vdgc$ zE3?h?d-i`_$=sOsC~oK<%a4DmB%Z1IHH+n2i+h;YztS@b{*qZ_&l>W(_Z1l`NIb6; z%SUbSG@i&-=WWPLPZjwWukJ*kYgqMI9v)T8{K&gKWwbn9m(70GQ9eAQHbVu8!R2Fl z_EvSwq5e8?^j0x;w(@Mb*GPqZzh~#R6km}(>4KgAbJoY~>Ds|;x@hM^_xhMm(DNgW zDXLJMoqI7$p4V1ksC2n(=PrYM%&RkZFymjMyK`zO7MgE{T<3?cQw9=iKHK^By58o! zN&2U%u%s3%x_XMdq+Km10$tc9n)x!N8p{?HD%Wvuz)(TrR*6{NFxu0cub-Z=VN4zN zaX>d&>+b19pv(DK#SSUSQu_ZR?;Y#Sj*qqT6nh<(t_+f&)sI`p@;QP zb#M3|xnIIc`F82{P6WEJO*H$gUsrkfSsyvz;UM;ao^b{iYH!w`=>NSI!_S;=XMPde z(flDbhR087XYOUwpWC~~kC9s}3y`;_+8HWyi`jX>>8;JH%XKv4U!vb&tL5^npdqsV zuyCggBpSA`^AodMm~%YT+hJ+ARlaT>D>rXqaU#%lznz^wEZ@TX?UqjP?WasRt35Nl zDj&zTY>eRzmin1TQk^kwb<;Td_pq=SzL^Jz_R+lU_#38?(ifA9I+CG+M5e9u zyqn}_-jS%cyz$kyreb@t%I|ZIWT=Ghh~ZyP_?fFD{BH*L%_;M(MQN=5aHk9;${vd0 z57zpbhtAY9x=s$4y(WaqH44Q#5$JM0x+SwUkjqAtlLu}Y>U6A-7;_z`DkQq!cTUq-X{>tgu&4u0k*3p<+QH^lJZ>3-%x zbaeMqHOV)3Hm6s24GIUS^`m^%_m>8-3A?H0=+MUe4}E{y)3K^?v5omIeXm9?is5T! zwl>bk?af@B{I-VLVCoQt3KCE0%=Y=*)_iKB-i~qiW7WQw?W(u0-HAZgmohOtDWAWQ zQN3pw_0up9)#f*hp@PKB^)YzMOU$9c`SAV!V^ofn3 z((gtLZ=crOob3L;$EvjNY;|lyn>uQDlv4&03(m#xf?h4nN9yXID(9o2YL`5n)CwD7 zod|T{d7?e4l=50`m+k7|`<@JYAh2hm1YH?sPF0NiU?!J5+Wr4lsSdYh3>72>Rj~7& ze|*h-LiLtgk7v~!v8&agiLIRobWJQ_=Y^Zg=0ziQqGKLkZAo5lb@=QmEOC~dcl}sF zq%R(A=Z&XUGxx6A-n_wL=aatGG(MFUT3644{={ORE8=IP?@+&gPM zZQ@;j^{sDhCjwo?2iy5b|C;7|UG#g@W|OCOb7g?~ds`ib%FaP{&g?bK*8=|cQ`uM5 z(aN3-RO^)Wbjm+Sf00zSCz}NpLBn9 zjVf=J>3X|_{vGtNyt&a1KQo>u+IjJP6U{1pckIhj!RZVlQEaxIzy4IgoQa;)Bq?FA zNxQX*_EBh1)rmkCo=r(&slnRwp{nC{*f%*g-p;T0r4`GE`!0WSngl zruE#j(-ipUhKvdl_vhI8<~jwALRyWzSeVuz>8WqP z#S|G8B=l#7HOC5?a~;()O5_RE(vrMxjS?hGti9i>gCwf;j+M>OlvqpY6V4A$Nx}CeV z`Y!q`R{7YuUt*dvh_^Lk`y|O{QiW*<*&@@*~WmJ^wIP z?tEm66M-%~ZjzLJc`xmEr7QBxY?I{DRqT8w`>N!l9v1wB)(_N+8~8%mFiGz(spuJ` zB@TWlC)Xb=qk_cf_jIqV@xtgYsk5!OmTlt^dE?qSP8q`}Z&H`9%B%m$qgCs^_SR+x zX!5%EbDfSA60tSyynLPS$}G{B@%D5d?Lz9ma>wooP6WE}xJiuv}3 zt7CtA-G?#!d*D-}S8e*Uj@muX0_@q;@+MS}I7`ncm)@l+HL~i*s$Q|KTH4Hsq)w^&uZB62mhGoKiMYUnuqt(|87&xm>)D zH|rCgn1l)vJ}ib`&UH@tx0T)xw>`Cy*6v$PR_wq{2NLMQBSPb3ddS*dkLs-0s5^&H zL84MCdYG=|4*|A5_@P_J|EY|8mOos@%vF2pHuO@aR#$K=&W5b z&DF=;IT7f}c{q%lO1PNyY)M+<5vCn~F;O3Lr=o(ys!d_M|A{Q-^tUouUiQ?ID|v_v zB+zwrWf*VyH?NV=!Y4|bI>lAA0~I8mObz3W?&LKx*!mDHOX0fuSOXOaboE~v#)ERX z8yTsaVzh03l@9603Kb+mCx-F(Qtn2EdzKI__~R;ltbr4Ou9RJ2ymr>AMn-FEl=jJ% zMISG!qJl&t`cx6Esu~%mvh>g@J#MRy18^eHrP3L!zP+B2aeP9URyk_Cte+25ka%-G zj5nz0Wn@%7(orjBT`e+@Kv&sX7VdpsHZsGr}r!A->VmLJ+0>b?D{)MCjwo? z+^qcH`Tj;m<&zDy$a*F8caSP7NL2f7;fXUl85#ZyOKT5Dm(kw|I}zv#Utr}MZ*?~^ z9*-}l#n|fV@10dtkhnU@%6ES0VPuTIolU#x;-$Z@bt2Gpwyup2yVTprxaFQ*8(6i4 z$Up^&E0t}$bZXyE}B;2ms_}$GG zBO_Cmm1-7mf6)#k(B%;y&P#U*H!>o=El_*^(@$ief<(bt;e5#c2qVMqVGH$GyB?w) zNT92E#|WOVE7HjLxW_}S{v<-2b5xKB@QdL2%0?R*%HD;JlVw6gJCH!vrTmfnZNDfZ zoka!`=vvk!nztC+-^l3WzFSW0-AiPkf`o6|XkPkKn9+`+z0S*jO0^W{ z0||6pd=1K~ug}rZ$Vl8$gY92iMYIDI zB%YMD^LM{H8X0NzYO^c3a*Jby1iHpif`q8y?MR^O-9tOS|H0SD*jlGEE9m}6T-#AW;>b5UA2QoyWJI-T&sryJ7a2&PD~Crc zFa58lk#X)#Z{~Mnoyb51iR_HtQ&p^MWR#2yWVVq0A_EC@4W#!w?b9k588w=Pvxu#& zMFuKJ)QX7Z54OjIfFd5;#79b~tL~%kmfgDxTYsKvzgZJD>CCn31ut5NE63<1SJjuk3M%=C}s|1BG1WV|Zl@4NA7h{!+!UA^W+@b0HFGTN5@ zo>Y8VjA#ccNW{&G;7QLjGV1ob@90>)m&iZ@UHdPGbKmgEMmy#&uc*eCj@0z$D^!r! zd@h{JOD7oZs1y*crWFjNuTC!TJA_Em9HXg9@cBN^2qIgcU=E|dG4y`5Hfdsm$)wl8s755q$ zb!U~;Hn*rJGEhO{M@1`NU2M0J@%&vyZT_2LA_EC@-Pmj4d6ZK|#+nb_+Ri#9#rFyo zBqpx0@Rnmw7#TB{HPkANltcy+=)!&!+AIEW8_ixw674_*3G6$e-30$B#@zmEtL54= z*=Zyojvd7-ktFSoD#F&3Y_IjN-`f`zB%DW>@&|4#ixQyGyln>(=)x-zy+vO9N2b1Q zjn;ZGp@PKLiP1bJN4zmAY`n*HxkfjO$Up*JcqNjg4%=1vM~4WJfeI2wFGq3Tz-dNC zPuo0s#mj*r0||8Dm562u6&oz)Xf;Hm^<+$_AaS8k6!&>B-pJ^*rntOszgSnzfdsnn zN+e063SKjPjENH&s30+du8HN3jWIH+H23zMxkRk1=0E~ncqO9!)jH>MWZf**ZZn~R zL;_tCi{u$=WUT&_Sv@g9tgGfg0$q3|qLq!tc&gRj4j1PG6(nBKHF5dj2}Z`eu*vGt zQG@k$yc|fN3$H{p)BDgeHLZQDI98}2Va^}UxBNHV$XL7Uj5=kjO`LNi(1lkbNxHxG zo*MbHpU6N33D(QTuV+p$GE%c<)qc{-r~2;$33TC=h(=8=%A>uh-AQDif<%vlR^Hin zjgb*wvb=VDT{Dq^1iJ7_BuQ@;SJTS3GKmaSkT_Gx%H?{yjf`1tzS=>Lnj!-Ubm5hV zR!VQhwVJythzwMa7_ipD(-xjEG7|m#wN$_SA_EC@IbY#cRqv)vf0IpQpn}A$h88a6 zO*S(2kLahpVo&sSCLBnh3wwuYg^gPltzO=Xs{T7i1&M-B!nkkU_eMsq2C>?;@HHX> z33OraFs;~|Hc(6OnISSzLE`x4FuwJ47UTV3g~lVaM^}9HwJaP+pbLA4C22v=k=mf{ zxkUylNaUFw#^2q|cn9g;eY93^qOU_gR!E==dxvQz>y=U3r3INA>(_QvkeD+mj301! zH`=j(>?p1GS5;qE&4C2Euy>fQiJeAjMS}9^>#&$mK_Ylr7|+zas*&Njcc}K*CqiF` z#eoF6uy>e7z0jS&{lE;7feI3?7sI$uX)hzgmOn~6?0HaRAb~FI9i~+s9TsiWq>K8R zH6~P$SXjcs{cX(1=zlg?JG<_uzGjUB33Orauq3&BkBQbYbr>%>XUKHP0s%nBERlkjVDK!k>=mWMu4FUQes^puWgJ0$tcU zOqG|dns#NNNnZ=egbEUKCtG>zXFZIJinEJp^Gdc88AzZDdxs_ITHiccOy^D_0~I8q zs@QnDUww>>8+pE{e*!{81`_DP-eFo1sP;WISJ67yALkLO35 z+SC^7syUEA7xoTI()SWKOl53w;#i@AL>KC(-hMR7Xvf#!R&ws;!^N>e0$tcUOuZk4 zhsdna5Rrij5`(FqdO(4U^Kp9cCOJn9yU0KSUD!KJtG!jxx)8NT3UQhiUhroPXsb%X^9pRFGKqEt-$J+uO+a_PQYJJ*Jq8AzZDdxvQsMIS%5ds|`A4pfjhNh5^j&?vq1IVOH@d$5fy zGmGCL=zyc72*RFK&9)y}PxO-4qw*Wqm0rQ_lrg#@~=cUY2MjgDp? z@^2USC{&PmVT$E)nYuw;aYcMRXGFKm`e$hd}cnpU1I{ zlV6+k?=BMP!roz8wXVS^_OkX&lYWmv1qtUF3e9JZW(oI?=dPiY|d35 z?VrUrWmJ%Go-I4I&L7$9S_^%3d?x~3*ylhyLYGaJLpI3zD*p@>B+3tu<}I%$7&BSR z6+13Zo);i8kU$sqInYkZ?^eqtf3^`Bs32iK9mOYfm}z9Js5MF6Te`2vKmuLZ=O9Ug zDs_~Hb?&0kZXOI3B<|*o;%&Z8GBR>?%qiDrHj#k@y0FiI#=Y*@VY)ZDyJ!b0NMxrz zoMYV;{1 zV_Gw=o&23uWFUbq>~oML`A}o+X4_}_E-?%hBu@HSc#cIWM#fv0&f1u)SM{A}WF*jq zeGc^0m${XeRA8sbKn000X<_`|t{;qy2Wvt!>GJ}Sfdsm+&w=(53hAV+ITs}|P(i|U zER6eCb}>fwk9}m(mc6YmGLS$Q_Bqf@q?Li%%_VR2-5nV!NEBNe#;dvHGcxupj?ikv zmUqmgV}%5|u+M?+A8UJPAL@ko=ozRWv28^dKkr7P^u)E~+rDt^{BQj7yB9EtqZ`>;z8D6e_+JDnt zhzumqg?$c^wB~#xty{B~A_Em9bz% zWT1jXwgusQQ2B5pV{X^BYBd%nGLS$Q_BqhlbN9k()j{1v1}aGGpmBYJM@1SL6Mg18 zikB3-JIY9)3;P`CjY+H9Np916F#Y)o6(mm5xITLw8bK$HRcsZTDLyzo0||6tp98J& zyGAuhf!#$rP(fnque;bj33KGm5&9`>!Z)DtcNs$A7brcy+1h}xz zL6S~Xy(8B?WfB>v;NQ*hGMZ}y8)BAJ(P4AERf|{@r<3E|+pReGw1_TngLISNW_W8aX*Qcm9 z%)KVVwW4rED6Cki*I>Ov&J&(l+j+e?Lj?)vb)(E9|CLvr%CFHr?oI@{uwtcqRKj#Q zB;lLBk2^yJi7TPe{F=7JST`!L%uKmpxl$qn33Oq_DoI(Ux0fyLTr@oc6(r6djN-MY z&NDJ5WmDt@;gv)N66nH;m1fc1%Odyl%^@;SL85l{DBhs&3?rjph2y5%an(cy66nH; zm7aH}bT!2f&n+@gL1L(1B#(%gYGmyDk;`YHTtj3afiA3AX}{Du=aa5}OV2Biwq(QDj|uJCHyZR;<(qaOaX^%g&sl9jGATks8jIde1c4VLjucwmXo1K9E2c zR;-e=yjFd6;O=Z90~I7rc!cvAPv;vMb={|{N9G&fE2yf`g%vC9F%mXPEnDM{`0k>D z#GElUK4--;BO}N1y=so20^)oifiA3AX@AbHtJIV~FGL0^NL+bj z6e%h)P(h-@+c0i9?P9Ei;624d^IiVQp`Q;V(1jH%ts(R}m$qQ{JjXP;CZd8w^-E#= zMzefI#>LV#w8Zb1lk^NE(1jJN{w6MumR8`PkAB@n1&OC;!}$K^C5?=eJ*sP?HcU6^ z8AzZDD^^;wW@0WaQ_?1ro`DJy^B;uq0z<198Bd#3(bi6@DC-$WpbINjNh(**Rh!nd zysT%Sg2d^379M)Au930ic^U0mwlN|D33Oq_N+X>bXVRvPix3&8AhEQYg-;t|GBPIF z3v0I4TSNvD=)#JXMnH^sr@9qfBr;GzV%@*gw=}$kk#Qlvt2Uui-)DC)GO8DQua?X4O=KW}F05E-r`Rk>>VYcPMFuKJ%-C(^ZZoQJcmMqA-k_=?0||6t#Y+1Ed^zBFSvQx+Kn01;0TKM8W-~HOuB{y1PFEKh zNT3TVR!Mph9+Gq}e;$#63KBBa&UGTfjf|`Vy-iu}q-P+3F05E3DJ^uI=~Ru}A_Em9 zlFvl)XG1gEF}-MRxpQLru|fh}Sg}e{N|n5F=P7O?0~I8uj)~$+UWOU%$UEOE$LB0B zjujHOePH2!NJp-y=B#zdK=6}xjH8O&Ztd#o)6id$l0$o_K(j1c&bL7I? zKa1Z7DoB*O63s7r2OAl66Hm((wx<6Ekw6z#tdex9=}!4V^}8Yi6(n%2CmK&Z?yY=# z?ssu5K>}S^u~J{g;0yA&uE#_MDo8l5(9|_JMb0#GkG%X>XQ!3F(1mMy(df1(+vP*< zA?*bb(cAgp@PH)nmO73<|<=V;1AVan^ONw5gACJ z3o9i0eOzc}YF#Y1$Up^&jT@u*_DqY6jQfk1nMyyHEi#Zm7gk8LuEExqzMB>o5E-Z- z5uO&w`@7FKGO~OsY8w1?zQ{lVU05MWQk70Qe5W-jEHY3*qFtLvp4xPdk+HR1zeCfj zEf5(;na+bmG!+G!9&v9fdsm+LXxCvow7KBQ}c^< zpn`1b{`=!kU$q!NVF!$nq7{X zXWu!*?*nQwBo?~Zc-x)-7#Y5!o2WJ9J|YAE7P_!PqT0Fn6-UKI*F**?NYsq8@_w>v zWcU{iQD1*=Dl(8j7gk6#hUL;5$4S0dWT1jXi|kguD)U7nMp zpbIM`dQQAsNX?lLl%#*JP(k8!HVdz?FrSg(U15P*zi7%K{a7J^F07EKf45sFTL!)pAco1`_DP3Q3Zl zEXbpn}BmsTLmc#>dEL(0Yt&H5ZfhV}%5|utK8o3=h6IhI(uk8K@v}__2kr zpVZ9ASn$}QCX8q-GLS$QR!Fp$(1jGo;{#_z1}aDdb++=qw5D46I*@I*wpHg93KSVg zpbIM`N%9`(aMbShOk|*fMB5uy{^fBOBcuAz8tRh)14ITA=)wv~lFnI|IB4N0k%0;l zE*2Z#*{!FMvGuvDT4?$Nk%0udutK6YCc7dWUhUju{dsu8yUZYPB>1T znjtcfKo?d>v_|8XQjV~C`9uaPNO=7d&Rv^r(0#H504 z3W*Fw088R$Bl1|E-W%oK_VevB-j3AWaR#Q z)OX9a^b91>g%uL5n6-3|@9wh&MFuKJ%sm>(0}E$lGo8|FnhI^Ob4kcKgk7TGI;k=K@`Q)vR(tkgRmLq{KtX?FE zDle5PFL88HL1IL`X#V|e#(peRc{!-^65kRe(1q0tt^HZ;wSy`zk%0;l6B43$jo~Yd zerl?`98`IU3?$Hn)eDUsT)fOdm6yms1&NIxB6;HVMMefyUP)AWi3}vrh1CnayZcns zL6w)tKn01iEhBl}QVWd?s=Sh@@)8+HpbM)P+Fz|*KOd^RLV;nJOk=Zfdsm+dZC%ctEb9Td5H{EkXUul!n^csY-CX7B~#@k zGLS$QRxh;cTkA10RbHxotWZHBIlq-xoX?F6s=Q28d5H`p(1q0t&BA_ck*V?$8K@w! zW2BWof6>Ospvuccm6yms0$o_WND@_EGF4t80~I84|FH5*awj8$DlZdNULpetbYb-( zNmO~sRC$RERFIf7!N%X)0*wr+yi8Pii3}vrh1Cn)YoEKyRC$RERFLTB9?q|H%y@4= zm6wSsFIE3uA%QNeUg#bbbizcHm&iZ`iJgvcJ|eld(GIG-OjLP^3?$Hn)r%xiV>Ymrn)LsULpe(Byg__8m%65 z(=mR}7svAbBN-Ct!d*USH^JH89LfPVb;hX?PWyi#;k*mR?B_Gp|~y-+{gob76zQH8`?OH`1k zUM8B4zrEF%#}Z#NRxLa){f#>k=)&rSYMd$K)ilpCA_Em9?oE#3MRu<>GQ3z-^^ThU z#vKWCVf7+OuOC)dXP&DpGEhO{$MZ-&uE`1`<4>V|jwUVA-?$@zF05W?<@$dYJN{Nl ze;bYp5_6kH^58W~jf~-$%}Lt}rN41U0$o_WP(Oopf$y?fHAFj5LE_pV2rZd@te{>(V(1wg zzczNeaX$7BnJb^Knf}Hd{}#HidZD-Bw0B$Y>3Ky4Do9*lHhy^J0V5;Lb(g$r)*bOS z90_z`^&&|d$3B)*pGYDD6(sH-wepF%Gv>rqu5eLax#FnEKmuJ@y+~4Gp)9QG$a~_g zJ}OAK)A&T+iL~3Mm^V?c{&V@v(={Rk33OrgLbY>`{4Cqm{UQSuBv$^i@FNGG85!P3 z)8rPv$BGOj(1q0t&GbI+&OXnXB{EP!q9(0Dx3b$$BjcH8Hdd;bkH|m*U0A))4C%U+ zSl0YpWT1jXByp$A)h^buRAAhA2t!sS6Fjf`^3b2GGDTz{fiA3GXcvrA1=#bZdqf5*NSGT~c|NI$k#ThOBl(2qW|4sey0ChYq{$at z*oEK}k%0;lKFh2$*Rr*d@%Yeb*|p(+A_EC@Vf8}a-O@lcV@9dMl6z>G%O)9P(k8F&2S!didOj-?bx=jom^x@`YZ?}(1q0tjYH1dUG@mAATm%v zqR;7YZm!+S$awN4liW2heHH`~=)&rSR)g~CV48Mn|N$)ygQOF{*p15tmJ`fj^M@VvmlT_7gjIyu4r&M^?qy>k%0;lojONxbysl4cQ=Q( z>N!1q76cOL!s>950eKZXht&inQqeDh5`Kd>@OzFU}S7oz#Yt_PLNWBknFC!+btyN8tZ zaqY}lh0$1?FCfUzRP!~&t66aiHEBr zcn_DAM#kcS$)>IE)7yary08kPb#bW~{6_B`#Dx?~*=y z8UGf#unMDHDl^TM!v^#g8K@wU(;Ci`Z*4T%v3l)RdDQn-Vx~6|=)x*Yl3sSZAjenh zA~H}xV(JZAhlTGnGMd(UBwzmRBhCjB=)x*Yl4{(@!WJEBDl$+(;+mh0yHrjxGQO}ys&t<`BG<87vLtU>?6A_EC@VHHNZJAU?J zXHOIp8K^iBHY<0Hyk%sp^YLO8X)ADjMF%9@!G%>A%|#y6l4bTv6SIC%L1G5IH#pby zg^|(j6KB^4pA;ELpbM)o8mFJ98$0#sh{!+%iN)tEyhPkDBO@WXJzMd6rpQ17U08)t z-|K+Btn8cdvc75rDo89_YT@>v?8a(ub@m0Y^J6QC3?$HnRTzz-x7nC!b2iZqRFIf3 zj_Qy0`HhS(!9Cb3j3?$HnRhT4|TGNdk570ygDoCvRPGeGI8X6ga zHyPXW>bl540$o^zNz#7}TCpdmeuxZIka*kL%4?N08yO3V)Mnk6yJ-5cLIPb_h0*Tv z_v*8K+lp%X`9KAUeg9bb&+i#4F7|&@g5}y(Qe+^3F08_69NC}JZ1?!uA_Em9veQ_D z!w=gV?O=zquuqQKA_EC@VHGAxEwg52mEUoZfeI3fHrjaMeO-(U->lcs34K*9nN2O$yjA`l69&4khK#TNT3U=Fxty>|9m+jb8nG>3KH2a zh4T(uf{b=NoxtV$<-3XuB+!Lb7|q-Et0MOh%9B+D@oW7zQ z66nGzjNYYg%xg+npT43TDo7NkdN84Jh>_8KvEm5pkiMcE66nGzjP6n04?C(Y3K#7_ z1&Q>J$E4BWB zb|M26BrJAX1LACFBjZGJnp$pYJ&}O~y08kP`rJfo(C6_H8K@w!_hU4lchb+uSnOFu z<4wzo3?$HnRhT4QP4UovX00SLP(dOvG=}%w(Za}xb*rvjJ?|zmkU$q!VYGfp4W{Kg zl{38^uwOe8MNh@>#ao$?k$a}EHm2hPac#%Hg)ZDroaR~{>!5X8aZg;^Q9;73h@BUE z)WFE_2yLycUAtLiAb~F2t(`_@wh7kScU>bgP(fl{2RlDGn)X|tpzp(bs%>Y@rA=>< zfdsmo_a^T$I!wEuwh$SpAb~rAQ?G$XpjP0FtD3E57N@<*(S`e>(<j6j1?;_*0Zm$7U%89@$I_*m>T0PS$orgsZXALI#iVP&sg%vB+&K2XBwP+rZfeI4a$6NT@4)iWnWbB$TikV88 zO!|7^NT3TVR(eOjVlr9b>3KDY< z(e5gx>0PSGSQ!|}nh!f5);&i8U0AV7(xfp~HX_F*vFQPa;kDoD)RVdX7fXY8u$?_Q6UYf@j+zgI}03oBMh8kwm&>mtDoA*3vhiZ;yBHZa!avJiOL~b6 zB+!Kwt0d*hdS56uuAaSy76ptvA zaX!pvH>#EGG2(lL1iG+dr75G!GEBBHK2Sm8 zpI0#v;!3+hW3l$u4`Ku85h%IJOxVR4@fiA3A>37~JMvFhPUEBvzL1J=y${1eL$Viwx zSPTC?CjA}-RW-V>VwI%PxrS?hLpqBLRFGIX(9RoeuV7?6DiNo>33=_%?@>sg>tEXW zea6P(Mn&(HX|&d`(JY64k3t2B8RP9dFA?d#kL*WAX~UkXzIp}{=&BZH=aUxZH8R@# z9i@2}nl1LCLj?(Gq@C|yl-I~OXCI-}9#Bcv?@>sgt7$Jg58jd0$T*vAxE6G-v#j6G zofP=H<%8|K?B1+K#x~OcE&lmJ@tlYRx|UYAbGKICjW<8T>cnW3ziby7s30+=nw`f4 zd^etVCzlV?wl2CMk4QddLIPc*-^cJiHC`x}L=TI{!aiEU+Sl@@s=*Fakf{4GhJO!y zYGj-<_tbhu(CE*``%Oro>-~cmJ}2av)yHCZ=UMla zSJiYPchB-#)TWYRSKY5t48L}1d4_nrliv?M%JTDk@0a z-W0>{ENhyvAH9ufpPuB`Jce#}BG84uU`evHZ=@}g|Ei}c0~I8C-j3mFgkogmx3$-j zN`DsnxFdls`~}lkgCET`^U=#bFS{B zwds;5GEhNcLa3cTeOA-RD3r~rbz2)FGLS$Q{(@;&-I_hM_=nyi0~I8COtFL~C6<%AxN^j|vj=7TfvA9mS1|w(&9A;PdBv^*!&A zaB{&fnAQaB7^3C-J>H~e;MD+$`}630MCCOyo_34W*0d-i>+L`SUHA)@q`xwWQ0>Q?IkMgkB+!MwVCvs3)Jf~ndx^+E1&RNdoj39MX6%LC zu4bV2GxVa!KmuL(3#Kt%-pw`d71w0_SfPT1^fiVbe(>1HSiGvG*6O7T)7yarx~5Eu z;jw408&{v1arL#!sV+>k-41r^k&9*GBGIKz?tgpK~P8g}thhH139*cEsVy^gY&5K_ctsXkPcx zzeYx6qfA=;>}^B_66nHSRhsiN;huWelZy;gkl0iznxAa2&B#azKcz;w^$^Dj33Oqv zDqY*NY*2gM?jVj8DoC836vgWo$=EC2Yy1>d`LDld2NLMQUR6ozJFcth8`E86pn^mf znkzGP(+Z;{u@LEi4dAAQzF+gBctZ;zlXkT zh!MvM33OqvDy?NPD~GB0(GbxNRFEjXDuNenlaXO5o@QFVFuff}pbL9d>AgWj8F_I~ zkjOvRg1I9YZ{4mAb~FIRi%E0l1176C6&c*5EUe9pRn@A z-A)-9dB=J((}eOO0||6tuPTiTzfyxqU-F7}pn}ByZnWOg@f$`)*3jmxmXE8*KmuLZ zt13zFYcTdX(;IPZM+J$Ie`t-Zx6h1>sE7czI^l-64{X>5JukFlA4l#L8K@xP zyWhh1jrwV1*qiiY8>S|TdlVAr!d_K+vW)J=THPBc>(^aWkmx$u!tdwGZrp2&ZHQpL zZnZ@Q66nHSRY`h#E12cW^x33eOHe^Vi?Hx}welMovtwdd&YqP``uzh5bYZWmB-vhv zu%c7iAJXrGs37svV&UgwOBxx!rbn|Uoewzldo2>^!d_Lnwyy|gD*-rdu}Y#{B0rGKwbL84|+8}I$0gOM?yKwkD~f>}$Wb|8T+>{X@p zed_;|LtZ!5^mC31628l9{KfsQM#j)lPh``KPMZGvKmuLZt13xl)noFD@vTKWP(h-8 z?Qq^;VGko?a>zzGW>9Z&tdKw#_Nvmni6K+vp4GaF3{;R%&V=**X~9N@_qX~YTB&l9fC2jARS|S4pbYahnBptY2 zR=YIEgY|lTNyc$2I09x*=NSGa+c~9VnjiK1jJ)wyW%IAdKEql%%`w3h1da}j;a&NE z%H;bUiP#trpf2jV)3l}aFsD@taP78=%VT&<*fAw2Une3SZpmgcjcchkdN$l?eK=e- z+g**}W7ccR#jE~A%s#P7K3es+8q=n|)5_eqCsN->G5krhL(25>`lqTlDhIP3tfw_8 z_D05imv9H-cWE)aK=b{|k(_$VcU%l*rBaTlMYR6v_t$nV9e=1CIM>D;mo=96sr*tY znZ2#~YR*{x>%t2q*RFO%JmnJe_;<5hHny#1x@hM^_xhMmWb0sFNdK;~-^Y9~M+bA4 z%XaQE$j7`oa|a@tcde{lNo>N7eav~VqZ-Xm9dao5mbNmlI26rOhdF3H+*andEo1ms z%XuYVF})vdk4zQW)TdT{a`8Il{;AvMkl9u~;o~;tQNP>fy+f`1!s5-!sM|M* zsP|&LERWqUr;H0_j%rqZv)>ivVy@ffrk!Y{{p<6}{;Idl1%s{JlIfzd^7$!$i)TwQ2Ox+B$WE=l8-Ht$g8fs&AiwHeqQ`j%{`?_HE-LJ3Do@BY@ah_+1GzApb_QCwM4gbu&JqU|mQg_>dsq}d z@Oiyb!9_n-+q-U3zuTf&``($H2z22Qp%K4_Dmy%_L)hZmW961K`YR}Cg<=XxF?-*M z;LQuHRH}}Y( zX7^FIr4D9&{hK-w=)!YD@90&<^y-(LJq}nW2egaeXP&K4wk6XU93R0w^RG~5eoJ;b z3iKAa*8|_LD+aK+tCq^xS|lpa=(eUmmMizN>z`_I_Deplxd*Y$#p9g_bU7cZ=V!9Z z9Y060Zo4+i+loi<$M07wFSgw>M-_?S)4#4%-mOSBT(r=e0`tyffK}rcbrVU*7w+J*%bWbRs-@Qm@Ln4N93ix6PSC!}+d! z>y>tWlBpeSw^?QROKVnXTRw&g61AwmQzi*p6 z{%7Nj+_o#%^Cg=@{;~1Qe3$a6tbUKmy>NwGcx+=s7zl`S3hd(_aNWAem{#n|YrUJMl^ zUS+ZIH-(av@a6iaYI*UPTz_IIwti3@Cjwow8rXQR68n{G4xLD=uvLC{q#7IJRgIx? zGTO$Imh4uR-lO}jQ_Fk3-zZ=0Rh#u~TG^@PNO(`N@xCv2Dm&ij8T&S`m)G{K%T_L} z;6$Jck2>w1ZJsF?^P!nu8+$XnhnMV2PXjg2DJ$#!@BO_0s0H$kQCH;K`GXkV>55~1l_rmGnX^B&aF2P9m4`X>GkB%@K>7Erg>sdH5eyY1f~(R@ zqzzY;nmP3hmz1gUom1=N{hk&l0$uooL$fohomB@6dgz$f%*sOhSh#1|6y?d5o96Rp zExdf+E6Td}x6FrUS@>hxy>9XZ{ZlQuJ6TO0Pn(DC7|c*XV#yH;AJg@^VxunL{KVc|#1r7E}2-7=rqW8ur) z9w--9-!i)-S@@!RDT?{LPRu*=+3~l~eAE8XaSRnC@YB-!kMfn&QSE(AQpiXr0$pur zPF&-l6lKx{J>yh@k9x9-WNJ5U1VaT0=XOjw;oKB9N3vOyfH zzIRF_ZT(1lNKJ@isO0<4!r#!}eMhauY)QHp?dNmSqljF`$2kLuNi=6PU*S~c(Ix#; z6+B;1jvd!uj@&lbsU7IT?=*cAw-l8Rjj+k7Z3a7icahL8(f$T^QxsKvONP5uma8ot zAlLC2-9?pgTwgmcPH*W2b{FD%?O^{BFX>Me6k+TWo5 zrnAa_Q~}V6S#R&CvonXN|D5Z^P(fmTCM)0A^Mta1>I6E2zu%}^63?qYGPh>g7Fc!{Z-Ko@_>RgM^D(1>7b&kWKZdl{Tuu4H_*A+9Awo4-+m z$IMXEb_Foc##WxI^&!PK;I?_Ao0V%vk11zrJGY7MI9Z>mGlz~;%g*h=@UtV)E1Q+? z?{ZuzRa0+=dH)l&;p!o3Yo(_XfiCBkpQ!Oh&9maQnlHiZRC&c+wer^kHYhdeo`LP7 zd(`GP>c^YURk!#iPAx|w?73C zEp7bj#HGp>dNQDE;*dA$iB*-f%I``z5$MWM$Hq$!U9Nb3(21LM;?$H&UA4r#-{lQ7 zW;64JNlNiu$!4!*^z0KoMJc=_*_@5`M2guxK{--IZ^!wAyVOi&nrkJRWoOl^hVw$J zW-5RBC!1OEa2^>sO9`PTJv<^b@9xSTHSl{=El6>7I#x*Z$V>A%KhILq#M4sX?|tga z(_HJ+*v*MR7anP<&u{stYe)9ho{hLC_nIBSUD!B9qo?i7g(LVs%O@y5Fa2*jV(0Wy zFVUEv!>3=#*g_;4ybR|*|4dY-iYLob_afEO%L27OSwA`v=)z-2Z^=UTIpTL&G_Nt2 zNON0m^=xe;8cKTcWUs@DdgkH`58Y(HF^y1uKN5E#jm zL&ho-`%>lQAIS^!8LL#+t1zN(R2`$d5>I`Z+pIs7{m(EhdU#J66(k;bMe-s2$0}F- z^^9+mayWV{8m0w53vnXQg`bvIb@XrT$lD}BYdhtbQ#+9Gq}uTDfU(MlYI=re&iRg| z!8Xlz>lr5kU3e6z9;{tJE}nI`Hf>Nvr#_kgW9z)bqPV_4j6L>VP-E}C#RBZiUdP@L zdsoDQpsnCcRtsy77McS-OFsl z6->;V7H+hkwbVXl5cqk_!8mQod55Jv++ypSFWgvIbiTcCt-I{kU&D-5o#xn+`7Q-s zA@`_0Yqf$iBdiy*j@xhr6Cd}784U{0wpaXb4Q7!jzqg*H zNL%ZmbuMLc4To`l>PCA;zMnLri^J$!aI<|;=v{WLqr<3gZnAg!Z{Mf-f?|3|<<{1X zjo(vn1rrxJ9hrHv{la@+}=kpZ*u@e|G~yZ(h?foIZNhpeHG~$IB<-#-R*H z?Z)N*zdQK)MP=(zgsvAK>X(9F7Zd-S3^yJwHtmkBEqRYzg)3Tl-!j-EJB$gO!aI}v zJCO>ux13w@>W8m!YQhy&|W^XI3>>DkqU3qgzn!}ja{i%KHjMfa# zT&^$eG(OJ#V4pDp_K*+p`)ltn_@p(<8|%UqOyGCK%d7F&&Q{&1EPBb@B~4tx1fJOB z^VI1&S{;Vw&^zABtq?ece@}d`uX2zT@bCOI_B(WE!+R6R%))VLf{mB5BUts z>_DsIU$I*ENxRKxU#HP-@}STewAJXoEHjXVcL=#>6e{sHN=;S(O2d1p9{N51*lU)BBD{Y6eAzE*w~ zcCan`i_bu&Uy_F{ma>X~ znD{HiX(YbO%)b8#KlzY={??6{xmsH1qY8mj>U&k{T~Et@XrYvnAJSX+-svMNoW`#m zim{6P`^b`~IE@_5O0pUI;A+PCpgvZozbpF9;?Vgr}5%#S(YwU{b^TEbQ(UhtFXXI{=7%ooBgaFj*qUb zr(c-3g5QOL{hY>{&sEsHs&EDC^_DJH=8jEVXWwU2daU7V@BN?*YqVSK$Dhg3rmJ;s zL>uSk<(b! zqXAo&1V`e(zgM)L^etoF`rv2b3MNKJ@cRua)nFfjU{%$Y)v)T+Eo9om8z=-$?cx7x zbtiukLRTQBw|Z$V4>HVv8NICm*ByrcmuBpC@c=gUmBV;(!eB@LXwObv=Ffnb)R>hF zgWtKM$!GKZB!6={|GnS}Ch*e*`7>n;q_b>4cQ(h&?xGMlg`XA3pP>9xX6sFpZszz} z9W7kJPY%Sry}T;D$ZoX`?P31h&R^+)iIHWU#-49}tp7lGccVTRwPJlj%{>JTg}^EN zu6ucf-z{WCt*U2+U2mzpyO_9XcN$YFH)IL9p~wEg#jSA*>X@x}H&qCn!p8!C?njx% zw)E3FXn*=eT1i(O#@P#P+0%#sHtC|n$dpeDrbzJ8#>b41BgEPSIqwb39ex=4T zExFA&3s*2v>afH3V{o|`K8IE?TqSU7F28T$7=M=KlvP0VtzX`Z zc7^%%SpTzyzpHK8R(>`)w;dbFQ<)+h#^tr`SmBoNlUFoqnokSu@%`4|XA4&_p?+Jz zyefWXnN61tC&rAka0P!u0e&SfucA}in5Fh5qeA#iH>d54j|UJI652Z+a= zdTCjX?$nm}g;;6)=`hP?wPk(zYqdY_FuapGvc#V|vc*N5M*g|2SWIakIt`829K$ba z*&6n+a0L^8^l%yzLt8N4R3Iw8T%+|bwpaW1t-nIxRKw={9A#m1mhA!jk6O0pyEgYp zyml{Molcl>(P`{D=gVsUpiU}yc}>mzP4mv5pm~*RYvCCNOtd=dG}hPmWApy|U%NBm zt@gu$WUX9zmB1;yLcV+c!vpQ~kB7C&X96r-!32C#zdym)P$&Exms%dv%+-gqijmzF z0;j(8b{e^UZ_38}_hi*f_4jE1RzIj!x!l{r73Evtm3Q~(>>XO@p(Jhjranp!OsL-# z|Ll)=ty_sC?R~Sp3V~DV@8ijn3VN|7J2d}&)vZnMoW{;N4On7|KTGAaCT|z{vAn(= z*v+C5M#J#hEYAS=#0i_|tDj!5MQd5Y+rkx0OtM87gIqP(N7Si~dO+M6TftR1EnMltQ>VUovxYo{-w`jbk&*57sq5d_h6kxXIVRHg zjWDKdE5)*ngC2Q;+vrRG$){!9Sx{LOPT}7ZpB!j8On=`!uWNc+%k05_Q$zm9$%=BX zdBcB>G4=AX9!YIk-1rFNO#OW9NdfrlbANJ}zNTsm^W)jI=F8?0#>;!@*g9@l6WT@? zQ)Xshc^|f6{k!vHw?_sRG8BI2hsK8KA5v?X7w>K|aRn1gdqx;7ld`b)rQy82>aNlH z(RW$R)C<&{0}V0~lrBy-8t5hk7lYnC&@7&qaCeG~U+bt>%1AA|L3u3hGukO_PiQqGHE z;zaQXBTwZt`z#Gyt>=hveNmrvroBpCg}^EN9`et@x5IQZ`vh}w@?7P;!bB2_Fq&rZ zVgb9M$J`NNdeI48%$5Et6#}R5Z`RA}r=Pm&+52X&%KO$f`!07HDSnsi*ZIAn%?~<_ zAI4s{Z{~NFCUQ4?kmHiQ+rKcYcJBA?`jqsa%}R6aCaz#2^BJe{ChgY$?tMM`LqGk^ zv=?U4vH2AOr|^5|<<%!XP#?VSuGzjzQ{}zF#7+Jg)xX1S`{$Xks^41%>3efsF~|1~ zPzapD^M3prDpt492W~EI71r*$@XujobQ%}GCfWP-YQ<{vJM|p3j@XZFg}tSI&Nli_ z*9%!&0zdOR%4FqeE2lA_!cqIXgRTDGd-Y39d;RX?+}6Dsd6b_V6Pso`jlVCPw+}1? zKgYdIo%Eh-f3SAnDWecLg?~?cI$HPE*JWvAbsf6dCU!Gn!ti8whvDbH**=d?9=7KD zqBU1`2F_key#rBs*>N-(BGf;v1*5> z_~BJyqH%hsF=BI)y=r&p@n%LTeY)1znlQ1Rh6$X)lc0PGXg8lNxXlTL>=X+Ad`R_d6?u2FiZ@wr70HfhUww$3lq7`(p+I~H(`UHTkq zWGmT+*)E>r#P<`CTB~7B>-?}mCaz$j;-^sK;-Wrm^4PPSxIM49*0tL>>)oiwE==H5 zbm~we+rz%h=QR+|e%xs5%b$^w96HFv6-@YWVq&*`Z2X!toTzhXRZ96z6RgoA9=kAs zQ>AAOGlD1gWnBwFk22?zT>tbPW3?YL$ix*)eC9;I_kG#w)YF_;oWX7$y)f2V;e71E z1Ws*h7G^}}?al7DgjH2JH_5#G$zh!xG|0piOeD7mGZs(o&C0$%#fj~s_n18fhFPD& zAG`knH;J8Asg;Ry=@+&Ect=OA4K$Kro&2r|gXB7$?Wa0`Ynl|KC^h0Y_fBgwg>>b3c zRNwMe`_YeGn82yGdmTp45{%U^2tC%6YH7WgncpfpbdZTFn0S5AVWbOW{7nBiC%$Fs zX=U%7&U(g=D@@>29{$Wsy>or`z7eb{d1_y)sPi}TAV02f1ruT?tihvWoXGWXnANV* zezRc2V;3fHDo1yxQTVqiYgCaz#Y?47+X2tBMtW38=Eo0uW| zxWWWZjUMMTI{B1jlXe2}*O<}P!zcf`s`BFsS1=)V4Ucs{$_W>nV5PhLA;rOuD@@?j z*$GY~%E-_5JO^T<&sb~q?$WlQ{J6puOo-jucTuUF===9Lt6f44tvv6637jet=ropi zXJHYAp+||k!>xfw0<@m|xWW}oh#l|5qenP#sX~Nx;KCX$jvrT;z$tOf!tjAr*~<;K zR!%>xjpfG`u3(~FC2nCg_;s8|7AInJ1zH1&ztp;qeC)Z71FwZs;%d#4-mt2?(>q!V z>Sol-h79stm4ON-;!gAHk>&2&t7U~AqZ}=*fX>DACH%O;uZ2_M%GM9_fViE_$2wP` zf*#F}D_p^Z-p*mC-iug_nmoTPIrAGKdx{E6Y_H~ zg%k7poHw0sg7xOS2PSYzPME{0Rz`0zcN7cNSMuWuS1|E7ILvt9x5fVM@nKFZC^Fpq zE!}ASUw&L+0;lAZH>@ftR|Rv$yOH`8eq7-SCT7GAGxE>hXkV2LdTd=Z+jZ*fc>Op( zt}ua9axxo;uU}6277QD!&*8@vu3+K|pH?qXd4oNq`XNrVcyZO%{nO8S?%|JJn7}DH znGHmb4>h%@86)*v!Gla(!9@KcLydkpV)*%0GA9a8o~_k-GD0utc;?I2{Mui6Z>@{yEaiYtKJbFT<06mBwSD3)5K}AB0 zJ{6DJWBbCY@;Qs^u4aw(U-@x`E11}oKg1X?GS&Vh8}#Ver;fg<=TCZL{#lC&oN6|2 zh|%rWEA|1?fcSl(ubvQAPOr?*;cx{L2{VQmfBRmsZ>@QN6MuX8>t(Lz*K6`~I85MF zt)fGWs_mcHw{8JqOoh&Rvjyq&G=5y+3MTI6=Xb2%`OE$+AdwR_x((#tad=mo#g8jY z;MC)j!N$6M-|WqQ0V1Vbu-<#h0scLpgG^k(L=Ha7c{=Euea^W3oH)O6gnoSNTx|tE zt}ua9otFh0-XF5DJlUYfz``T+%;9adxBR%m6--o`A8dTOpN(}$+{cMJ$A8wlg+H|E z{O7;~PK}uyY~0;jh#m5WRc)>}R<~+YwRPa<47h@c8j<|x*j2E(sZyOL*g2VJIdzP4!_;H0Rm?(Q7*yxnCCfn3$4<~*b7ouls zaKc>9k1I^z)ae{UjH2CqSg&(HWG&Z6PxsdYvnzK4T)_lPP#$0C!`6@5&51)_JL`34 zX0^QdIUFW%>e1LC#`qmgnD<*CmJe&LYnKaJfAZrBS1?g+#1P~A`zEaS`dyqbmiy`x zFIBY)b2q>QPWgWuVmzJLmTjvHJt{A(sz>Dg$?C`509P;(#=rS}+4Z*U#nqjhU|Wmp zB|}>937*F;OyE=#K1~_Bxf6RG4y($tF}t2&Z##?e&vRVCMCU~z#F zTF|Jz)_8tgVFIV5Cjybs;iC4;JIJa5Zs0M&YcFvv1Id>rE1cG+X9SR}c za62bx=iI??N_b+U*FaFt2^CC8H%#CJ<(xp^l=MXCK|7~PNH>h<1nr#L8BR%0gjLbb znV=BT4YzTEcFqKbQ_>S*RkU-)D};1I=s`PYJi{sJi9pcKxlJLY8^&>hcFt`Kr=%wW zK|5!hLP$5<$_d&z;}}j!PlO({bE<@N!!4YkoimQ%l=MVc744i`6+*gUEGKB^+{$oD zc;b!_SQX`*P{D+BL+C*{ClEL#JrM}nIb#(a^vu9Q<@o0=^g3j=PRngA5Ng<>gMstF8 z&P~W5qdjw$PkO_uXy=Sk2X*P zlygD_6VeSgaDsA9AaF`};*y-ugK|!&U_!d#dQMQz2?S0_PlQ#`&bdJ$q#Lf|1nry~ z7*0t~gjLbbxn3cp8$u7-IoC6slAZ_z?VRfrLb~BvPSDP|j^UK_L?CGAT&ob$4cBmj zcFwg7r=%wWK|ALfg^+HzniI5hu3HYv~#XzI3+z12--PUDTH*xm7JiRa}~oW>4`wl&bd+{q#Lf_1nrzF8BR%01cG+X z6$&BUFp3kjbFN@GB|Q;((9Wq6(hZk$f_Bao45y?g!m4QJj8X{chRZlXJ7*NbDd~x@ zD%v@hD};1I=s`Q@a)wjV6M>+ebD2U&H(bgI+BugooRXdh1nrzl6+*b-hEYp6K|AMC zhEviLfuNmpi9$#>T+9jDIhQb;lAZ`XXy;T3>4u9qK|ALXhEu{5)52j@lygD_6T%Ja z7K0v?a{_@=(ky|XopX^wNatM03EDXqA%k4#aZc?b5R`L51;4Iz!v&n6oD&F~lFkVP z?VJk~LfYhfPSDP|06FJ;CY=*{(9Wq6(kAC|f_BaY$ROu2>71}C+BxSdgtW=IoS>a^ zJ~GI;Ogbm5igwO<3L$Lrq7U?-opYYYAR#546A0Ql=PHD-$>k&FaDsNuxgLXrlypuY zXy=@x5Yi@RbAooxImkI@GvS;+6@(s?b3z5buC&QnoS>W&2%M7639F)=bGAZAH=M}{ z+Bs(JLhzTkj^=k6SQ+q zM+P|+IVY@&cFt)EA#Ad0R_H-H=QNK&LP|JimU%!>&IuL#y3!4&aDsA9AaF`LClIuA zPEiQyhLbr#JLeQ+kdx7b5cHs(QzfKLPT~aZoKuiNPD0Pvf>qJZIawiuO+LLakrT9Y zPWBiiq@;7gs%Yn&q!7X;>lB>83EDX)c?=R#!a4mj!m23egbIFLVUt&T{LBf;If1|_ z;hewr9M1{LIiZ3HVUu0mAMlyd@sQ^GmhwH?U`$~mEe31O30H$`xQa!w#{N;v1jjl(%XIVV&wA#Ae1 zKMqb%&Itrg3Fj9}Dwq&9`S1H-oS>W& z2%HkmIXyG1igHeCsZ&YY%9} zDwq&%cyrr8PEgJX1WpO({NvsrPEgJX6-)@599(|@Cn)Cx0;hy?dbNdBQO*e!Ob9oe zv8g{NDCYzMr^Gz$xV1r?pqvvbm=HFZ?rlF#P|gViP6_86aX*j~lygD_6T&$^)$hv* z$~l3+DdC(utHG)$=Y$F-gmc!L+M5%Ua{_@=!a0vD?ZXMmIiZ3H;hasM_2dNQoIv1| zaLxk!`vGa^gbF5vbFLoQgAa!#mVLfB;5q|Th6oD&F~63+Q_co$Ak&IuJv z2m%xUKY0;hy?cE8q%6O?m81rx$K-FMzo&Itrg3Fq|c4XdJ@6DpVx&N<`1Cm~SI z2?S0F=j?wYfcK!B6DpVx&IwPfpqoD$bLAJ%Bk3CcO4f(hZA@U#uuIf1|_F+uBo z;>r6Z!B&@E`?XLXIa>=AOyH+`@b3~TG{7q4dtP%@?Bkin1p=q=Q%d+Z0~JeW#eZw3 zKdrgO#P>=_Kf8l`=QjU2^1gX$*8Sd8uk`l5DGlp3a0vq<1Gr9nX)&q@RI`YlMvLq;%`M6*7$70 z%tFZC%f5^)!oh*gwt06-?m2EByPN-xRj?KL5dL z_tx9O1WrBO8*Y3|=)}5Thrd3_Z@jJWa^rDFT=IBsn)qBU^D@5Q_{Jdet#HWF* zzXLwiN|)?ohTZC6neEa{T)_nX+~vpBnapO*<1MYy&%G^7;M90)sL{^9KdV%(7w-|1 zw9s`nU!c{BA6K}734H$G<+W2=0+KcU91ZPX{K80z0le=3#^++>u z1rzvu&dV!);sWjHF5SBJ-P^(hPW7G`Vtm=zg)J`&=WvxSAJNRxZLFV$rkS{c34C74 zpSe8pg4XZXT2^wpq827_s?WnA#-TR;EXxWwd%g0+OAqSW$SNF^X5tDa@cA`=PEn5Z z`qn!?S_40LTbRJ9i9LrH{c1F0Pb$M%ctp=1^?}byTdaMWi7S}Ep1_~OQnjc))|uJ* z@rAdA37k6cEZF#CqAweI8_wH<>ettQ>5|EE^5Y6uFoAuCKk4>Z4Lw`zRdef8ZwnJR z)pljD(Q8{xHX;hF=t}=q`l8yW%?xeROkBYP_BJoChqE>P{MlvZvRB>~CU7bj|8A#G zwaPM|R^V!-cXZPWoF8uVoe$a%e|uY)z^TsPhZqG$n)dJMVQ*6L{Z`KZW+i@7mn3s=9CH zq827_DnqAG<4fgO`(NI$J6PiBHLdf-W_mFHti=^f;QdQ}luX;Cofzq>H~Gx}wxid= zsRwz78W(G?w@=>y`-v6TEzxq!>#X1I$bSx0!35ri_3|opqNNt=+e|n4?*kJ!_5IFJ zV}{QfdxjRUTWb|9p!pu|qfg+!b6mj$-cRO4@2R%bzgp|F`Ei8_ocgkDn2|1St-XJG z*h4OI=IZ}x$!0LSmGH5={gsITjvX5tDa zTq)+x-UD4OaZ~!2DRw(ASSjGjRnI(i7l{ z$*p?N%(-zD^_TqbE+%lQ=0JzBvhZ2^gB`G{boI;!URrbjp6scjw#7{ z{sKJ?ZV$AobvfWyWO$m1E0_?j?!NAPpkf=Vj;XmWee&~O5bhZB6Im2}F zb01v6gmA+KkDv$TobXyWB|I@t10X2pgbF5v8;&^wlLM4<0)bP)6E741f^tr%U_!WI z{q-;bK{+Q7I3+x>`g7<(IVV&wA>7bCUqU%25I7|~ao`?U73G{z!Gv%__nZvnoIv1| z@Wex*FkeDBCsZ&Y+_3C>n5?0k69}9Vo>;pf5R`L51rx#zSEs^+5apae;FR#h0{MWT zoD(XT5N9}Dwq&% zcr0KcCn)Cx0;hy0o?8s7qMQ>dm=JF0p6jEW69}9Vo;bBNtcr3@s9-|4;ft#<2}n67 z5I7|~@m&ERDCdLa>&-lyd@sQ^FH}jD>ko$~mEe3E_s*Yb@gg<(xp^l<>r5PFNM?oKV4p zaKkU3pa=N{#oD(XT5N=qt`x;JA&Itrg2~SMF8CFF(CsZ&Y+%Tj% z++9OCClEL#Jh9efSQX`*P{D+7!&TYVae{JAAaF`};@sY_D#|&bf(hY5oD!b6^>64wIVV&wA>D8TCn)Cx0;i-W!m4QJT(1z) z4L5RvcFy%^qH!aWo(QX=opXai2sf;jHJTH&b8hfVWEAlR`*0jO7IFoSQsX!(SJS^*oLJQcqYF?VOtx zLb@UJpq+CwGRRoZv(q@;7gs%Yno zQwZsX(1Ui)IAoC9m~>7cXy@Ff5Yi3fIYB$;He`_TOgbkJv~$KQgml9MPSDO7j|?(_ zN#}$fv~#M2bi?hOpq(=w8RT{*ofB3?J771}C+Bx?tgml9L zoS>a^KQhPzOgbm5igwOKg^+HT#0lCt6OlnCG3lJJD%v>@D1>lB_w(Us=RDvsNJvTN zgjLbbnWPZX4G(gHcFrVZkO!G`PUt~9r%FgSOy&gboJq(albLYNbemySlygD_zpiw{ zLqHJMIf1|_>71}C+BuUILb~B$PSDPoj12NH6V5rWH>`?sPN?A5m2L<$$K^{TQ2?Xt&M-)OjXDTOX=RAU(GZi@}^q`$nC8Tp6j zA)WIaCyuS&Zr(3ZPR}=~mW3znO$aiVtR8D_Hqic&i$dV-=d|@%~Q>TJafoJUY}No-G7A|{ig-7>)+wHdiG^d z%Bxm|thzt>D+Er-oeB62K6$#t_1DKI=Bb83o_Xp5`A#!Tq@?g~>mE9gT`mnh-nD$@ z`f+4_>sdX2g}^Df!ve&Ss6uAF?)S`J8V7mi!fQ7?#V|2>$uPq^{Xq7*Is6|iR<)C9 zTa?4<*4$qqa7ykJ0nzSN53^a-U(5mnf;{u>heA&>OziC&W;E*GpN$y@e@mw1UvA#f z(_68F{1pPH^Y1!O z%!U#E3V~B{=MIQG*%Qn^b3~gfMh1EAH>m#nIK#w+OX0?v`d!)cPw@G1Y0*P7`R!4& zVq1TOz$x|9VB_r*=D(XJnrqtd_v(N5U|cA0oMA$I-`(7D(Bs3|bk?mME6kD&_f?-eKb4XNS?MMH6_JIKQ=XoyPX|)mYQDaPIRcb0MqYlcgzL0{s;Nr{oSj5Y5j% zHFs^OV7tYSD_p@u{1yJ)!lz3z@B46`cw=h;>sXKVw((>A6#}Q^l?Lds{>lS$&Ve_! z3KN3RtlANV3GIf{==eAvYxN`ac<~{ZRq0IwEu@3LLg19VVgf|LU02Oj-mSEp9fHuz zoy9QGB#Ffh5ICh;QQNaK%^WR{XuG-up;^uphKV_|`L{k^K4IVJ0$02L ze6#uB(I;(AFMpLlDfxK?#F8@sX2uV{YOAINd1g|#{(YF?*X@-SZXDgV-#+jgcd4`6~oY$xlw`ktr;Tsqeb46`vV|J_ipoOvukc=+QMt9`oI?yn3N-{tAIp zs%_`3;P3kM=BZYwTaaf)7~B~XWu}A~KP*{mZ#4||0J5I+cGdh^P@m!FuMjw;?iwuk zkk0l)qvu*(Taahgxz^-lhKZbeh8Zu%McH33g1wBk->2E;4lAff^WzG?7EYpA4 zxPpmx7lMu4=O5VZH(?Js?p~#}g8c6;CU8pKb&e_VRMR47+Ge&6^4u!}d&rnr zGd$RcfAYzGKOOXV-n^hbFm9@?YJk5&;FP+1UgYgF?N;S2hsO>N^4#hT-?PB|apuMjw;UIl1b@h`2z*%((R{x=a zMYF%%WM1IsSNOGXO1-+YJNG`V)udHsB6kB^!Nl)ou(AG&AA9!&uB&;Cx~okbcHT7W z^Y`k1cjVQ7xs&0PdX?Q!XgIpY;Vx*=RYr=2q%8RRy!GXblj zol_;G8$u7-IpdK*{{O4`v~zA#2a^6T>NKmO#+X8KV%=4Wl_hJ7)|s$Y^w>0eaBRsS?r+p$F}pF~}hQ z|CAo>oY4v)-EbrCK|5zOGRTeS$`254qCPK|AM0WRM%s6)YfV=iHzW(hXsj zlXlJx$RO9FD{(;3&beM8q#MFaD(#${@Hpo>v_}dA?VRfrLb@T$@6yh>4jJTHv|9^3 zXy;T3>4wmQcFuLkAlG`X@VcjpDd&U=eqHH?Yj_XJIf1|_>4`wl&bdY*gd4tEw3-vN zbFT3iB&39Mx~IG;=Y$G=UFn9acn``sfxs#0oIuddxk@2~8&1Brk`uIZuJRZpq@*W8 z5863ZLb&1H;?RS3&Q%_Rgp~9|AZX`YsSwf)S8#%M&Xvd@SD=X$AZX`Yp%Bsyqc}l3 z=L%$yQE0LT2--QL6hgWo++#vJXB5LJ>4`wl&dHzI?{V4X$PM9M8QMA3lyFY>-8GbR zLPa{~GUSHPgK|zFq(Lr26I(#g&Z!d84dLD;+BugooRVe<1nrzl6+*h<5>C+0xfB`X z63+yk`>rj@IiZ4ISGpnGOGY^-5I7}05eV8j7b}ExL%1i7cFx5Nr=%wWK|ALng^)H0 z_Ycy}xd=JuLMELPdeF|P64DK!2ko4TkU=i=OqjawYNVVKD)@D!8!q5IDCYzMr=(c| zK|ALHg^+GIpA)omEzvSoc21R$&Ivte=bVQOaxS{64+QO;a}`25=NwMZ&N&wu73AmcFtMIAZL2+7;!(PfO1Z#;MbLIID_|~oD&F~64yE52?<_av~$i- z2x*hkIYB$;3}leg(KHnhv~x~Z2w{`W)=uLD?VQs+1_>$YoIuddIZYv?b57+1?VQt) zb52Fh2|Z}%R0-*v(1Ui)X~-a_qA5KfXy=@&5YjoPaDsNusmLIwAm;>vcFrjZA)RwF zCurxKf(&vpa!w#<=bWq%(m5w_f_Bcy$RH;n=LCXw&PfU(Y|=h%A}46)&IuJv2si99;b-21a!w#{N?hl3KRt3*6O<(yE#gs{oU zgGciolyd@sQ^GmjPvxSV6DpVx&Y8g)$$L=F2?S0F=X5_^jB-w>U_v>{1h6_dr-~^1WpO(bU%HMa!#mVLb&0i-NSef$~l3+DdC*%rwCHc2^CBT zn>>c zPWRJ7Dd&U=CWLc7`8SC7pqvv3oD$CIe(EXZoKV4paKnKu`|}=@a{_@=;yS1M>8+G= zLIo4TCZ`?f$9quD2?S0F=X5`XmU2$0U_v-&KBF)1K{+Q7I3=!gx}T;?IVV&wA)K?$ z?%uoy<(xp^l(^36ekw5KoKV4paLygyd-5KXa{_@=!a3bfH>R8uDwq(?8Ef?5Jt*e{ z0;j}mt@|m>lygD_6T&&~E$qg7P|gViPKnuC_tT~+=Y$F-gmb2S=)!wY&ItrgiR+y1 zr)E>m2^CBT=WI5mGw(q;ClEL#W^3I~|E8Q1Dwq(?dHsDy-h*;ZAaF{|!@8ehPB|x3 zFd^KqaLW$72j!eV;FOrHEg1$x#(6i*dr$n#5+&qpEmSbE{Jg`+U#|sAtrNhB%bV|+ zz2?<7iyRE}OydH9QvJbj4@}@xujHY|S)U>7{nzfiM-d~7S?0R88E_@i!WB&5zmNR;?oMVghaOye zcxB3Xg}|wsw?d6KK7-lUWcW1rd(aKnfonC)6Xzo>T)_nXJMZP?49Q?7-@2QU^Xzzq zz^TlcLXCQl`m-q^@ToTV$`aSky*4w;<46lvFo8d>yu7+Mf9;BH zssqk4hW)m$kswyWX?q%G zm=kYATDXDXqJy^9a~hcI&P7_d zf(d+H%Kt|h^&!l9ff*1}pMeQ%M_=aKW{@_BabyFoAuCUop|v`n9O_kL!;D z6BGicTKNPU_1k>3=P^Thk9~hN)Y96mab3$c&cYQ;U~l8+KCxA7_q;y2=H4Bz5I8lE zf0IBNuY2}iLcmfhA8)F)bF^|zzZ+@c3MR0Ba*rB0#paBD>FUbwz`_JhweucgB-}V< zZ&d+oJMXSGTIoCsQhM{_3Rf_JJ(@etr8wKd_E%h9N5?A!PQ@e*FyY|~YTe}A1 zEL_0^-k;(7?e>SZ9FsLyw^9=n0;g7d4mJK=x5(acEbK;=K2=(a@Ab^~vcNbCS1^J1 znfRW}sqeOkWlvHx{$61Mr)J(9YCP&Y-~MZ9*j0=6&Zjl{JEzv?L8OH%n85pGUS11x zX3>VOyGS#?woTnYuc-+ zer@=%iwT^{y*$k5&|$g#&tx%kF(@z12zE^wkS&&8tmN2qksEVN_gw#J>0^ z*gZG?n3PhWNi%JE$#Iq!s$c@|i}U}r%?{XJ9#6I<@W1Vtz$vHhG)i>2ZjT=dd-`v` z)^UZ`YNn-o8foDQCe-T&(RWtbh7|bSmcT!w6vA^C)g*Q!-f46w_{yHKC0v_`o4wN2 zdxfSgybx*O3VvPn`p1be{cXoieXxz^pS764sYP#`#=^fcvbq)E8cU-GH(VKPHMG=U zBQ0FPgnAuEfA)iIjnhl}nV&OY0;hf~5MlhdB_E6U1U-hY{=v*$v7narF4DpkOsLnR z#`JIOSM1SeTPi>I!30kA%oAbku2PCI7hI3Z*QKOcV&GHTB>p*wE0|EPtL4g(Go|e_ z{y(?k1ckt<(NCR5aQo^kY%E+?t5C7FS$fkxTaU8iEL_2adVTQFqkmH3#(c7!;pd{5 zz^OCqoJQ7WJ}j{XT!XCrOgGCvoNNnz9ckeTCe-VkUC(xNo!a}}R*s)jV*;nnS9cm` zMmA#~%EGnO-%GYKul$tV_We?%g)5lAS7P~h{a%W4J<0mO7RB8F6F4Qza$h>QirleQ zTXWm|{>hgwMtYnRDwq&%IJX=Slyd@sQ^G6@+ysJhPN-l)xZ(3pKv2#J1WpOFY`q?? zpHt2W6-)>>ESm}h<(xp^l<>spZZK;=IVV&wA>456I3OtJ1OlgoCl)CWGZU0^LIo4T z4PQ40f^tqEa7vivr*A+|&IuJv2sgZ38m2`k=L7<$gjs&S3k2nyP{D+7L-(8v<(xp^ zlrT$sBFxE9&IuJv2sbQp69~#VfxszYmU}0_OcCXrP{D+7!`ab5P|gViP6@LNX$Z4X zlygD_6T%G}_XL7+P9ShfnB|>xFcn5QCsZ&Y+;DF>ASmYq0;hyo7QYPy<(yE#gmA-m zUx1*T69}9Vo>=N2%)?R62^CBTH~e@T2+BEuz$syt8JEE9AmyA;!Gv(byZeEloD&F~ z5@s3MX9*`L=Y$F-gd2943>wBH1Ra!w#{N|8om ze^212oD&F~5@tCl3}&4v=Y$F-gd1v$fuNid2%HjTxzh$S+mv%c1rx#zXY>Pta!w#{ zN|@#Ce}SN!6DpVxZs?wGr<@ZAoD!ZGpR$topqvvbm=JF0p3|qC69}9Vp7>-D%;{6k z2^CBTH$1Wr2+BEuz$xL0MZ(}N2+BF3f(hYV;U_!bf5R`NNM|hlbJ#tRC2a9%2 z^^Pj(hCtBHsou3EJ#ix^Xy;V#43lmM1nr#a-DlDhfuNmJC8Qg|eRs5TZbTD}(M*~p z5VUiu_uWZ11cG+XXf(?i&7>#BaDsMD_5MNOhE3N3K|7~eQ@wLix*-s> zbEAL(3EDZ;J3yry0zo^cdY7qm&R9;+&Z*wXD%}tW+Bwy`Wu6~$#pq*2_ z(_6YB5VUiucaux!1cG)>m5^?@jT5wU#vy~;#-wusK|7~)(N(opYPVAR#53 zlO@J;f^tr%;MbLI2n6MvK;V>g&IC@-&Z#~LLAoIjv~#LYTaeDVofEWkZb#0UfZPxW z+Bvr?DdC*A)9v5{<(yEF&bb}AArO>v0wE1@2b0bT1nrzEA>9xN+BtV1gWSQSbME8> z?VRd!KcpK1K|AM8WRN?Vbk1Fzpq+DAonoooIuddsS?r+_i}=E&OOK=_cGy}!HGan&IuL# zy3!4Spqvv3oRZGDj}x?W?o$ZqhCtBHxepoSJ|>-WKPPDC+^-PQ4S}GYQ+*1Qbk0Oh z(9W5NoO3^NLm+79RG(%gob%4VKv2#J73rLb9yfG9$BS}KAcR3eN;>BO-h*~d^*LU` z4c*Tpqn-1B#~>jkob&0TB;JE^PN?A5m2Lcaph5^YbUz=Cc24za zZ_+uFc@Nq-lReG}uPfaU2--Q-r`Ad5Jj4mwIS(nXE8P$X+Bwyy?@8wbf_6@okZuSB z?VN{@LGqNxIS+G!c24!VgVGIwpq*2F8lrU06i(32$)C~4N1DZR8KrXqK|81VR7ZJj z(!~kdIbG=fs1$TR77(;^s!yks&S`Rjc1}}yUFn=a(9WqoWm7sQ5VUiugmg}e6SQ-h z$T=I6*t7`kYkhoIudddBk&9BRmyWIOl;Dshpsk z6Ds(1rE>y7IVTV}C7tsqCurw9su0pSfuNmJeVVRx&SRXQol|{cuXIizXy;U)3M`y6 z|4kq$=Y$G=UFn=aP|gViPD$rH&I#H%)#o8g=LCXwPW36x(m79Xf_Bam=sM?d&-F<6 z^Qmd)RG&62o%1B`K|AM3<#nZV0zo^c`qXUcoIuddsS?sTPjP~F&XdSFPa)?7f_6^z zdEwFxfuNo96f($D$T?4Qf_6^zx#z+r;mPb?ULy(>)%-5xaIOCPXA94<%g?@>Onlb5 zr`4yg3D@2pFKT-IKGHKG1QkqduIw-lh9%fvwYbH5EO;KJWf&1UlI4oSjg!q5%o}u5crj*w9_9Ja|-9UxFsWblJM!L=e*yBW)R(IJ3+V&2J z*Lr+*Sh#`-@&DXCLw_XacH5!~ue6}ffeL|Bj!9w0^v*-r;ws&EkG5+Pd{Rel*KFCG z7Or4I{6BZk(D!JW+xM35Tg|UYphDnO{*A+ojP-`H3CFtg9#sd8bZs6HudRFHuy6$v z;{UmOhCX$1yleQsue7VB0~G?NIvp5l6pI_mnvCwrdlbw5!S(n+jJEoO!@?Czi2vvA z8G373CA0LKhuXNjfeL|BffquJ(@R2F+q%7Zk0~wdnB!uWYi$oZEL_2a*jsYX&}Tk1 z+zfAWMLSdLk=EDusv^M7)7Or4I>@B%x=(`nPZMIsS zqCKe|s1P{yrF@9dYe-+VXH-Al<4XJ#^IAfG?e{kh3s*29_Lkf;^ckIr=JO-bT8Mw3 zLg3Wkkwc8<-@CA~&jNXmMWdFOBa776#`5C|S1=*=mfSP+1M6NiYhRwE1+@-T2%H*w zE7+K@whhZTK8W|I^Jt^ld-gZmwAT&`S1=*=mfSP+4JJM?ukWp^4XqHU5IFUvTd>jC zX=k&l59B?{#>JakpG>n|J;UECRKbMUTXN6PmoEIue19?3b|D{suMmM#ML!QV%y)Iz zqNjs+j}?`6n%B~8^{v5=D_p^Z*jsYX(1+c4Yx=(I>9;9=phDnO+2ezazpQes%er9R zBg>NnbK$^_u6rjP7Or4I>@B%x=mUnNnS=XGb#1K_s1P{ydjDW!>*zwPN&OJsW7xON zruX+>UB5qbSh#`-vA5)&q4&S`#Eh?z!+g{-P$6)t{JFtK$Jig(>-bRKV@tQyX2bK| zW~uB>3s*29_Lkf;^uwRsGN)GVYToG(s1P`{Cv&i|<;{D0-v+~YkFtB`m>HV3GoOES zSh#`-vA5)&p&v2)m>J!Fu{ot`phDo(iQr%(aQPj3$%kRQNAS~7vw4+?X39l}g)5j4 zdrR&a`bHR0y0Z@haFzh&X0nwZXxAe75_OYRx^ z(%Yw-D+`=Av-4vY6F60B*%0Gk>`r^JE)l#(uD6-ZS_3wkrH?r*T)~9cTXN6Pmzvnb zJeujA`CHjQg}|v5{vk$*&+F_7?}qapGb_is3I@cP1O9YaxPl3>x8$Cok8JwUb+y`a z^D6(0!URs)ii8^JuPwG`95#~o$Q1K2Woc4^Su=;z!WB%2y(RYyJwFaz*Ds}+(LDkc z0;lG`4mIXHoNbSJGm7{4tKL(;$Sm8<^XZ%xu3$p!ExBjt(-*5~bFF)0=B^#65IA-5 z`cPxu)EV|tYsT;%pO+=udUV)ow!G@Fa0L@$Z^=DFe|h+K+pd1k%}Rv>6#}OsQ->Kj z%gwS+>>SB^jE*U+O*ppJtm1N5xPl3>x8$CoFFL?qOSy5^%*;P)F@aM>wuBi&&n>Xm z&Gj?yQ9r4b_G;REv)~bjg)5j4drR&a`Wwk}G#}?_b5Y4ag}^CsX8CTz<)+@@=d3_46*Xk)5AkAp)nO8#s(bWw+TwYE9%lrhlHT zZAxfoM(1=|xPl3Bw(Opv-yWW-{hPAHjPD<)5IB|PcZZSXufujn*Garbp#!V5{T+&% zMfu-ET)~9cTXN6PXKH#&D?PubnWI6VLf}-BVNPT1{LA)$%9DAIa|^dV zN(D{ei@hcH41MM^Pqk?qvzgV41}X$j)%ne7ROt4?zCF_v-s3{G9onHaxm=AchlMMc zkb6t8s!T)QXhnm1xmM;0R0y1UQ!&CYyfd=f51>clo*mlnO^*2;<;O0rU_$OK0dalA zTkXfj*ZfWu3seZ4de$n!U_}fQOgt&qq%w5%^?Yx$2lEL_2a+*<;odTf+-{h6g%{J6pdP6@N@Y0l)tuz=E9%O0z> z$|=%0p@IqFhVB`9$~l3+DPfj}m(AimDCdL(-d%GpP2j!el!Gv%__Y6JdoIv1|Fv~K;lygD_6T%JMGxU^m0)bP)EO)Pg*>lP{p@IqFhVB`9$~l3+ zDPfkmBbM_XlygD_6T%JMGxU^m0)bP)6VLlc@g9_OLIo4T4c#;Jlyd@sQ^G8BR)tA& z$~mEe3E_tB8G6b&fxs!@iJd<|56U^Af(hY>bkERJ&Itrg3A0?(b~W!oIVV&wA>7bCLr*y;5I7|~ z(W>&_>^b3_P{D+7L-!0l<(xp^lrYPpSzs=la!#mVLb#!OhMsaxAaF`};-{O?gK|!& zU_!W|dxoBJP9ShfnB`9^*YO^db3z3Z!VTRs^ptY~fm6~f*Yh54vZ>+Br9SrXCVoY+}+Ap$F}p zDk0qv2--O}BZJ)Rxz5?sgxPc2Ib#(bH*ZrjAha}w{U`X&MgWd-4J@v&bb8{ zWGs`;xs?;Nb8b}#>4vZ>+Bvr(gWSTTbH;IkcFs73kZuU8qMb7i8RS+bofCS{&Z!d8 z4S}GYGY%PK9Fxuov*)yPZc_;9hR}m{&TYsb-!`v*)yP?ow1 z+`*)C!t6QioVyf4x*@EJcFtYMAa^q9oG^P%JLhhNkZuU8qMdU$GRR#_Iwwq$)6Tg^ zA*36^s%YojgA8&v6V5s28uXx?6Ds(1r5gf4IVTV}C7lyy&uQn}s}Rx+p$F}pdyzrz zVZu4{MC{`P<(yE#uPfZpJws19ClEL#ofBryY3JOp5Yi1{RkU;NM+Ui%N#}$~a@si) z6+*fptcrHdL}ZZrnQ+c7pP&cjoKV59E8P$X$~l3+De0UCI6*t-0fi85=$@gco%4Xl zAR#53v%^@JJ*S)#D)@D!8^Wq6=L7<$q;nqR1nry$6+*b7dxoBN&VwF4vZ>+BuVvK^|n%IbklGcFsczA>9yGMLXvqWRS^BIw$m?ol_;G8v;Q)=OJW} zhnRFum_4VR^RPlln}i;;a~?(pd5B5pgxPc2Ia3rux*@EJc253U9)moLoD*ixY3Jk> zL`XM;RngArLI#<_q;tX~IqjULLP(p0Rng9ABIk55>73Amc21R$HVFjnoF+0zlS${a zI6*t7r4Z64p$F}p7BWbl@;K)aPSDPIL?NVe!m4QJJc10;Le81W3EDYR6+${EtcrHd zRAi7xkaHg81nrzh6+$?tdxoBN&Z8dZgp_d3b@!nM<(yE#uPdDs2+BEuz$tm1^B5;+ z=RBqm(m8>ko%0wn$YaPkk8^@{&f^LpoYOr+Pdn#vk3m98I_C-AgLcjn3L%{nRz*AK z31pDRk#nBp1nrzB6+${EtcrHdlgK$wAm@Z0v~#M2bWR{>=RAoF@+5Ljm_4VR^OQnJ z=Y$@#bDly5c@jD2X-?42d0HW)bHb`<=RA!J@)UB;Gn}BE^Nd1B=Y&-aoM>sI?wvR5 z)a+v633d6|cME;i-sHrr^Y^qH+rFFkCh49DA(&&w#Gob)BP{z?`zin1oOrk4p%&~Y zYAvf$Ss`%h!t8LP!=xyCg|u6oxI3%3&T=Jbfr<63P4Aq>&N>ZPVv0ZO{HxQ*IMSEJ zq;JnsUpS4oi~Lw#-wvGcnO0bDbmNeA_Dcf`S1=*=$PQ&|&xteR%j>nX|E^u$Q%WIl zs@X{XJj=x`*^;!5oLIU#o1W9_o;KUNp@l1$5Pz?HQv)~=m6TggERap#l~76{aH{Mb zhcUQxXO?qEXZSfHpJ_cWWzugIXlUUICdA(>_q_lmi@(rbEh(jM=RGiiQwz&G46mbo z*oE$0d5?v;4rxu+7uKs5ZD`>NCd3|@`(A*EbNjRfw`=Rs{Jp{iPMzr;Zj>!Ii1|J4 z#(QL5IYV=-DyI*x)X>5eg;4GVNWU{&bEVhx|D)@?!>g#ew;d4?cmb7O1OkL6QWXr6 zGjoOkL^=qDrgTy%0jVLO_uiD=AtVrbCuar-E%YKyu!0l?se<x0mD2e)jKL-+x@! zdhWAkhdJfmGwYng`+_w>zN*p0z}Shs?c8>Zb*p`Q(c^J}62_9&mCbM73w5!Agxn+Z zW&t|ozT(T%wZ0kY25SVSF0Sllzw%yh>*8a&>%Lp-yuMv?s++0rgt}NkLhg}yvj8<7 zK1#b>>Lat;)?kgm)YNUU_L1b?*21LE=x=p-Q{e9KYG%D+p)OXCkb7j_EWnMZ3QpmZ zbgEazE`47j~2gb)*E4y_PJsK`<>0Hk8j(Jy{S6D$p?vZ)30LJFI&dVL4rcaz# zNMP#q>(Ta!TM<@;{9Qzk;7j6e_4OspMTJ9MtRNxx$h=vA*eqwALYpd@bvFfT1g4Vm zN83A!cCoT2brn74G&<*uihaYJR5sMb3KDXU%$o)1HYbalC$XSeArPz)n7ZC6$~F?) zT0@F<7d@FN}bvHFS+Sj5` zsEZXO8|^p9fI6W9iBQ5#Ce4kB;+2MHw$p{<5%5oj|;dz zi}MNzOtl#vWuKa}&L21K3(+I$%sJ;-vp3v^1w&n|AR+h2yjg&q-Oo6CeyZsHE}kDq zV9IAk+oi@X@V`=)?ucJLX_<3$M+vu8aHxwFB;+2MHw%#1B4Rx`Cgxn+ZW&s8@tLF6hsII&DaIi*Ts^Bj%cKnmE z{^zBK(BG=lp}@)9)!e)_LtU&OA@|6g0u3`$gg?|G?uz zMUV3J&V&u$TitzHD%8aa5^|5sn*|6ual}_*SADm%c%CDHsqBY)*~2T2@qaybnCQ{{ zN&zG6c4haP_&>)A5^|5sn+5ngB*xg)$8hQO3JFZTwW+t={rM#SBqLGuxHWOCG4>;0?@ei{`31VncQM1&-jZSh%sEZXO)O{IrRJFR+G%FNa z?eq|zOOU|S#y{iieSu&67mJS;#Lw%?oA*+BId6*3K3G9Q?vZ)301tono5M$bFn$Pn=g+K|<}3(aPUk*1)`wb#$P<_?(D@mWt_T z_idEds&{&fAS(S(-AwOV=)*t7XVD<2Affii=%~#34a^6_NBe@s=UpT)^|EI_d%%uh ztH7+Wf+(C=)f}AbXW!&Xp)OXCP?0M0pyz?3vgUv9c1o^wvBAR*n*n+4#U zlL$;nv)pizdT`E36(pn^db0qWa}t3mX_gN*%oII1=cEb}(ha>?0M0pyz?3x0CsXLI zd(Jtjf`oKKZx(=aP9iWR&GKSTx+9)*PO2aw-O!r_;GB~POi52{`X1d8&p9VmkdSWZ z%>r=FNd%^(S+2ZCJvis23KG%{y;%UxIf=lOG|Q`7=ZYSjb5aEf>4x4c0Oy=UU`m>0 zok?`pJ?ETMK|;ErHw(ZyClQ#Ep7=)u-4V|@CsmM;Zs^SdaL!2trlcp? z0M0pyz?3q}C87uKoJ%x9x}i4xE{6GQf9eS^x&OysYWO_q@&`Ub1B@tvBXlI zxJ(edb1u^e<%V=rymN|ge9xRxUusEDyi|O-AUNlw3KG%{y;%UxIf=lO@8#G&bb`!-Vmw(%(DLJ6@uWLlPdVQ$_?qLIOik+Q_>Uj&sr%6&N-=qgtAFGD$Y6o zeXLA_TwzI1w3@9F1m~RpR)A1$NJqsvClQ#ES2HIRUo8mUIah0hazi>Q-Z@u;L9Vit zb5al9Idww0A@$&$b2S*`DoZ-&_={@Y@NtzJ(ou2FNd%^pb0!Ibcg`e@P;N*^ z#XDyb7~~pDIVatF&O7H?oyc@fIx5~d*MdPNfpgNm=e%Q&Pn&4^Uj&75y}nesCefT-zxv# zH>0(yv))q9N%x-f&bdJ&lp9hH-Z?jbL9Vxyb5al9Idww0A+4Nu&JAFYsg`uk`y1%~ zcFsAef{&}*kdBITP9iX+oRjWv=bdwtMkqI=qvD-&6By)1OF1Xqd(J!OW{ps8NJqsx z=Vma-O_p*_x+9)<&Mg|D+>nlncg`(fkee;#oYaGNPMwf$=*wYwxh>NmDW#l~?r-OvbGt?;H>9KD zopU=F5h2LIjMq=E8WnW1>l^M2uvyG zq#nF;>V$GbS~>5WJHa4#Sjsu+{&wCucWH!lLvI#DoD>_hjrbIwT>d|c(6 zbX1&k5`ih@oZ_zX|BrJz8ll{fj*53q@s019&KUsbbOpgXr>halCh4en=XAk29ZNYU z_28XTCzKmf58gRlFi4Tgbk2Q(;GJ`yMkqI=qvD-&9~h)-Dd*fT2;MpOYlL!6Ix5~d z#bad}72hlryiVh zQUxDZIVbhtoRbJlDd#*Y2;Mo5YJ_r5Ix5~dkAguS0q4vR1n-;~8ll{fj*55A3^2%} z;GD+8O%^&ujV?v~&{&7ET*krLTQr^fG_e-Pf#MkNVg{TQ2lZT6oR+ z;?ur%rvj_|Gh(g@VpXr4=E$IM_x0g*16V;~!mK`ay*_jNZPs5EM2~83nXfHt?*4c+ zuY&}puD0rHC$3-R-~JsDk4wI0o``Acmick6_`YIQK|*~3xFU%9rT%B0n*V{jz0LO; zfhqNV{*55Ebj)J@+OM1&+U`xb3+Ws9WO2p9*#q&bJw47k4|+zKbE}r{`Fe^%~m*2A}X2fttB)ZY4uxwz{?2P;T)tlY=` zsmpqQY*iwPTyN`)e!sqX>RAyN2}~vT>urBNe1(6?XO{&Lp6gBLN%~u6!M4p^tRSI& zONfZK$~6!C`RI;Oux&Suz?Axhqf3HVeWaalWRbc?!rwz(tRNw$GreD3px;C~F|Uv> z@>+sMU`ox5Qjc%NH{D+N@0)J1f`s~`*ZV?PaZm0 zK?0uzK|vLseibOTzOlLGZV?v=Oua}J6C-OE`KyhjGcm{EB7v%Z7cj?#HFvRs1U?JI zj@Q#yeA#RNYP{#`rV*G@ze{#e^uS*k!wM33PK!O6N!bkF{n24f+yoa1OsPq4>JbXx zPmL8M@SN6X!;!$0a!&eNp+RB=349jlmWl+XlnK+bw%F&>jY&plcb|AhVFd|1r-Onv zz1rPqF(uBu`*yrWU~0qBUUsc3BmG5Q(s?zvN3?Oc;t==vglS<|L84>J-gb-GWBrRR z(EG=C3u+iU1`cuC9DUP30#j}C_qIz{8RPH1n~01vvjg)J6U=TapZFTq>t%oT*;2o+ z^HmGa{13j3wHxGJ=C3e{jw)%!#K4hb3Fe^zHv?Ef0?%pj*L`uMPJ!M-%t_Hb9V9UI z;##a-qT*72bY=SM7P_=&@7$wZ%vy~fI#|&N?fKz;HrluUR%3JGogyw0_+0ttYOFo( z!-f7=R?(T*^q(=l$-N4g%WE`uv4RAi)8ZFB@BQe@^7{=V^}}u&fhqYrf%~^!5Iq)s z^TcQV7Gk`5VyKH1B=DRTuUENWH~N2bW$&8@5;Ou+>iZd}2Y#zOR*=ARIw%Og(E$le zshuMFTj9PBR*=AFK~T^ua1T8am{R*!^sIgT@;|gg6!g#1p1zp$ zLGFU!c#Xi+2VxfBVuca@UxVq~EwpsGZ%3BlZqrA_eON)_>XBY{sd=OPdB3FRM@WsF zz8t0F-GWg4pxwm*S1G4Y9WYu|3sRr9;O(H z<>EC0Q#=2Tv+w2cS$#LR5k%j2J~eX>OE=QXWjI(tLSEbUW_Tan{M5YH@DC$<>3EI6 z)Uq*gc4$~5>rq6w=nT`FE9Fm-ZTZ#!q#SgXO=&qR-m`V)+z z;a$w4;{O~gNXYxCy&2x07t}W{)aq~6Dlc9c;IS~3ZA~vbxMLsd{pe1j$G0u-_mosEGQbF4V8kigWQtI>9~zaqu&|8^HWmY3M>WNY5eoFvXGtRNw;ZF@7k zYZu>kIv5?yGvd5L0#mbdM%yU`yIPUOdx{=&@BHb^sQHokia4*Zf`q)b?alDMd!(TI zRjK-B6Y;k~0#l!V5@k>5*v`5;?wH^KL}IIobvRH0E3_A5~Ztv|2z5k1C5 z#<+hpE1Nc7JU_64guJ%x&G4SRG0-g?ax8F9tOE&5m7X7Azj!OVwYp`T=yCo+gqygz zjAM!CIaZL6*S5VG-ikf@xPN>*%2`n%UL!Dd=VF9C=Fnq*{_pyU9-9w-=FWY(*tu6R z!@&v?^4hjH!+YUuXSbT~oMVQ>YXqiJ#H4rrn9KePlfDo=-o4etP5=6qb6uQQSV2Nw z+xBL7qdsZuS}pRpcg1;y1g3HwjkND}cKyv73=}=a1ZuiXRu^!mit`F9NXTp3-VASz z?N!~)4XU~^!lRJDl+i!R9(5wwf9Ay?(PMIpBJPN_HQYtwyuu0+^4hjH!@If38?LpY zk^7<8{Xha!X*Hwmmm}x-J1-m}dd#Zw$XRpaW7ihv6;_at*S5VGUSsejXWN`kZVS-^ z2~6F7Eyk{PYqEb=zIf5&e8E&_#QpYe8S%LUD@e#|+ujWC;r^4I5>`~3uax0n1qpd=+neFtu;zN;v&jS9An`d72~5dP&KIpj z(PLrGJb~ZM824mIhJzI(qycy{yf6Rzq(5JL(nkVQ@-zJVFNTXAIfPAA{Ldz^f`l{+ zZ-#d>_&E}oQszBE^pJZ1`^9;M6(r<-fH%X7yJ|>aO6`}86g_VLw{!QW=z$d^4x46FXx;@U`m>0fk>J%<(!i$ zNJuyIW_UU0Bmz^?ESpuCB6@JnNfjid8+tRmoO2R^Dd~wTZ&MG>IjMq#bVF~3mvc@c zFeN>)=ysZ9<(!i$NJuyIW_UU0Bmz^?6aStzP4wWLlPX9^H$3(43@_)LL|{sK;w!zT ziyoYFQUwX=hTaS>=bS`fN_wJQpQcPX=cEb}(ha>CUd}m*z?AgFt$AjO9-MPh1qtbf z-V872oJ3$sdSdKR>cKfDRgjQw=*{qQ&PfEOq*;DDbC&4AIVV++kZ$PB@N&*c1g4}} zmW-xJR?a!8f`oKKZ-$q1P9iWRJ+Vx~Iid&WoK!(Vx}i72%Q+_zn3A5Dt@K>cgL6)* zAR*n*o8jf0lL$;nPfYlYdT`E36(pn^dNaJ7a}t3mX_n{Kekpoz&Pf#{q#JrOyqt3q zfhlR0Is1GidT`E36(pn^dNaJ7a}t3m>50+x=ZPMib5aEf>4x46FXx;@U`l#og);L+ z56(HMf`oKKZ-$q1P9iWRJu&hn_28V7Do98-^k#TD=OhAC(i1nGTp)UI&Pf#{q#JrO zyqt3qfhlR0*Cs9$Jvis23KG%{y%}E4If=lO^u+Z|7Kt95b5aEf>4x46FXx;@U`l%8 zufdB&56(HMf`oKKZ-$q1P9iWRJ+bIZ>cKfDRgjQw=*{qQ&PfEOlqW6`J$UC_q7l*! zy%}EKIhVj)*NZLXiAzNf-Z__Qgmgo1hL?BFrEqW5Vz?`8ndreg=Q52@Zb&QVopTx7 zb-lz=p152PymKzs2<3*fa^5+YXWn(asLxVMc_Q`Tol_^28`8>o=UlE$`YN+rAqd_% zS7?NELvMzccg_`X*Y$EsdScBTD@6~^IjMq=tK5)Q&N(L$n3A6O#iUh&;GB~xNJyLX zW_UU0{P(f`Ge}A)v!r=W-Z@1D2@0@Eg z4U$sIIjINloI0W0kXFt+=Nd4`)s}M3Bth`bnWPcQ4XFq3oJnAit1ac6YX!kO=UR=B zZs^VM^3J(7(;z9OoHJSU;GHvBBa|D`%6aEZ27^qplylNNC-0mo8ll{fR?a(T3K-;C zOF1X?;GI(^lpE5@dFM<4gG{!RbJENx@0{y2Lb)OJ;GJ_F7-X`goO8V(c;{TN5y}l| z<-BvQ2ZKzplylNNC-0o88ll{fR?a(TDj4KCOF1XabMnr)K_iqK(#m<~+yDl--crs< z^PIeMZqx|nhO~0tIX8kqrdrB5sR!?zI-%TbJENx@0{B-Lb)OJ;GJ_D z7~~d9Ip=mk@XoniBa|D`%6aG94hFf^QqH+U5WI8l&lnzJLhgN$eosQ&OL(QopX;yC^w{)^Uk>k404yHoO7=r zc<0=!5y}l|<-Bw51%upeDd(gfymRV=vPoJw@0@$VAop0xInxBeJ7=0kDCeZ3;+-=M z4010xXFw3Va|Sd*IVbhtoihLixfh&MOltmroYT<=<(#x~-Z>pG$TVpZ4aL!2;d|c(6v~tcliNKU{&V7R5opYZ?C^w{|;+=CJ7^Dl% zxnB^xbMDs&<%ZOQch3D_kZ$I^wO>p+APC+$4`_sPLs~iSoZ_)E4RRkiXSyJG=M)tn zlylO`dFM9~a~=Taq#nF;>V$GmS~>5W2f-lI!8s2J zf_KhC8ljw%dhpJ92n;eEob#|Cc;`H<5z0Af<-Btq27^49>6`^4j|hTuPO9MJD(9q? zbIwTwrj&CY6$I~`M>Rq@C#{@!&ZFR*hrv0i2k)FZp`4Re&O7H(Fvug|oEd`Poijrt zq;q;Ryu5Q}WEv!;lye>vJ$UClrV+|HY300g9s`3s3eI_45WI69*9hgDv~u1#kAp#G zfODP@1n-9?qb2Cv)@L&ZAoVp1L3O@9)vARwJGw@px7YR)L^j55Ws`?WDfzua6kH?qG8V3fw zY5rEHxr-GfaOx%~XyVJ-#{RaKjngfie%nj}=Ao8Xx|a+xYya zp)OXCz!@5`@+1HF`pvnWX52{72u!KpXQdwao2*zt0%vIS-+e^_Q|kL<=x*gOUEA7vBit`lffBw{s74e{b8xKmt?QZpYYt zw~q1eFHgjZzw!Lfhn~ENw0|wH>~%)acrG# z^tP(apx51$hoMHPrtxNm=z#>L)J`hBwm(@n%!pYKXPyY}VqgV{=qbJJkA8@;cBj*; z=jMb(4nytj&3JFZ<@6K&b95<@`-OUVq+Qq;M5@y#v_O6{ht!_D}NBvj+GVaX! z+)!pKlv%;o!0dT% zs1FHDsU3Ry%uxJbC38Z(nr0huUSUNee(G!gIH!$uJeK~tuUz+=r{`?<{#D%#xQYSVFig?Pvh)gFN9eqx6;a!>hv}z9NJ~95$6>Wm{M1Ms7I@xdYc`l z%`~cr*AlEC(M^0u&gZwQSYvO{%8xZ0YJSqGsZrzBP#+SQQdh9(^X{)-4Kmw&n8kQk zoL5*uqFP)(`@!L0t6c@^@pGHu<}de(`tCd)>O%rk>Pj5B!Pc2W%$y~11tP_Hg%u=f z59nvlHuGAOdeF*a!V}DyBkY~4>@)__r-aI6(sUy?PuTk@E8Bv+i2x0 zb9FNp$Nu7U5$6>Wn9^c^4dJ_)-k_mQP!O$&MT}SasNeMJ8y$s{vTeW9_`LlG3$5y(7i3zfdr=1 zo!PVpaH3;z^Oswe>l5b{R*-1Zvadbx?kfN424upAp5`_m^l$B6dNS091g6xT1GJ0N zW6M+Hd8u}8KXG1R1&O)S`q<+>pX-kvPb*)W^{mmVQj}Z${!kwhn9_HnE)P#O9^Q<0 z4~p{&D@d4Id)v$QPxMdRPAebNb(mo+9OPE|Whi{lM4E*ueOImHUzLoZF9*2BXI(Pq z=!?GGs}aM*oba(5qx@B`(8}`{U+DYvXrdbs{~!2Rm{OlnX#Xnf$Io{AcMoxEb?5?< z#d|Fz)F%$wjWYlH>@z`}SNK?%QlD^WuaE!iBffnv^Al2LkD z@UbwZ@7Cr!u-eHpE5=*<^&x>Neb+gs z`@nhaM0>Z9c%EYgiR>Rn+qa_U`wy+9m59c!p>FtiN9nc+M$1?$^f_g zt?7koJi;FPPIl||Xu6uwc|(HR%6Ss_M|`G6 z0#o``vTS{ZxMdgk1INTVu!6+oNfCCxn1a@<47w^4>mTm6%~Hqr#>1gLBrv64?dx)P zkekutzOR^gO~eWkwHHL#7s{5kiv3Mjm)@E-#O*SvgR%A3p*|!qrC+r?RhV|mShsKG14gnquaLl$e)aWP?oMvl>>rH#;=IBN61(1u zw7=VCS?|}UD{&$D+qze}WH;A|^9l(}=~t0o8`;o(axK5PTl{}u1&I%LMcQMmX4a!v zx}rGckk36;w37L^=z#>L^sC_ycfIRg>F~Z8Db6dbAd$UYl>O*gTWjP>y88Ob_a)r) zk_}D2c%CDHDgCN`(;srV$E!CpABrAWL880SfgIa4i6 zDNm$(CV1yuuMx@(Y300guD39yJdy7G;GJ`wMkqI=mGjQI&cc-P#1ujB&Y7YS$_;7d zymO{lm{OidJ$UET3FU^=gLlpp3sce)3q&Rhf^$x)Afeol{<@rV5`ih@iE9PHJLg)R z$h1jXIq#fnEoG1?aHWCn@#38`Nh6dS(#m<~OtLVgJaLU6c;{TB5y}l|<-BvQu`s1P zk$UjXsT0x-$K9Zn^Uf*mn)}a8DWyDdwIF!sT&)qx4XFq3oU1KNDNkG_2;MnYX@qh^ zS~>5Wt1L_@Ph2So-Z@ulgmOb#Iq#e+Elep-Tp4q`mY300gF10YF%yNk!c;{TA5y~cM<-Bt)0fSrycXBKi1n-=SHA1-| zt(+7N(RZeklmvIlt5h<%YC!-Z{UtFr_?kt{`~loU0Ma4Qb`PbI!Fer96>( z@Xo0d$_;7dymQXAFr_?kjv#pFoTCxS4XFq3oO3KpDNmd&2;MnoYlLz`S~>5Wvn@<1 zPn;zP-Z^J!gmOb#Iq#gaEKDg+q^V!tIcI8wazk1<@0>F&Oes&K9=vnvgmOb#Iq#e^ zEler1oFNF_IcI2uvPtT}JExe!&UDUM;G8r~&O7IHjgU53s3EPKch2dV21zO9oYMrs zJLfcwP&P>`=bdvJ7~~AN>t(7Sc;}p|5y~cM<-BuF1%sRpckfIQ1n-Ag5*CP33)S1n-=aHA2}W{dIZgoD2pz748a~BnaL) zC+S3{bJEIr=bQuvIR%_^q9AzZoTw4XCMOGmcg~4mkdxsqy$OQgopXXlD4V2}^UgT| zoO2S~ZAd+M=hO*hleBW)IVXTYP6X#1F9_Z_$7_VLN$SBn=Xfy4iJ5nQdf#%xIVV-{ zag|Nd$~osG0#njCy>IK`oRca@D4V2}bIwTwrj&Dz5d`m?V>Cj!;W$C?&N&7Qa$M$J z#oo6k@y95N>=O{49F>tr~NI~$z?8f;>3#bi=bThQLfYhwj6~6cb50^KC7sjz7D3KAse**G$w@5}L=Vn6iNKU} zPVd_gIp?Gb64DL-+7d5%aL!2trlfOv-|EOYCsmM;HaYag5YdBkP9iWRozwevO3pc{ zf`qimfBb_*56(G>z?5`O?^`xG=cEb}(kA_L28te>a}t3m>73rTg>ueG6(poho_>9R z=)pNB5tx$B>3!=d=bThQLfT}=?Eaz$=bS`fN;;?a?X8@1QUwWVlePYg6FoTRBmz^? zIlXV8<(!i$NJyKEYtUEp;GB~POiAbTzD<{NPO2awZ8B<7Z_$HuP9iWRozwePV9q(I zf`qim8&_gQ56(G>z?5`O@7s+z=cEb}(k8Qh6eD_Y&PfEOq;q=T(#$z0RgjQ2IqQ6s z=)pNB5tx$B>3!QY=bThQLfYhJf28QaIVTaAlJ~=U-6~%nyNDi~a}t3md7abyR(Z}jse*)b&O>=SiyoYF5`igsozweve9k$kf`oL= zPse>OdT`E31g7M5PVZa(Ip?H`M*QcTUtZ}bdT`E3guKp4DS1Dv_iF{5b5aEf>6~wu z=pcG<&PfEO zz?8hs>HP`@=bThQLb~DR7N3e9oO2R^DS4gK`!x^FIjMq#bi;hdTZ73EA z%>}_ZCsmM;HaWNSCxYOdlL$;n=ghUGsUSG#qzV$!IX{SODG1IviNKV+&e`^PV?l7v zNfjidbB@|bE8n%Zu{q;|qHf+F)V;MtV9L!JXP^3er@wQ@MuHgsNgeZ4nX>M5aW4*5 zkdV%~|9{N{5mCFgStLs}_oMN{d`MubZk9Ovi&Z#=b6?c?z$_5f*Par&)?Z*%b8C&=*S`Bsl7IZ9W>&ZBeeIv?@AXeE zO@H04Nw1h?N|barzAS8F1qtjI6x7n6!<;-Lms_B8h(=&4qJNzI{D0^CO%AsbJ>D2u z&J2C)O}F-fEGAZvz`t8iP`wK!%uUU1InCb=(Fjc4zaD4z{PS0Tmf>`^UzrqU#`nJN z?46&*#0nDl{~r|eecNj0|BO^8s6>cHV5)G{e)jsmU$r{drf2QN_D#(PXO=j37iBTA zf&`w&!svH|nfdFtcY?}?XauIrR{iW5-Sb-C{YbAqWrNz9M?ZbX`E+F#6DvsI^HEHO zHL%UreUk#$Yldh9rdl-XXD3e!wi5n*6>VOiqj@fEaoYWLSxl@Tfv+n;LBHgxXJ*_t zeYvWJXauIFm+fcwXj8?y@O^u+4(nMv^JU~8zH>{nm{>sqUmu0nE;7xlk(G@dWkNIp zQ`W^ed&iwRR*yt_S3C8%rMYd@7-OwCudspyzRrtZ2TrePepG#~aZsFBNMPzt=Qw-C zhKAP7_vzhv$R69AzB$8~CeACYAc5~!K|vFmlrsy~J!@1e9-Xcrkriy12A} z`P#@*W`Px1OspV*pC5vPdaZb13=At~7I-g2BQW)Mt3LKcr@J+yB7N$6&v)Ngd@9uJ znUclC3KIA^NPKh4vt34xk1CsHwGfTK)aX&-x9AQ>Sz$})(`$u#8;vS|d~9A?p2frp z68L#e{0>%|1Y^YSwaroDZ-oS=ep}YdzO**hs`vqY3SafSjWK*q8?(y7EGAZvz|W=P zE~K(AeQT~;W*_l?js&KD-5zU47w=`=|0P27xH5j6Z{NfY<}h(yVFd~Nd>s_DFZBA} z3WMvJUx{-U2~2H29%DCrEyns|4O!9Ly~%+)~e8T%HZ)`;k-@zU8b*sSRHCaroAc6a3;Q?@_t}{}+e_#a(-1ifo+q>0qe+iCtI+YC32u$_p8fjM# zzUn^~PP?_wmo|2Lk56(|i}MOANZ|gZ_$IbJRovvATb0 zo!d74(9O5&7pI3fudspy?!$`jfSCBUJF@RR#}^!;5t!;cJ<1;QDAj-H-`(@Dl4ab( z-{o`NC0R_YAc6bI;{7A)HFsB~H{FOzAsT_HZyHD2yQ?ksS9+hW0$hFLb$9hQmEG6G z|2bBWzp%iidGE*Ad0$TOm)}ZPWe)C{>RkAuh1+Ox785H-;B^Y|8E%B> zBu_Hj72^K`2~5qo7;E>PH`d>CJY8M7wK2Ezq71(@(8~Y5@S|~lXRuqdN{B{aN}6SZnRFF-+>Bi2<^dJm^5Qv&6(pn^ z{_q+d73ZAvSeTM#S*{yh4d^2U`m?h7e(nVB+fahf`oL#Jkx3AoO2R^DQT9~{-7S5b5aEf>4wK+ zY2}=A5`igcmNQP#9b24pQUwX=hLvnOD$Y5Hz?3x0qjTu)HqJSzf`oL#ZaL_vIOik+ zQ_>SlG^e}tIOn7a64DKKr&ABkIf=lO^u#&EW(tCHPO2aw-LTpWS~=&OL|{sK;^5z@ z2j`qrK|;D=-e_7m=bS`fN_yh3^K@q>=bThQLb{=MpC#vIP;|-IOn7a64DLduTMwCIVTaAl4iMN z1Kq98IVV++kZu@ShK`DJP9iWR&2r=fy6c{EPO2aw-LTl-)Pr+QA}}RA@sHLtJ-|69 zRgjQwI4grz&N(L$n387M^bMMV;GB~xNJuxlJ(^a|IVTaAl4d#f0`=gWlPX9^H!RtR zR?aym5tx#m`13lNO5vQ7Do98-93D(Z#W^Ptn386>Vj@k~aL!2;B%~YqUQ!RvIf=lO zG|TJVX-bH5PO2aw-7xVAt(HuNzbogRb4li%XOvQ&NYiJ$b1u~g<%V=rymKyvJLr~J$`h9ff_Khk8ll{f zdhpJ<4DJM6Vku8tE(qQ^murM_Ls~iSoXg>k#-*0>M4D>kopXgoC^w{)^Uk>f?#x_f zDYIND2;MnYYJ_q_S~>5WE5RU_Tgo}92k)FZq1=#G&O7HyxKnmT=5@{nGgk?Mcg|HB zq1=#;ig(UcV2~><<(#Vp!8_+_jZkh#J$UC_4FcKmwPAE5|mGjP-1O~arQqH+n5WI7))d=N= zbX2@^t_6ck65o^SUFZCzPqH9*=So=UfK{nPMsDTrUXTIoE51 zazi>Q-Z|HUL9VlubEXP{cg|FeP;N*^#XDyz8030OIp+pJ@XonGBa|Cb58gR9fI+Ue zlyhzr1n-<1HA1-|t(u403~|oO6>Pc<0=t5z-9{ zHl(BCopV#BK~hRN=Vn3h&be75lpE4f@y@v!404mDoO6pHc<0=r5y}mz2k)F)z#unS z$~m_Rf_KiX8ll{fR?a);RxrrTmUPaxe^3w3IjMq=tK5)Q&N(L$m{QKUO%S|uZqo?m zhICZCb8Z8J+-fQ3+%5>-Ik#(sazi>Q-Z{5}L2k2@bM6oX@0>d{Lb)OJ;GJ^^800of zIp_iBW)Nm@DYoO{6_cU#Ii(*(ggXPQPRo1~TV&MAKLCDS?gfOAq0-Z^zbIVY{0 zcg{30$i3j40YUK28PEvjoOD#Ya|Xa5)4(|$LGaG$XoPZ3>cKmw0|uFv>6~-AyMo}H zlPdVQ$~kG}oO2R^Ddn8|1i?G!K8;Y$Nh{}_a~~L_1J1c$5WI8l*9hsH-uJ!o&bdF+ zIVq)_lX~#ZsT0aMY300g?gxY12hMpw5WI69&^2U`jft`|r1ZbIwT>B$RW~QE|>m1g4a89uWlZoJTZ5I;Z!2 z;k8N<; zJPrnV44m_XAb96Ip%KbCsR!?zC%_<&fpeY|1n-cJ zoRe10JLgF-$P?h4rv$+}=P8X)&PhkbJLf4d$dlllrvvzVP`HT0pnk5TdSlTH(VxQP`c z2Wj_q;w(DA?d8&vyL^f>(W6>-n@I%oC!;U-p)kUOc~ z#E8>6+4%hJVNTl*qcj3jo&S!rHwCgyozPQ;d>~W`X6Dvr_cQtQfq<@oh#+BmB!}hd~(g;j_ zpA=`mnDL>tw(94i$N6`&o9&05@LjdTO{^dx-_^W{k!eFt8LeAy@NG7tGy+riYQ@>@ zt~RjVxkA8-rnlotefbO zd+2#%)6Ff0+a%n?3KDWB)teYO8n@7>(rc;_6c?otnA#oI$1eL_7whY9x{DrNo^3R? zcfDZz-CI1*p@M|mN%ba1p0yZZ_)D!Z0*T^z4g{v&`l7epaC=W{c=Mj3M?$Ab#(<^w zjg0Q$CRUJ;JE`8pNcsAWjHcsv86S6v(g;jFTF}cbJS@uUbvr`z80geDK8t+Cyzo)D zi4`Q|PO3LC5_>zh@l)zy<(|LyDM!dl@bR*;Z8 zsouoMw=-w?n*4U!Xe`bvBrw(LQjGnvSVNt*F`~!!Plts4GCQZaUG%^T5^^Win;6NO z5WVN&jdMoz22mP;sf|G~cD9M#EH`^E(c_A}D)86K>}G?8;U-p)kUOc~#EAdS{6NXH zQ$}P|lty4`o-f)iSL`!u*}~qU$E7kgoZx3--X}8L#0nB}C)Jx6Dc3l^lfUahW4}1B zkigW=SyA>o&stk~-{>oPoIgL>XX@^yeZXiXUQ4iogxpE>CPx0qSnM48c#2U^oL5L-YI#Vc{j5L@Yj~ak zqQ|+Dx16^t%roM|Ya&*VkUOc~#K_rgTb;bGd}cJN8>JDL>U%%J?(=DgRsX<1(W6S* zOXqm0_Qr?x!cD9oA$L-}iIH*@4?4MP7dGm4jnW8A?foIbZa1c&RindT(WB_KZ0;u; zpZQvJ4L7lZgxpE>CPp?EJmsWBFZI45 zk9ci|3KDWB)teaks?a%SO_Q*&qkY6{I}n(Znry8fj?V> zn^-|Y?xcDXBj?MUb?*P#I#61?e;|RWebXZC8_mA+=gC2{88cE}bEnP8>x>bfeXxRr z+)4E&MmAJC=48wJIB-LpS4d#$;G0qQPmd4##~(}-J%&~N%X#-sw38}6!(jypxs&Qm zjLaU9=FHjbb6zo{Gy+roHbvQa&TsLL@r@8Yk~jS1B==wHED)bXv4Vu$N%ba1zRtGR z*}6W#ncE>sBQSNfhj_i(vci8d*GSQ$&xiw#`{bY#)iK<}3KD83m5yq_-&38Uvllpd zM?`4^re3cQV|RVaq6eBIoeZ>rR$|;U-p)P9XhIse_alYe)WV?MSN~Y0#o((_OeGzpX#sW z8zYFkBN782?9JguiSr68NT|Da=%_BG4~W+;{>tgc_-t*ju%eSu<%TSqzV#hCzX2C zZ(Gw?(B6t9W+SeTM#c{^&nAYPRE%GmhpEoWwj@JxfG3KG%{y@?UdIf=lOG|QuP zCWs!Kb5aEf>4x6K20>B19556(HMf`oKKZ(@XVP9iWR&9de1)Pr+QsvsfV z(3=?HoRbJlNwb`hF-i2`oRca@NH_E*MmXmr0#ni~J5QM`dT`E36(pn^dJ`j@a}t3m zX_iwOP7ysg=cEb}(ha?d5zaY@z?3x0uM15TJvis23KG%{y@?UdIf=lOG|K{ysR!qr zR6#GiM7~!0g2uw+{tdTTb^x&M6Do98-^d?3) z=OhAC(i5Y5%@92}=cEb}(ha?d5zaY@z?3x0edTFxf^$x)AR*n*n;7AolL$;nv#j-m zdT`E36(pn^dJ`j@a}t3m>4`;8(S!o$oK!(Vx}i5Q!Z{}qn385$V*PBoRca@NH_E* zMmXmr0#ni~$NH9t9-MPh1qtbf-oyy!oJ3$snI%mR@XonZBa|D`QSr{X6z=g^Vkxtv z9=vnvgmOdb!8_+txW{LSB|Y)z&3vLHC; zqzXQ+azi>Q&N+#|lyc4#LGaF*q7ljs>8N<;OaX&Twv=oh{SAsrR(oa?|K zQ!M42)Pr|UoltH_1n->dz#!LI$~kF5fp^aJ8ll{fdhpJ<9t?7wrJOTW5WI7yYJ_q_ zIx5~dQ^6qDThckBdTkH{=bTi*$5n1fN5wfO5tvfWNfQdZb8gfK<%V=rymM{@gWO;# z=cFFIbLxb0Ln3(R+z1A_(NfMy6AHX@Zqf+lhSY<1&P`yD8!hFWG@-yd=VpyiZb(PP zJLhIF$W4}VPMT2QopXyuC^w{|;+=B~802P4IVVjh@XonaBa|D`QSr{X6%2BVrJR$d z2YBb)rV+{w>8N<;+y(}@)soKn=Nan3IVV-{aitr26C<2+5`ih@oHU`pJLh(dP;N*^ z#XIMAFvx9|a!#61;GJ`aMkqI=qvD-&2N>jbOF1V^DDcj?QzMic(oylwxf2X>hb5hJ zer1{-;GB~x__)dq>8Lp8Bmz^)IjINloI0W0kO z8aSsT2;MmzjZkh#N5wm*0|ptelyka*;GNUe2xXIWRJ?P#V33ZboO7Qbc<0=w5z;xm zi4op8_hlL+rId5-7d?3A+^-SJIq9f)=iCp@xzAG0Nj-Sy)CuLBMDWhJ9}IFoIOhRD z@XmQaBb0Me58gQsfI;pD=S&v_@0{rxq1=#;ig(U*FvtVooCgKLJLf@-P|it5#XILg zFv#>w=PXnBkRUkcqzXQ+a!xub&N+#|lyuHkzf%v+IjMq#bWU$#gmX?JFeROHW(G|t zaL!2;B%~X96C<2+5`ih{oSml}5j{BPqzV$!CcTLf&N+#|lyXj*P~e^Os75H~q@&`U z^C%eP5pd27LGaF*p%KbC>8N<;%mC*+3eHJAc<0m!>73rg2=AO3nFdKI<(xF3K+d`D z|J+-9?#wZbP|it5#XILQFvtvW&f|jMo%6UxC^w{|;+^w2804``=Zx+}6AGMjQUxDZ z*(4nm=bS`fN;&6ALGaFbQX`ae(oylwc@muS1UM)4;GI(^lyefnJLgF-$dlllrv$+} z=P8X)&PhFZ=R5@lc@muSv>kb0f`r^j^(ID2cL@m;tsLaEKa!vkm^wEl&Th2xf&YB$r=myyyVHD~I@NRrw2U{g zf`r^j^(ID!1inlwR5qKFV_$+sV9GfcXAkT8npLBGThU{0z2m;nXJwtKZQ@O=AR*t? zyor%*c^B3xKRv5+_ELgIV5;BaID693yw=9k?L?2K4}*+1s^)Pz4vaUkf`oim^Cm|2 zrCbgxckgN7Y|ccDz|^t(ady6^C9P&{I*1;9zA9+EoBCZ~@rHO4D@e$9HE&|%$9`eH zMW0;{lO08m+RMuuFRQE%Y+n{{Vg(8LuI5dQY#2Sx_i^~O zK;7RHGy+paM#R}|qH0^UVm}u>ieIg1j2k~RFgY&X#0nB}C)Jx6shhmPmv7SXz?|a= z8iA>MdE@MPjp|#wN_Q4LMjSAW+KsaZHhdCqVnrjgiIHiC&iKk@OAWl~CTN7*Z>71C zg5$(&*45@#4KX_r6!iIpy2in&P4}E=6>nk%3Hh$(O^nRGbIW%&eRSaD*#wQiRHYyK z*maZIT8}1m6Fo}x@EP5bbNcf3i8rx=gxpE>CPu#g`GIdn^@@SrL5UiHsTCFb*v)%( zvbq%NA$r9AUd4!-I?4BNWxRnk%3Hh$(O^h_W^p9`p%F4T!y-d&uOr4qA%dU~$)A}nUQuO$F zM?T|5zbC#tL*h-WAR%{By@`?6F1>2Z3tk(x{7iyIV5-vISbJyH2y6f4DAA*A?N^K< z-QO~He=7bzpn`tSWgi4i^g4Nm#m#FsU$ zwTL&df`r^j^(IEj=ls=Ib=wHv>=OwZfvGcZ#n`XE+Qn*GznADStkP89^&RgSgCoV? z3Mxp*om6jPBwN3uz8`*B?)%`G_*(&iDPNmtyWolT!l8SM9uphB?mPCpwvjeJ-oy$L zawpZB7%@Iw;cL2RudhS#M2*1ITjIX(Q}$U0qMUM}2cM076p|&xreY}YkB;-!2H!<>H;iIr| zd9oS@#OoCjn5x+<(tcE{x|O>z&3}~Yl^R&&Rx$QBk2kS`gxpE>CPq$N{l3n#R@sbq zk0xjYrcM+UGbVS-Sm$336g~2;zZDqxRxx9K*LV{vNXVU3Z(^k8lu>E!&p}3;-x4$e zQ*&}f+W(tb(AxLaVA12o(p=8X?Em<3%!oI!f`r^j^(ICZ)GZL07kAHByJ(_DV5&o@ zNW1;Y99C?up`wS;x1>{M!9ia$@m`A+B;-!2H!(8*T(`hGpMLKvoG(!$FqNxar2Wm7 z=l*N+;zf_#g{nHe>&^8&ofvOo1qr#6>P?Ki`p<$uA@_o>$hQd^fvIELBJCwPe)KP@ zpCEcv8C%D>XV&w**GYV4fC>_FC)Jx6`R3HVK-jkdU+n$_jlk4^8say21|IVlcxAZg zG4G?g&L<_NhYb_w6;_atJE`8p$nB@!2DS{E@0))xK_f7A@Na3rr~6&R61Qf<|Df{IFTA=alcoQo~$h&vE ziIJbvvN+=>mP-5LMuJ9QYU-6(JL{mC{^p6JMUT+F|8x3h$>x07J>J9$5^^Win;3bs z(5uduxn2qUo}Qo)n98%gm!0xrmOr7x7|~-)Ur zyTEmE?jnJyTa$X*m1@oRU;bdMAbu^fF;HPxWv6(%coQo~sGU?I-YR}Ike)m%F#o#* zjlk45E&JHpoR$7vIcPQ`U+q?bJ->b6G)s&(v4Vu!Nu?gYFWwq>nQKF!Ux7r8z?AgF zCr7Er*7C7w=MU6&cI=MNG)Sr-q3+%xBDwDLK(7sl19K`SY6PaFSyr7eUJ%Zj?qQ+t zg*oLG$7dQORgjQw=uM1p&PfEOq*=bveuC)1IVV++kZ$NrjBw6L1g4}}M%9`qdT`E3 z6(pn^dJ`j@a}t3mX_oWyO%gpg=cEb}(ha?d5zaY@z?3x0OSh;8=bThQLb{kOFcN} zqzV$!4ZVpG&N+#|lr+ok$7YKjoO4nI3F(I3#0ck{L|{sKV$zB^q6g=kR6#cKfDRgjQw=uM1p&PfEOq$iF(Lh~P-b5aEf>4x6K2z?5=M>cKmw zPAE4df_KhUV34aauX9$Nuv!qjbFS71<%UG?&bb;4ai*~Ig`L3lPu+&YX!kO=URV$GbB6#Oq3kJE?QqGwy2;Mo9HA1?fH!;FHXL6=NQc5{zis->RXNpEBHzb00&J-}n z6iYg1v0Cc{!8s>Y@NtzJ62Unq5tvfWNmCHKbFSBkOy{H?ymPJxgIovBNj-Sy)CuK= zMDWhJ9t?85rJOTW5WI7yYJ_q_B6#Oa1%phrlyhzn1n-<1G(x(eH!;FH=Y~v!q?B~d z*Bj6j1m~Po!N*l@NCfAcL|{reCrv@{&bdh=lp9hH-Z?jcL2k5^b5al9Idww0ArZWD zZUTecWJ%}jaqQno3+6f}Rq%0@8xp}eClQ!Z&PkINymM~R2<3)E@Xomf404O5oRcOk zc<0=z5y}mT;GJ_T801ziIOF1V^TJX-f zQzMic62Uv?PB6%wmU2#-g5aHVmqti8^d?4l=iHTPkd#u+NmCHKbMDp%<%V=rymRgb zgWP2)=cFFIbLxb0Ln3(R+zkdPWS~J(hCLy@KGK zbFW4yHzb00&b?redoAUhGzGysXPQPRn835-D zfO8VTJEu-4=Olu6&Hxx>Ak#VDNTEp!&N-=qkE`5}2+lc)z?5=MR}j2&x*DNuk_g^8 zT`)-3QqD<}7QA!r(+K69MDWhJ4-9f2IOl#r@XonkBa|Bw!8_-EFv$JjoHPZ&JLdt7 zP&P?Dc;^(qw2}G!dHXHpoYaGNPMuKBNd)hl2f!c?fODn`f_KhzjZn@>1n->bV36tH zoCgKLJLf@-P|iuj|6}W{!=t#mIJ{82KyfV%THKvvM;HnecefBoc9Rf6f~2^+l;U23 z1b0bxE(EvWuBAYL;?h!D;Jc^8Fu(gf_rE;PIq#m?&CZ#9XXeb6JLf?#$b;aVhd3d> z&Ur{6Z0EElM&!vg@3^kDnF@$0mu8JLhRI$kV#xoM$*8cg`~c;W#G|vHZEX7aA^63V+j8 z&B^co?l63pmc3^SebB>5BeUO5t@Qd9dQ$%=qn&Y78-J%ICye#Kn%!smD`!9SQ89vq zefN$vF)}gBKC@Ms!pg1`uRvhdzBf_EPa|$<4ac` zVr0rcC(J?{H@nXq;LnbR*TSr%4$(%5DX+B;0d0AWGw&vuTV~`+ywxK{#RwAinN(|H zp54YOuCz4Kq~c#TzsCzx9GAm0RD10zV-M>T6=#QPxG zY;vou@9j~qKw#F1z0rn$nwoqJ!#RwAiQO%kd`F-ILGxw2) zzDF;-0)bggcSRe&FYwa`mgvN5^tcgWe*Zd+Ic`UciV-C2qnb4_(jz3nyzr`$IU#ST zKwwtxpQDX3SIg>W7I)?~CVXsTjw)T&+`cPD#RwAiQO%kd@nl=epHJP_JpSA(5SX>F zNwl%@aZSBPKv!O)^u;RXj}=>)6~@P?7(v25lWI+j)ZIVBtgg;6%kcjP5}4KUUX*dd zF!Z~xXvU;Up-kqk3eo2CpcoY+NZ3cU-TzID=&>Gi;j9hjGyc6o0<(^EjWQ;5ZmM_L z*n`*b&Pnw3x;x5@=oX`51PS}@9cyA_|Hm@sffd(m$!lEH z8vC;5m|zYb7^7kY3HwZ{H8FDH=~dsir;eKEA9@7>v;N2yX-u!yMW37!#B2C=l}gJx0X{ z682Heni!e0JlUP{^>MT6DX&0aR&z7lNL(4D|FOoyYxsqvQQY74H?M@ms2D-QK9g!q zjPxH=URj;qG?(u23It}AeimkwI~u6J?iI>wEEr#2x%hKOvtrj66(dO4XHu<+k+4sp z%J0+Gn{1y~ATaBF$uMJ&*;OByJDk@zaH^@YU}J5wNpy^g5hU!Rnl&-f^6fOGL8rN9 zz2Ce7fmv7jg&H|dx7RzY>BDPGywFQ2wjr;Xyevk=2om<0RBK|SM6Q)e`*%ale=>#& z1ZHKsBT|J51ZE{R z@){FTH_+oZM)4X)dW}`Kv>NN%G%rTQ2om<0RBK{n$>YOHjaq;EQqFk=0<)f8=5rH8 z1M~{r`|=ve!zU>_Y7I@C6&|Bv1PS|0sx>i^q?}f={nFg`O#)x92wn@bGLG>Wh4WO> zYZmO!Ys@P?Ny!+S&Yj#PM#Tsc_L)>`VkF1hGm3BP!hr2QzSb7J7G^zbMV?VKFL3kg(6BS`#DwS57ENd)K+^UGoYAW_9?%V~ks#M}HhLkk^RI zJy^NpdE~A;H%7$>684!?YhuJ*BuS~9A*b^0t5AW!tjc^gBc(wm{g)eqc#VO7^;8y_ zd6kU`F)Buou+OAg6C*haZBs^cZK*uT6e^q-cvi3Ui`a@1ZItS=`}iqC2C3Ihw~cUm(Fk(%RNqM$onovkg(6BS`#A$&ws5f z?{rYPdEP4!n3Z;ZsF82{2CdZ3BY2Iuxn2hJemg;FH7!QP2olbj)RCO%G;X20RO*w; z;E!H`z^rCX!i=xiuh7~yC!#>j?-Ij1Pf(uuVpNPE;oQAL#MpbK1K!s>t(?mhDiD}8 zH%qv2_veLL@f@Q#aU;O%Gf#|F=C6-YF@l71_YM&=K92UCn0-pAe8(#gnAP@rxbbY- zJT2$}5$?>_d?}&BlwN~kRE!{DpGmbQMrJhn+MIsopi+h(qmaO?uQv2C)UOt3vkr{r zH5z@)Z{FP%qO9V-uP}myb0&2RC*lS*H80-Yp`7E#S|l*5(clQ9*4w4plchu~zMzV_BA7o@6*O>$~F6?V3zHP87hzCH8L0IW3D)vPFcKOz%1JnhcB7HYsj3FB1qV7XibdBoRbL5vdwa1>_lEe=A0Bk z!gfPzVnpVgL|~R}mQR~c;x%N>Nf9J$H?$^3WX?$hX4z($m}4@pA#+ZOAYr?qH8CP{ zP9iYNHp@rJR72*R6hXpvLu+D0=A1-emhFj^mQ3L_WX?$uBy2adCPrk=Nd#uuo)|rN zDz71PPKqF5yP-8PB6Ch6Fv~W}3hk%y8Zzgk2okm%S`#BO=OhBNY_ptJembuqb54pN zVY{IS+-dwWSY%u$efcRNZ4*@O^nE#lL*YR&9dADsv&buiXdUT zp*1lgb50^K%QnkA#+ZOAYr?q zH8CP{P9iYNHp@}f7V;W0=cEV{wi{X#BQobC0<&ySyqk&UKV;5H5hQFkv?fMm&PfDj z*`B!UA=QvMCq)LK;O^nE#lL*Xm%yK2KA$QJ|0^ztJ5pw5T z3HSJ{{BoVsctM2RIYq*8!#GaJol~4Eah#I~xpT&WbN>Ith}=2FEXO%l@fvdHTm{bg z{}Ur}=M=LX=cH*4xpS@t=luVP5xH}US&nnA;WgyWxdxnb4Y(l@a_1DY9Oqoi3AuBw z6<*hI!~Y1$bb7$}OeR9+oD{*=b=)wX6Ef!{0<#?FBtq_-@d9DHp*1lg zcTRDx#Bt7byoTI4*L`tLdR@m2X*NUdoMM*aoJ7c-lh1#Ae&Sx2?CZe|iI6*|nB_R< z22RMGbA#}@jvEpocg_u9kQ;QzIf;-vr${(%xRDcb=M?8k9OooL?wlLJIsboRMDCno zmgAh8cn!I8Zu;V!G(FJLljkG|eG% zPKw~`+HPn~jL4jm2+VSvlcqW3&bd_}95*CF?wnh}Ah+s{a}ptUPLXijkmf(+&MD57 z*v@%>DiJd0qzJyQ@YdbFV-+Zb*dOIr)kqFjwL@ClPYz6bZ)-Y5qg*oZ?)G_5oclN- zcTRDx#CFc7ONo#*r7<{r&|fy zs-aDFmKWZ`&%e!<|`^jkg$(x*2G9?Qe8GOBtVI4<0lZ9 zl^hjqq})iSKhM#I*J#nQG;4fgue;eVii!~=?4z1BG4kqh1GY$O=Wfy7ParVs(X?n| zNtK*>pMT6=d~zWY7>1Ol@rO^!CIxAD`n z=U zbz#=8Zy(eDsG?#73HzvKO^kf_P@QdPyxPnb;U^H7wVSUiQ#7fD{VGI7@DS&m7a$ParU>=DsN7#TH#3n6(S9@#C#jY;T!cX4!>` ziV-C2qnb4_;%<_aZOER56>aM$5STSxi87vrHP&AoqdAt#L08S+9)876&sJ27AYmWX ztcj72ogSKhtHoHYc76hZS?A*T%-7h~`j(jPyhhWE@uuOQi~YDnQ89vqeN?k1MoNTk zGHZWVjfMB{69~*Y{2{_flh9Ew%-4h9YdbB8GN)ejW7l^mDn^j7&!k!tBg@hUo4qfo z?3V$40)bhz8%G!$GIrBX4(!QmYz|0k9_&++B^**zj38kj)vSq;K39``O;6TmeWU#Z z0<+Rg>SHLQdgyzy_2M-S&K;0g(pQGn=I;X|NZ3a;Yhom8yRz;%SsJnf-TedtvwZu) zjrD85nr49Bw|6U=1S;gOl8Mg{_ z*C&h!;WaMh>#7*OBJ2SFUSR|Y`>1A3jC^u0QeKU&#d`1>NMKgU+F{0n8lCm8D|>m3 z6Jvf=vS!c2R`LAlEfmu^0hZ;?Wwbh><2<0`Z?K!KI zIG2v)+oGr#LBc+hYE6vf2~Dd$3(U>_i1HH%%o_39Ydlq(>D_9E^BQqY-YemC9-3PZ zC@Myfu+OAg6C+JM->Ttd-<$9H`w0YQ)$ZdpQaAfS*N*q$HU4pbquzYD$85>_E=G{B z&!k!tBhfc2s(0=%)1UWtBrt3CM~~6#d>#G3kVsx*)X+le@L6NbJ3elmgS=*GejLOI684!?Yhq+_uKMcK z3om^q`LPxW%<>HL7!%(Y)n`5K%WGVYFQZ;w_>C`uAI~v@gncH}niwh5x}lnJezSml zUHk+Bvsy%Zj9MG>=)*_%=QWldEUmuiIoG{%y`o|S3HwZ{H8Il1?+3M`Ush#HxSv2^ zRy3b)>2M^IUiRGpUgJ${arNz=HI#x$ii!~=>@%s>#KTxPFvrCEyB zx$Tv#hcQF56A%R)1vxFMC7w^;B|N0ZJ5mYWo znXo3ax@4}RVgw2MOsX|8()q`eN|UbT)Owx#1Ol^qYzj3}8(Xyp`Y>LjP4k&bg(U^l z(Q6bHBS<)BQb%wi?~$2`dv+Z)#p5Rsm{qzGb~ z!akE~O^j5}|GjeczM=N~$xk3KDhy z6P>@k5%6P`hU$?JKY_rk9XG;_^;wo^75b0l#OrI-e2oT{QLn95RE!|uoJpk`_vZfQ zE7P^Uy1S#FKw#FfReg*W{g-N8TM|*AXmRu5qY`Rk{y)bE63&^_(VUprd5~FRw4#Rd z?-df5wJI#a__ku4wyQi5SB_3JpM`#_D*U^P5hUz0sn*2Eo%p@xq{fxi^?d(80<%sP zjWj0wwo#k=iE31wl3+eOn^jHV`yfV;u+OAg6C?N6y)^F~@>8ev_7e!qvOV#;YO7R{t8Bm4vcvuv}>I&3T_8hF#O5+Uc5>L-*h z21yYlY&WzfMr6)O1ZLT0`K&o@mCQLQf`sjc*2IX+If=k5+bn-9H=fs!IVVMsu-(v_ z7?C+A5twD0<)Dlccnz6zQUnRx4Xue0nR60>S+-g3x=A%;&Pfp@Y&WzfMr6)O1ZLT0 zId0iRUPI=b6hXpvLu+D0=A1-emTi_>yG-IWWX?$uBy2adCPrk=Nd#uuX8BLq$-IWl zIVpmK?S|IGh|D>Oz%1J=1JY07HDu075hQFkv?fMm&PfDj*=G6f9@UUJCq@y(Hx7+IVpmK?S|IGh|D>Oz%1J=$IY9?Ysj3FB1qV7XibdB zoRbL5vd!|(K$>HbIVVMsu-(v_7?C+A5twD0<)(tOc@3F!QUnRx4Xue0nR60>S+*zo z-KQEd=cEV{wi{X#BQobC0<&yS?CJZ3*N{0UMUb%F(3%*LIVTaAWqV@qLYiZdIVVMs zu-(v_7?C+A5twD0<&OjA@)|PdqzDqW8(I@1GUp@$vuv~6r_+py%sDB7gzbjb#E8r} ziNGw|EOY-$HDu075hQFkv?fMm&PfDj*=E@^iRM^j&Pfp@Y&WzfMr6)O1ZLT0xnbS{ zUPI=b6hXpvLu+D0=A1-emhFjQF*L^_b54pNVY{IO zz%0isX{+SUxk4ZuH(bdHxpS@ngIxLLI%n2lzj8wEoWBZ$9 zO75KN1;TMdsv&pI^Eg_6(LIUo2FA#+ZO;OjbWxRDbw=OhBN9OooL?wlJ1!g0e* zoRB-`Mli@ty5pQwL++d+;ke;uPRN~eBN*gn-FD7;`)I3V&Pfq`UE2+pSvB;fsi$FMTNHyfnxdjYztL``_5pw4gCsAxS zv?fO6&bjrAK~k3EoK!>ZoFd`4;dV~QopUP~oHmE1YE3xwl_G|eG*&h223J9Wo7X{+SUxkDfvH>4VJ=iC7Xxl?zXlL)zUijydg z8`8vx+&OoGLGIEW=cF2P=M)Ls4Xue0xpVIPVvv;OI45nD+&Om%gzbjb#E9HEcYQHP z%5t1@H?JXg&fNmxxFJn*$enXH8022vaZZ{_kvr!efpFZAYRH{)4;bWL-EmGLiO_LhhUi0^ztJO^nE$GXV@TQFok^YRH{aBy5|sCPw7WnefFR zDa&zA+A6toCJKb(oHWfLcg{pGNE4is=2+y;DNdp|&Pg@o&glc^G{HHEkUOV1iQ+gX zMeubU=RCp*nR60>S&nnkR>__7us}G@Nj2ooc^I7Y z2skGZa_1B$Q5@$y$_cr19sz?q3eHJ{+&RTb6vsJ_aYF8#N5MIdfpby~xpRtyGVZT)aQ3D9~$7V*83+vLjtqDY7=JsTRKjAotcOu2Zk$sZ=_c@v}?{Vg2eUo z;YOQ0^R!X7FL2_XK3KVs@rZIcHb@{aD}7!5S#?~hZT*&rB1eiS>$^O5Kg|`(FoML~ zf5MEv7the*6NzY~-E(IisrWh+9wrc&m9boy5gIU0yZ-liPNY|z$pf1~TxUfKAR$S&Vqfzc@+JsyP38W_Kl+Whi^h z#0U~?9)uZ9;zw)io6vXnNWaPEcNHU8^U|>bfmsjJh8dMoCTlk)(l_xyr*Y=_@iA=b zgCTB=Ad&7N|0Zr5qwOzwjT1SO;>@hG!q~EQfeI3s^(I4@vF!IL+RI+F4_4SW+x%{G zCpK@-4Fw}eR9hToxFRQLxffE6)o)grx6?IY*Gi^Vk-)67rNWF{%cp7|gNg8uUZl)h z-atKf`)jrQ+fbuat94pLX|WqPc1K$^|K=8@Zu=hUp6l@nMzBlZzRCZCTW%^X5B5~6 z{ZU3BFl*kfP$QRXyY{pKeY$_WxvVU28LYk>@W6)=Byiv4XS|YMDf8}kRI`N#n@C{R z@7qF+?`v+;Dqf>+Nufs#ia&U8o5hQSL=AHV=LM7*rO-jtzAc4TFag#!g{sZE*aXo0S z^>0~Gxp;G%yIIXxh7lxiZ{}`r^_;ui%(1>9d4~xEW{nC9H74KtRom#M8fjO&OZ<7) zIBk! zAc1?c%QY-;j(K`QE%yDc!UBO=ZZ*^>GIoJBA_x7?&*j-*j(FaQ6)SSg#0V0&Z@OIS zpv&g=+1*)-0HLPxNo{#nb-?6?a5B8 zQI|jk3Czk+C)7v@ov$5QL;dQq_mcV3!v?Hni>C@kkofyXsL}49nOgB5Xg}}Y>$>^) zNi~+MP&O3_%xW|{)Oav+j&`{i5v5w5Q}*Vos&-$WTb))T)aYJdx0cR#70&fsg>y@^ zRjv*1l-C!UsogKfE6!P`D*}Q0rpxv2O%8Qw&8BKXN*RH`tl)g1Mz@klT3mPfblV-u zrmid1QtdVPfe#}{;J(S9y%YVd>Z@N@JsS~hB7s?(a)uhc2JF`!W}^lk6^?KvgKfJ=&Bx8@8Z zNZ{V=a<#3$N15`~Ol3>AAc4TFT(`Z()NOk-W#&0vqeY6Qy2y**tl!w3?%H@jR{ z%>(Y9Yd8Ax-y13rn6+Y;*Jylqn-&~FHO7~Y^W|>2#_aWb6vGG-xHr38g@@NOlhWQc zZx#y_2+S%x+iUEO+o)wJOP|&9Nz2TmJHKPC3fE#7K?3(?mupwAGv?mArP=eY@yPc72=%%BS_%B$%(NAS&p6td)X~eK?1XO4C3!&LA*BXDjhkWyw1Qr zj<3k_C;qEo1c^+Qc;6kgM63Lgj_0bDhUMFrn|ZPoR*}H0i4VNS;RSKpog+jn(HAKb z*j?r2+4gG6daqHX$wBR6@2mRotzP5R!2{YL?^QUTOr2re(j!X3vrKB+e#)2iSe8A! zA`sXy#53E@Iqxe%$Fa|zhsMx5f6%3nI`pp^>YR)53P$jCasTJfDLPSAy;HKXT9bDl zBrvP~6tB_Y?0K#C82S%(?N&uy(Yd;+4|?Fk2okve^L2Qq`>X3BimRpj1e-`;*1Bx`zX zqP^BE^j2y0Y=iP%ZO$-)1a=I*f5e?pUi9m%e4_;k1ZI_O=rzLkoYX$-ILmAF@7Guv zUwuwMoohoFMv%ac!H*xO*SM#*IPY^M4HXE?YL?$?th;HYP80-2T&`vg|&&qq|ocXTVH>_cvS_~sd;Qr4& z>c_8G&)2!x{rJKHfmxxKJjVOm`?Pl<)Zr$#$j?TsslpZ(I%Z-73Ecl(uF5+qvaR(i zve0j11p>1&ALXk-^RjGj2DBI$p zwt5wHpJ%S-YSBwM)rv6>d>BCjdyLC9==-*6{b{Mxm!ZKX5}0)(r`LFUJwjbEA=K?1vy%eAO_4K>yKJ<5 z$c|EK{ejH{mpeZW|^lFq8LVyz^=qC_0TGF zbgHf9)?9%Cfmw$<9wYFV>sq$H^jY=p>|%kP|1@9ZuEj8d1a>92vYvM7U&AzJnPoge5##fy+iObC<`yDeef&}&$-gjF!W_pXP?1^8jKwwsUfXB!c zc0~*Qfxf$owlrhMYUg3)Q--)Pf&_LYzSpj7!(P5f&1QEFRFJ@|Plm_1^74u{yfE#9 z9UIqS*>^uSdoM_>Vgw27N-kHvy%pG+UE9pG-xe1L%YK?3(?eop4QM~X6JynB4(Ac4TFh5bB6 z{KNO!om5n#^uZsL=24A&V{Z&$7(oK}W`6b~u8jMR>%DLCjiCa8S&iy=j2cbeX&G+Q zbpy|%FtcHq;buZ|6vGG-xHt3jaQzOL%X`i=N0ki}2+Z1&&SR{4^;X-wklshGOF7x7 zBZthPezh1zkifl}|4y7*fnBPz&wRGCus~o|?86YF)2uhzwQbaW%B3`62QH+TzZW}Z zVgw1?H~Dkb&h}uH+~-WSc&tER)}u=y#+XB|wM>!p-OV?sHw!;?$DDb8h#MnF;NI+V zHNPLiX1CsBw(A(EAc0xeZ-p3{i@wncH=^HHe=lv!`ix&~#?4QyVgw1?n_aF8LH_J< z;c&CNUvYuJtmB_Tj9e?;YGW@__nEOFEt@twhdHKBdle%{?Bi>I-fMPC8$X8j^Yg{d zn$P}d<15<8D-f7%HSmrtj39x(qWIaU&riQd;ZMIn0<*AJ z@^ku?TB*Mmd#Zfm=fW|91olUM9K6v_-KLCEroSztICsij(6K+Zo$WF5|CveuCKG*k zPcG}P9vVDZnai(|VFU^6eEfKxx4)V$vZ?Z#UnN5Vvr0|n{&6Rh-s(SBYtXif`mV|k z%G;JNO^hIcy^^0pp4v#=-s7%&|GWGQ3CyY%;W18(&7?mnOTFZe2D#PVYeu`vwrtKY zf&}(TzSq8ftXwUJcbh*+i zivk)}`pfrQu3-X!S*22WjFI&+>Syy&jbd9TnP2_T%>3hB6vGG-*ehMGevhy6HSgP- z*INY&1ZI^u5n{BC%b*XsNHsQ{EXooeOf#b^*J2n!0(&L@oj5jtoj52#R>#w6`dbq{F^<4 zer^pN&r?+xz)Ge}H#L5h3?oQjuXMRa~Xv|CS7_%j#Xf>HE2Kae=_BCkH}|+%q!hO~0YOn{!)67WByL zd*7nHiV-BRSMq1X=RIexY7!7|G}0>&m{t4F5TilyjQaBws*xpcMKiMAFYZ4l#;O=W z0y`hS`g$(NSGL`4cfOp%1Ol_1XP{G0#3!X=1PSbX+;L#lX(TYqxqp}52i}c~5hSoz z@;f=;$wo+E7WPV)t3yPP`l0)B#rQp5=%Pqqf8@PAAXa@?JITHENg2ht3;KeN{c+Gp zk8xvb9)0hB=Y6Ui{7G#edC#r#-@6z=0z03}wX)h^l~pL~ZsiR&k-)49L-_CA&3W{H z-_t($G$>H5dcCRpzUQTh5hSoz@^gLRP1L@nRwf?)ssKX*vvzj!7|T}Y(Pu|fFBx$* zw;I3nS>nmQ%^60Jz+TDkzbcucv^u`R*JezRKw#G8QXZrB{5*QAk#t9j|H4v=cik!9 zg37TBBS>Jcbh*9{Jid3M`OcSEV3%3|HnXqz^oVBLyXk}^XNqj(r2}Bayiy?L|JokrCJOlNMNtz_Z0n7 zj~&aF+I+pIus~qevDqO;kBB^a)2j48KYuZV4ck)8G>RTGF@gkkK7Q5mUJNTz{J8H) z!B~O7th}Q_j8xt{`p{?eo4Uuwp{$kp#`o#T5I07Uz+TDkHjEt1N-WTP$NBGFBrt38 zq!6QTSRQ@WG5TH7d4Fd%=0Ypq>s9<*A4HJAUdhiucB;qjzMdSws`7JvKw#F~4I#$t z0eSRyZRj_(Cr>8!$IB-HXCvFI7(oJiCBIiKPqG;wy3}1|IA3WTUJJ7l?t~Z}$K=uH zm#2Q^j`A~$EjZ|IwlP-42ol)&c;Bs?+cz)zsk?T8VFH0!_WBlg8dD8i1p^~UVCUmo zRU}ENoFS+3?yFE03Cwb4Gw8E=&7Uau`tuXzFoJ~GMQNI&1Al7WX8zPVBrpqmB|k^D zrH|V6;`hq=8}ULHMFRUHzZ>^Nth#Of6kq;_WfW(^<-Cslu_rf{UFVDH#%TKPR!Tig zeV?|IuRp)SixDKS^SNBv1`bpU)_(8%Dl*ta0<+4F_ZW@u7uCmB`0uw**BH3hLA%R(0`B}C1m5S+w;;3I0^5jtOr%hvy?$w-O1PSbw zd<})oH2~mx8IckMo4Fcg;#9F638uF@gkkK9?(D!$4ND?ojuK{ILRoSvO~f7`5t@(9;#A z?{2s@oOMX;@BZfH5I07Uz|P0_s3!y2vEI+!1-l0-NMKg&1tG@85+(G4ALuuA{+pec zH=XH@UY%OS2ol)&_|%q9W21ZLRW6k;E)bY?Co#l`JzHEKF@b(l7r2p*wcPZVyG76T zDn^jNUdivXEPc?-Tsxmqx2IPiFe~bLh!NSYxL!1n`qjOqnaz|8pWGQ|#HtuU0y`gn zYQ&ULiROKm()QUZ*F1PSbX{0i2U6Uu?T>)iFOc?ANq z?76$)DfC$_<4+5H`T1#~7(qhpqNVv0Ni*;#lIG`6Bt-(VuvhY{;Vq)oC%Fp*{Kc>Q zU<3*5kNjBs{Qz}vaFm&kU)y%37tiU~AG7-SQ%~aoV5<|Csy!w3@CD_yR=uZ}B?*F~Ch zj39x)tW;i)QDSu^{oOUXll;);w{AV5sJZ9%5QY&XuvhY5WJV2N^L-zD^9~Ia2+S(S z&%^b-Sy?ZqA4`E%Mf47(oJirOUNvd_CqGpGNtIU)x3kvlib7FPt5Mca0_Sqj{=GC#6ok_9{k@z+UNco!!38 z%#o_A(x|RiATVoragXs=?kc)Ap88eJ^(nrX>;;wiJ!4gjAc4J-pMku7+yAdt>6CIu zhYAE{Rd41oUe&0qkB_4ow0hm^jEmj(!eUg6Ac38a|Aw1;MoHMZFkrjSD-f9F%v4hi znvlN2p9CGwp9GB&B(PWV6^{7RrYG~KO&{k^Z$$#LuvhZCyjw)5w{zz+SMz&{FoFd3 zM}F}>cpj@Cs9lgs5>WMdFL)El351GI4EAALU0z03} zm9cm?HC4)8vwc{wi3DbKPv%Xp z^9(>>)-BUxEcrJ;fAcR*B9)o3+udkVO>;57;*Jp{uvhZ$Ri<&iKfZh78|@n^5SXP+ z|A;|L&&vvpg5aC^`8ZjYweD9)3044A%AM8>zSdcAy)p z*=(MYm0xkk2ol)&_=MZFAeO;*P^rtWxFdmCKbG?t(QkF#FO$?xpX(wznTd`EfCuec+DS-Y!xj9c4vz1k1-n>zjaAJ})V_bYe#6?cpvfxVL7 zL07I6OIzuLQiWe}M*_3PxAGX?wVJ-*4E6T&r&7#sOU+ZFtG8D%f&}(Tem?QoV)OWq zQI4e=YTPzdjp$i&zC^fAd%sBS>Jcbh%zEd=)S@YZ@hq4HXE? za@I1X8n`kkMv%bHC$4^q1ZFwU%b*(c^ozL9Px;3P64)!nCu|^rS=cMNu^7G7fHjNE zjhEtuE{X*9M{e7NTd5DOe9e-cmQn1djugIsM#uhmf3VjWx}lz)|26f*y&u}DRmW#! zuKo{v7(oI%A78PsPXkpsmz(|0?`J>)v&!}N8lT?Q)4MLAeK4p-4fRaBv@Dw6&wvpm zu=DZnRoMdS;OKO$(3AWO3CtSa*=zKuP+xzOi+V|_m>bIQJ||6Ijphs^NMNsYxsKhO zqeP|NVP2~rBoLStSj}rJF4R!pTAX^~FV&*mk0K0n_~juCBS>K91XQghTS_~sdVCQqWru8q+GFCdMK9#w&D-KJdi>H%zd4h>yTx;L zVAldOsO$Ot3>ZNIJ0G9m8QGA%xsglV!_V&`fmwBSdyFx9GyPRK{ia@>zY2RiAeB0r z-_L*%B(PWVdx{3-V*jjnsZGBtE)bZt^F055+;5_Hct^c`+Nk3u>*P~f)oQO|1PSbw zE?0cvG3KbAE0x_pcm)Ep&i>;uHa=>kzyGhd*U1v-dvd3?GOJUpiV-BR^YOC=?Hapt z2fcLNG}>z|P0-p?`c>sZr~1U&=YJiUejk&qAUaqd%|UvYW5q zf)OOdE{ac2LISg}SMv9vwpRab_sINoEneuNNML{DPeS;irW!f5JnQtPjN&{|>Wq&4 zvH3@@@o0EceQjy_?i#=NtHV#1WqG3?_%MP5c0PXHd3ss3Z}#e}M{ux-1ZGA2?KNg! zYN|iEK>J{H=R#`l$3^)4gD*{tAc4Ko<*Jc6wYvIxA=dlP{0s@q>UPg->}}FqAJdq6 zNseN>l}3S2%`8otGmIdCy^>!AI2xs_czn#992O)HnDuXx*Dx2i)a!Pp>Hgc%&jV^^ zX<&9q70WP!1oldo>tVKizUn(x`krSTCJ>ladV$yYvu_(cv=-Hc_&m={qD zBS>Jc4ipH?3K`%v{`k~R&+(ROoNbna_0N7>`MZ2Ah7lyNSGrtN z59Vjjx_(d&>@O@3nDu*iub~Xf!e@Ac0vK zI`X-hzdGonex={k-}5Ps58;K>lM7R;7(oJiB|qb}>AksD&#MkBSzI76YiN|$Xw|;G zo>GDOZv4G9X7B0Om6}c3s~AB7dnNy$S8iz@?7LHG;qeLtX6>5gHOlxfm#2S z2sOHRyXzhO>9f+WeK0@0f2Vxp_mN=)3G9{JSZ1eYS%>9OOZoVD26!#ZTAeG@*jXS@ zAJdwSgRkp<%T8shq(0`qcQJwlc0QM@{E<9tPLUt@@5ESvz^tD$g&OgBdg|M=(s#G@ z?eEwDzlN&DXO}R71oldP4*5=IcA|1K^(F7SNMKfxZ$gbjD+BdokLY(v>X?7c`0mxz zS}Rkl7(oJiCEq_99X9JtDXpHaTwEY9D}7P^|2WxQuP}gqQ=dOS+H6+iwUR5ey^0Ye zuvhY#{lmNhfm!q1{J91NyXt3}QolN!p+KFpd;FCqYhzW6Ac4KoQ2%)(yD?_o(*SWUIM8VkM^FLY5Pus`xE zasND0*01T#Ci43k@Tol5A7j)o~qUSHBH2 z;(B)1^IxH-axHk5$ro0qo|&p(EW-#A*em&Yh6XQu%bNuFmcAV-5SW#YKe?sa{hqqM zgKC_QA7x%#*HgLmDvDtQ3G96QZo_XEn2i=BDi6yC3It~T@;uZilQmd>7)_tm>_+Fz zQQ_aHlS5U-6fDcXW3(^{XLnj39x% zl3!iQbJpyAtf%VF?`J>)v(n!VH8u?M=p71E-yL7YXYM^(Urkw)TE&P!2wgPS%ZcWS zl$vUArQ!mC9d+lEP$POsux_rS-_)0iRWS?ym0BI`;pZ73f&}(Te&l>K-{+T@ta!cr zJOdDzwaFD`q?;I|_ZUO{YGT9m?&E*gRubpOsu)26d!@^jq3==m?~j+eYyLG|3UP`eIdClZyF)Buoz|P0-#d$kTY0zn|S?@QmKwy^mtgxz|SJlnSSJlM`5@Hv{ zCt4$cS=cN2^^Xvj`m{|G7I!6H=%Pqqf8?Llyprs;S5uq*yVAWhA=0=p*rzR+|D)b$ zU!-wnN21oHe`Ebw!zklV&nYcizQ+9jadK8AcE4-|wdKa43PzBy*B`XjykFhn2bR>e zkox3~_g~vk6Ujjs9&Lve8r0sa5##10zV-Ye86R-e-;I%9^)$rTFn@ zAt8ZTONvAr?6cUZZq{P?n~aSMl-doESmEUJJrn^L|k9U=|fwQ1RzAkie|t!=jBj zMozuw<(9n0;tf$OX5&mv<2Bky6F%$neX*4@8i#*MhLtysy*0E<5zJFw4z<`yhc?d8KWkd21^@ZdPYrO_0QEiIZ?Qt;ce`CATX=Qgg%C6WOsdIxgNa6mJu&~h5AIY6}$#Ukg%W2X{~v`eqm-`Z~Z5B zmd{NffmzG>R!0+d*&;REbLBd`O!dmmb;ll-r*FTD7<=-nLFw6d} z?P}Va*CX*7=;leY~QigyvK9;NMM$IHmd3aFRu~I&tKi<=dYge^H&%_ z!akQ}t$F|5=j*ix`1M*OFw4HuuzOAzuW^cBoA|`9O}O~1B}S02uTxlS-p78v7bgeb z&ym0^`zrFjR(*I4y6)`$eBBu%NZ8k)tu^oIKFfih@3TY#v+O&B#-@wpHRztAJD=|< z!Uz)f{YBQA_jnII5}0M*{n>A66t98zi(&)```%G&&HKOkd{hdbkJ`fbb0jd!zO(Bng!^_X8|toSpbY6Vb29vYu@ARD-xJxPi;+K){ob~IWLSLVb6S7Yu@8?4UoVr zdm^`4(*e8&&hTOc345N`TJs*Cs)7V&+0RQkmSG^TflqG12om;FT&y+k@!3>JV3z&V zsYYxNuW_G0|7sY2{?%OGuP}my{VXhN&HF$3)AyEte)=8~m}Ng#?`qc}yaqnu4}Lv}?L3s%xcd3& z#w+>LjWL3Rvlhe%PW)!RcE6cEL_P7mj6h&k&70vy{T$1*=4pm=;%t_z05g@z%1Jn zjXGm_4ViON1PR*>tu^mu&PfDj*`C-p?>JsV=A0Bk!gfPz&3l=15`kH^CvN$JYRH_E zB1qV7XsvlKb50^K%l5<(8^`k+GUucS61E#!Yu?M8lL*YR&2mHN1YSetoD@OAc0+5; zdzo_*fmyaEzO6lx*N{0UMUb%F&|33e=A1-emhFkvb5G(mWX?$uBy2ad*1VTFClQ!s zd*Z8CR72*R6hXpvLu<`@nR60>S+*y(IyRZtkU1wskg(m*TJv7!oJ3%jZI+X!PvJFW z&Pfp@Y&W#lyq7sA5twD0<((g=@)|PdqzDqW8(M4L%bb%4%(6YPeV%E&hRiuBf`sjc z)|&S+=OhBNY)`EHf@;W|lOjmiZfLD}FLO>JFw6EtC3!lpA#+ZOAYr?qwdTFdIf=k5 z+Y?8un!#(xoRcC**luX8c`tKLA~4JL#FvpXc@3F!QUnRx4XrirWzIJ zFw6GDz0K$F8Zzgk2okm%T5I0RoRbL5vOO_drn$U^%sDB7gzbjbn)fp2Bm%Q+Pi%08 zYRH_EB1qV7XsvlKb50^K%l5?8tLE_CjRlL*YR&9c;} z#hj2iCq9-LhhW)z#vzA zxz3qk3cYigb5aCf*KxyNIU#dSA~4HwPTDHDbFL5w#|>9wo2}tD+R)KLu<`@xpS`kVvv;OI49MRJEut4ZfLD}FL%zB zUksA69OtBWE_cp2fpFY#H7DfG83zWrT6dgt6({7*xk?}$H(bLBxpS@pgIuFK&PiJ( zch1!U;ke;iPRN~eH5lYt-FD6zxoN9p&Pfq`UB?aMIU#dSA~4HwPO2eyPLXijkZQ=C za}5||yzV$By>q#9t`!K!4cBo(?wo7EAlK=RbJAAHoikn_95-Cg3AuB|gF&v>9p|L2 zk~`-*fw0}sTJv7+oa??ABxO0yNn0g%&h-M}xZy@l$enXN801FXaZaiscTSOT+>mO> zopU`H&0vsQVUCGv$emLp z959O75Jy1j2E{J)Dp`=PoeFJ-XwZv{iEF+$|7}8}8+V+&OoHLGINZ=cKKY zJLevOaNIC~6LRO=0|uF(JI+Zp6;kY5Kc`tX) zy6#IhjB>Ho2b@a_3}Vko$GVIcclp&bdz@9Oq2pgxopzfk7sLbJAAH zopZlHIL>*16LRO=4+ePvoRhXn?wm;i;W+0(PRN}z37qpFI49MRJEurE&Pg@o&Y1)T zc@UhF-nra44+w%A#+Y5Fw1eyL!6L1 z=OKY`+>qA1mpkVnFvug|oU~PP=R7PBj!horgxom~gL59$9p|JPa_1BY$2qBn+&K?} zK^_I?q<1cN&LaZhIOj1=$er^D800Z54$2pI4LhhVL!61)=bJAAHo%5JL zIL>*36LRM~1_pTooRhXn?wrR3!gfw;&3n0X9{=K;lw~_-oflL?=A0D4*LB?RBqwCf zNd#s&&PnfF?wltC!m&x3&Xhan2{6c0y5pR*RdVM%DG-huCUfG%mQ-p?!goyTlArlC zjxwsfjMD-)U(d^-Gj-XWmY2PDTE=Yw3|L{(tRF??3d@a8{Z>)1^wY z8`_2+HV{0#t0J0y!McEEBRL4;6yv` zcj~J$^;z(P3H-=dLj>(g=9;^M8>#vm%WJBW7#4 z`uzV^oqU>3Jv6){`}Nl10IY#TpI4E_kd_OzNegMKidM>|vO29N@?|^;heCRTf1U`_oO( zM!dVO;}#~hi7@VL8mm?L?|(i}9jzSCI*^@P-_?x~Br@cVFcu|_{`~*={`nGR#n!&8 z$i-akdY&kRB z(5jEpmS(uF&%79JR2V-}8(NZoR@1_bJXuG6-l~V+R`WH;8_BXS*kNJ>iOT#A(|i3! zYA?%Bjp~g@B<>FE&w?Ay69~)_Ki$eXb_M)CJ&J`UZWKN%Bz~*b#~2tqQaj&@YE+*6 zgS&c4G%K|?P9QJ~|Nnd+O#Oq|s#+jxv+9<)`b?OSI(eLyf9o~9#^W&K{l~G|MBg?2 zkCS1>l6_-7zjObNHO=Y$gIKE8S4@l`5uZEU*tBGf_Wlg@_Lo!gnnB4CtYGCe0)bih z8S=GE3n%;5#e3Q6ZO4Vr3W@I1!;LiRD2=73cRnG{0^f!%;jG%VeFA}5_@Cu&Fl2^# z?P*UId?~@yvxgb$j!ypX9hNN>X5?BvRr?tH|L=VHw0`FGDIM9Fi!X%tfkd^%VTLPm zf|h$Bz4OF;ZOntIyR)aSe-{YM!cUz);jhy&Gt2d6Z1PW^%yOSXjRohXYp2^>(>s3? zW;}T_P5Za=H66Fs=W`t+Hm_2@xcbvWZ9v)!u}Y-h`V z1Ol`0J@Nlw_y+Sx!-}k8wGs^1pl=ZtYOFjs@4sWXxE{S{&~|f2jnZt_oYD*|`}aoWt= zHaDAIuNuP$61Xllf6C3iQ|7L`McKU$r3C`Ba0~fUBV38*yFUxFBZDe3j3D7_7;2m! zyGUF2fqs`vh}dl&izv=YR4OkJm?ggRf4{zMs{J3CXExMlxXSIw5nf|Tl`UG8iC6W( zHN8f?$Q_^GdBv)~nfo{WY34{v=P0#tbay0Jrd2A@R)_uhH$;YE4a`8naTJH_x`t!VXWXEfAQ6|5<*XdS@zD zW5Qi?R=At><iq0rqt)in=i|+*)ja<_O?P+OgIb~TSM@d5Jx2JoY4`$C!Wnx~8A{A6I7`7sd1c@da$fZm|Wy#zKYLxx29t0Z~zu zG&wr#!tUE#*Aco4)BNjTU%MD}n)BpWcq{J9)d{$LHAE3WY1`@V=na+Q^ zOncO}qvmxo&W1o29yh+i#>1(a-xPmsA7A4a6(n%)RDM6Nxlp^2(nouJEY5~Nm+krZ z{SvCD4^N4$qHRM=&{BIW%%Mvb3m{7Zc2UXK>4 zCF!=|TdScq8AwbxZ=pp?-8DYBtY=t$)>Ut%oi@DBGt7oSS5dy3c_y#O-idGG$fKK8 zxARlg9e?_=3caG}$-3u_D;uSoTJrVU&i{A8xS#)u@EGzH9geM3f8HOi7T<1rbdkWl zzWI)~T^Ff`(<9Z}@o_fi16_Ee`7V|AxyU}>x2ki^X3VKe6!jW^Q(S!>@>TuDJN~^A z?M;oMGp?O5`UdO2+Obt1se6~aQ$MRMS?h06bYW|&u_3>{j@-%DggbuBI5;ZZgfzd` zIz3R+{T{1J_O)fGAn{^L6m8i4xbcSA|NKzDd+MAE_f&ISI~xLBwx7!W^?B9nadnb? zza|@eHkw`^y-l>EW_v_SQ@9~RAcE@Ko=ener4EMR$cNclFWR2*5+6t(bYGWo_(>x zxHUu1I3LwWHID2}{10BYA<*SmI+m6^veKBqD%8TPO4YmaPoTgV;cfpcs6-| z$qcu&9`^>2$x~)%6ZVOLM;D1} zKV#|Voy(19J@m@!#;x*(%{vmv^kX}12z23hfsY(W3(#tGPbNE7q-a~q#?xO{))?J+ z-%I9`IQp~CYNLf$@dcj7(K%gL%Wp~Jsr9wvQ)`UW!`f4;j2Y|Qr^gTdf@YVV|CtZ zq$uR#49(DR0EzdXVL%0m+9TuX@e3PdZ&Z^R>$HbQlgRb~1FT4(>rqNPb$YeIct!Lr z{V-kD*37dIN z>LDc1g~yGr@HeOo+jz*AH2E>c@Opm&{or9W*5*CUb+#watUhVR$0zQZY};|$w-g&1 z<4>}3#~V;VqSDd?+HTxIV^iLL&G*6DU7V%%3?L(818fL%;W6YZF8Y>bON;rEn1vH< zJ{9Ku|GRBHgZFGR-m^{go^4c+=u|F|_WXTPo{y$AtFeTltx0HwzG+CH>$H|Y3w=p5 zHci)mgAU0h8F6n+9yngrqAn)T^Suum)A-wkf_$Z^;)m0WMF-z8RVklH+derduO*9) zU)7TRf2nS7DZBDAf%YxB*VxLOZmM*RAD`R?fdyf394*zYT zE#JN{Hfr?1G`n~db?W*`wAPE)yL(f9ivQ=UY%U5W4xf*!zou?eQ9)wI1q+=tB}*Qw z+>bhw%ZAx%1kXSMU0wJ-iVq9rHR;)kvc@fv9Dg-l&E^@XAaQsZ-`%lCUen*V84j;Q zNQSeU$Up*JEY?CF)GH=4+IYs3$&>PlcA$d9wy_rawnH(QLDokQhf)mxd6|B!kU-bk z6;agnxwp)4IoXWFH7d{a3{;Sq!&jSb`(Im`(Q#oV@_1xrrvC$c)=gc}aiQHX;KR zBpPpure)U$%8Z%cZmXB`wGzh)33N57A48ii43-&H-L9(@^8|?uRFLS@EQa1_*g5KmuLe zVq)narH9P;xZ6#w{VZ0Tb5xLM8y`#W%?Xzo#ytxSCo4yYb|8VS&?0d(X;Dtb(LF^C zvr-b7{u@LEi87pcRWm|n6iIDu%|Aavv;zrrRoE3r_aBLn?fA#(xOGibf;d*FAhGh_ zI65#eryaz-o<{!(5gACJt7oTp+HX|O`54=yuXgI6C~>S%LE>clcpA%BNc($jKmN~L z?c;#XA_EC@mClT(*$=wQcJy@Gr7h|aE;3L-V$hR#>O8xf%qSCnLHk{?tvDY@psVSK z1lsarpv;&&^_>=~br2b-AaOD=ftE_^EHh?Iwqq|JdWd!)fv&GgBE5deUuMkMSc2IX zRK+<*1&NRR-X68zPi9oSUydy)QbS}Qfvyt+5^2YUZDq!yf9kOPYio*jpn}BU-h6e+ zwQXcZcBA_2Y9U8)tdKxgNO~gGVvRDx+|kUOvK&PQDo9j3nMk{@CNkq*6%$KZ@LXKm zkwDi4wr`Q2P6GEhNcqCd|VT32RNi0j6pBl?OAB+wN+HHp4{Rb6J(X%)j_x3m)(s35Vj ze-drJt-8#J>=e$nHn=IC8IVBNoFz$g`1W!#!;~+PrS+d`)$bpuATe!h5-qZ^oXmLj zFoHd(HOEW84ejh{y31xT^-M_eq%y{D%#&WeSqUsq) zpeu&AT8H*vl>~{O~xDfdslvlO$^P{3f4w zAB6Q}pDb%c1}aEQs+B|&yMC9?yG`c#u$FC@$Uwrz^)-j-@02XThSjMhGLS%5?#&6b z;gfwbqtw=tjIRz)^kanz5?HtKT`)2~Y1^{BLO-iqm8G}ae(b%&v(GFCQz#a=l>FhH`Thq3y$Up*J zfiL6e2)Hg_*)c1`_CsXcb4x7h0BcK6+iWmTZ$C zjuk3M6y&{lAKt8x->Wy3JEm=X9w9Q2Kv%g{v9yd&PDcAm-@VFBNfhls1&J))TRX@t zXLMV`-VY4{wZlaQ66o6TJBFU^y;8Pg?(!Pyyh?FIf4)KmiNn1AI$z^8vK`J{W7O<2 z-9!cw=nCMy&K=sVml-q0%vGnB>LZR7DoFI_ec{KmHp+~XpSG)+XZ=J566h*$KAPUY zw@qeTxp_q`xG+d$pn^o%ThVlJ?;SFu)!CQo&_PC`*B?lr>$oYJW_>;&GY%KXLjoVQ z5gDi;F~L8Y7HY}+fW&CSs6vH_eV=-w9Y~<7{)s5sBIuONXgH$^+1#d)$Up^&o;RXs z&E98Z#>;m#$lT1bA_EC@?GK8gUyk3D8EZaxkR1&wi0>6DNaT-+qG@Aq%Z%yEni1#W zipW3$UD%JpM_C;9AxR|_(GFCQz`hejsq?L`wzSb;vUk}ro4!}`PuV^&mBuS-!YA-R z(xxvRNtW{rB+!MwF8=*B|1l)GB% z?NE_{3KF*OKjuVERF9?%6zxC)UHI$b?`sb&Q?vb(#j!#K34F7~_XgZ~R-LpZTC@WR zbm6Z{Q68>+pvL{|EizC+V)9Ks>WS`<{fT#T=O#bfb{82)pbLLpit>4JVUk(DlgK~? ziR*sRG?z=7%$Qf98ackMmB>H>UHI!#l*}cyNHuSR$Up^&nb)J}6z?-KV@7^2a?q`= z$Up*J`0L{P#CcOvcUN_hfeI2%(NQ#C+-;e$$gd;0>sL%eL1Zc)y{!K} zP(fl^F+Pf*bQ5gACJ3wu2IUX9uP$pX)5A_Em9mZkFDnnUxN{*FDb-eMSea@9-Kf9FV`3wu2I z`1X+DWI%UEk%0;lRj7QewQ9K|fYVpbL9E`P{y%Ddh5e`-9?I0)4DV zTu$Nb=vhH#>>r&%dVJNadItV2bYYJtzb1AXPD+Os*7OWikXSI=LU;9cmKpAQ29u|r zv6`NN1iG-tQ&BFz?oXT!OcNQXATf}Srt+&%UuHxXizkQO4~h&V(1ksoigMg)At@6s zY5MmH6(rVux6m1h&16R3b7AD%x}TbU&XGVD_IUE0Hu49NH#PFIsyqV~B;K}*qV+16 zWQM7}4;kcCf$7Hz33OqPCm(B2nG*MB)tTN7RFK&FFCX>vy{*jHy}S`|e$+%{Ab~FI z@#NJ+bS-kVzk%uJ92F$;^1j!@kNssvjhSW1oC>}o0||6tkEfzs?^T#2cJ3rHP(fnx z#%NkN~BA+5SiikHkfT}YcI|R z66nGnPhL$F?!i0?yc72*RFKHeccLl#q^ZoP^Khey2h`ydiF zF6i;(zjOB#_N&=UgMN>~-cuxMjYy&s78a2iTC?G-IdxI>3?$HnJ)V3NQi~z1N^ECU z&p-uYaVer7D^!q3nwUuKci)g1tM3z5?WHTx&j%9d!X8h)o{WbF>tDg0=-(?;kgy$J z5@B*>U&06(I?|Rvm+csqey&a|Vx~&c%TLu%K?29KC`w}cYIA$x;L4Ta8yGAU0AX5XVJ3X)EY~gkb0vW7%E8Mh-NIQ2s32iG4%zKMJyP>tWs!jdy0Bv9a}=+*5|6Qk zLS?H02FXTw4x4Al# zQMs?F`uRWtU0AX5X9jz3l2&|&$Up^&x_c~iWzbKV@n}s1Q9jQX8AzZDD^^7*8qtZY zIUg@FP(i|FoQ0lM@|yn6CLjI8LYBR)Ei#Zm7gnr%{gRd4$gQQB2K`u}g2d1$3;pF* zOlIs}5=-hNS2IlK#|jB_Va3YVtXUgOJ~W6pq-UUl#I8OTst%|iGrsYW(I@}xwd&^s z33Oq_%IBZ=>_&bK%d+Yjs37rZFdw({ud~e9=hc_=xgM(N8AzZDD^^7r^0XuQchUe& z&p-uALzd!_+2(oO`oXWFUbqtXLJLc>A{Gd#l|d0~I9dJ?4EG&dp^;<9vSP z^psa30||6t#mdLSU1&~%TD=w-s32i#8bymLW|=Ydq$erpUzF*`3JG*!#mZ+7?5Ih0 zWjHeZSfPT1=dvhzA%8oWLGC$|wfWsd1`_DPik0tQ8&I6Qyi{Fepn^oXQqeSD`2d-b za-b0TF+^oEc{`9m7gnr_(%b#B`e0sDk%0;l6PHHQ8;)INM#&wI)W%IZhzumqg%vAb z!R)uDmO0-_WT1k?tGY2X{#3BcSUP2$`s;D1I95oY3oBMWE576e^?+M|$Up^&o@ZjH zseZW3nBAqlT8l)A3?$Hn6|16Hol2>$1A;^bDoDJI=I_-S_mCOmJ?9$ARfrWCNT3TV zR^H$4o$i%?N-(R-zgMUr5y@-kx94**l50j==Y{>vKmuJ@vGTQE)@W9xTX)e8RFGK0 zM>;L}5+U1he!4;P&Sw$rKmuJ@vGSE}KXlcUmz_lhDoAwV>oaIO!(_(t#O2zJy5S-N z33Oq_swlVWt=Fn|^br}TAkqJAJY85M=X-TO*Bz~ER)EMr0$o_K@^vO$?`ic<8AJvu zNMxlX(7;MvWILX3&d+A-G>Qx)(1jJNqJ+NA%TlM*5gDi;QQjeuuKeaNGc3;4S?Z?R zA_EC@Va3Yle=M!Ud_R^E8K@xPH8_!GA80Exlzz=w2k#Oh0||6t#mZN?Y0{8A>8*$i zRFEitH<3=CY?K*OYP4s@((lE!9SL+{#i}UzgUl@c-}B+qdoXL`ttr+2%v zd6~OK1`_DPid9iucKWe~i|75lM?sB@#0Cqm2fx*o8M`|6VP{fe|K6j3Ko?f5d_HHM zuFTQUNMxXb#G)BVw9CipG9x1(hUF=GLp(DefiA3A`Dl^a!E8{iNb$^o3KAL1lIZRo zz#>~;;`3e;zsx3&O>n%lO#;~bTtYo2zs-A%a zy0BtZl**gBuwG?asQSGY6(kl8;$w>1<(3&2F7iF%kIxVpNT3TVR$d#F^<$5oEEE~2 zAaTi@MAM3Ylh32Bi`uFybD(p8AzZDD^@-`vsXoS zyKy;EpJ$+ggzZd=5AnsA^Q0PN_Iz6cT{z1_UmN$6cF(mW>9^I5p@Ia?>`;_{S3gx% zc0?UM%b(#qTAY`R6_TP9vOH2B{If%S^ShJHJYghkXD=H@6eeS*9Z{?IGT0F4!U~D6 z2QcfSx~9fFb?V#B3>747=WV;rDNh{i7Kscb(1jHeUx6mdo@kGIhzwMact6!bhX;O_ z^H?6QtxlRLT}1{G=)ww#KbI)^$-kw`hzwMaDAvtFcZcRN{ax3tPA1fr# zg%uKC&+@-QWd5!>hAI45p@KwTgM}u(EGjcDRjNZ4eZS(RXCQ$ttdR8g28Bs>@q>r- z^MMKyLz`P@@`4I7<79AclCoi{RnI^IU05OUHJ!#6B6ew;ta=72NJRKr=<0?pGUK_q zCRsbBhNfpAfiA3&6s2mTd}KH>1DUb(Wo2?b&nS_B1iG+7;^Q(} z*pVq?VnqfjNUY-TQUiOnkQoz_N|ESx|A-7E(1jHee_uQ7otnSIVv&Ig5*d6PK#jRn zW?U?mkBn+|O=KW}F07Dvjgx*$E&h7H$Up^&?Zcz!%U3=!qjuT%YSjYYLVU<0MFuKJ?6AhrVHrJS#;(4_)IFiDA_EC@VTHt3V*7Hy@Va3kk%0;l zK7C?o*2i8l!;sJ05Ok)t$Up*JSRwIw+c6Pd=Zh5<8K@xfme*?aXZMyFx%+!q9q#?j zKmuJ@A@TJY`i!xjs^cg!P(i}`U>rTaBc~lx%Q$MC7yUg}NT3TVB)*C|0Y(9}U>pn}8)h0hq78!C@g=#iCL z->zjv1`_DP3Q19>ub8Ek+V)xeK2Sm8$$|trAvs89G+cB>tG?y$Zx9J|VTGh9r&{jN zF4n#;GEhO{OXWnGRtg%uJX@3ZEG_H5VMzwLmU42g1fNpxXhv&@+Gv?M#;aO>Z80D&&7 zka)k3U$(aF?ii7Q3KFL~C()1AW-=oyr83)6Y>dc20$o@kDN10zJZ$PmFOh)?60i77 zi!NvD$&Bs4UD$`qt|9{obYX?0C=tE|*@^6j;(m?_60Hv=(XYL0$P8b#Hq)Z#iDw2R z(1jHeUmN$XBfH)=ugE|J38%A3^!<@?GGo1K9k!Wm6VELmJLK`xo$kj?ut zE_GD(`ydkN!U~D^$>h(?>OX9w>g_-Ui48GHH0b?j`Mi6?u>z}`XMxB-0$o@kDN3Gs zKeVsECyESIka$)piS|r?Br{%?FTxxSFp+@-y0Ajx>pC}ks<~S>i40VbSY=J5*V+;b8K@v(JICF}*{Uu3d`-2_>dcTp7tXKe!8*Z~U z6%x3n7hkhKV}kn5nXee}w7(63F05YoitlX;s-1dvGwd{tV5lH*E675p-TER|9^Mo^ zL#?`KhsZzzU0A&+%Kj0>)FOxSiwsnd*j}BF9h{rn^mldR9Zlw{*K3(X1`_DP>V-eU z-7l#YToCG|w*wU<&g8Ms>I;j?43Fyb)h1=`cV>Z-^SZcN`uM#xJp&aahL*9=?l)Xy#wp)f>XnuY zMFtY+!s>;uEwai{9lwxR^$b*yU@iGd53Af|#`D#aRoAM|MFtY+!s>fv-NKV66nI} zh3`a@x;t&xxe_7+6(nXKjicR4`tI{0)u77DMLf8n>j&bAb~EdUKC}}+oRT*?6Jr| z1&RGMk5jr7>c4*QMe}}sTim0NKo?dod{?Wq!rJy88kkU$q!FN)&3vZ&U1X&Hll|3C$a!MAu_yWc@(4D2vnYgCJg z3?$Hn)e9f1_94G^bZuXefeI4l<-Csa`6!=vw|I}&re^0>^>!eEF05Yo7?!z;HgwS< zk%0;lMg5ZK>TdUCMoQoSE#kDB$Up*JSiSK1I8m>xUe6DT3{;Rvewj!&{yrx&8U+Mv z&04n;8AzZDs~0}Lz3K()zFFxa0~I8~6B6l<`G;giwZQY%iDPdY9<>?4kU$r%I;JS^ z@)tG~>)yip@4S&V>yaVRrF0@~xp6%Gk>VfDhFcdO6Wc;$6S|3#sK#Pf5JbpOko_ffp^ z(sx~d5H`p(1q0t-*KwlD2-QM;>v&u66^L^Xn~<^WCpLiti19P8AzZDs~0|>^QlGS zm6yms1&Km+qUiUT9b^WtysW(P5*bLK3#%7J;gy%hD=(3O3KG+HMbZ4za{9t~G%FD_tFOh)+y0CiTd$_&Kr}4^5WT1k? z_xI8C=(3!5EWGlv^2$rqe;-Jo3#%7J;gy$_S6(6m6(shrjG^5JS!6qSi40VbP>aRU z2C*?RgI8WHc;zKBkU$q!FMJ&G=c8V{@)8-SAdzu4j=mV2(+*yFdGX3iWFUbqtX_CK z@{Kj{%1dORg2d!e@pS3yNZAfvc^P=+B{Gme7gjHd!YeNWue?MCDo7lymq34C$a$~E zD=!1DyhH{P=)&rS_vtq&qVmd1WT1jX)vF2gibu}7R9<-*c;zL2A4s4Js~3LVH8fOt z;uYfyZQ$}2CCfeI3z z_a)I8TRde3ue?-Vd5H`p(1q2DqVUQ~<&~GXN1=kmx~wF+^?J^@3|@Juyz&wmNT3U= z7ru*9t=THCyhH{nNKA4`rZq-8%XaX}OXZc9xSu0|F05V@g;!oGue?N6gbEU;J(6kj z*E#Q_c;%(?%1b<#Ab~EdUig074)axBd5P){6(ow(Po^)t3(I!!%1h;ymw3KH0$o_W z@bB)zIV!Kbtorj6Do9K!luR?z?PUh9yi{I!S@rt|66nI}h0p)!FkR)9m&iZ`iTjt6 z=z{g{{o<4 z)F{f4jSsY~Oa9d=Jn3w+6AkWHggYPcmN$8+oqfJW)8AU+-$EBwNW5P(xERZGZNH|! z8ASz&lYabJbnzWImeb>Cw$|p?Xpw;gy0Ajx^HMK3vCp$+hzwMa7?mAK_jUOoGhVpo zVHL}IiVP&sg%uLt7rCJ`%Uz6$3{;RX9E+qKU2@6syZQSTWDl#|6K}(jKo?d>iZVW; z77MnV6>r>8L89#1NLnjbQJFFCi6dK9=}($|K9E2cR!Dq2oS_ao^yr^M`uRWwiLEOl z`J5jonNfAQBeSkHh_~TLpbIM`UTq()#Wq#lBi^{9f<(!^ku)Z&rp(B@umJloJ4<9B zfiA3&_;~8~&aA(+nRttg3KAL5BWb5)jbui|yS11&NW3qv`ZDIrEB| z9h#yg75gqSYzS~+g~Z){%;lOo6*ph;x9Y~-HDuQ#cmZT7n7^RUMOP){71@V`P)N zYO7tlLg$fegdCeK(VlOia70E}+ zxzy0~?-dg0!U~D6m*HQHv|rd)WT1k?z8^`n(YQ?cy!$J+9qH&3FEWro7gk98+PfvzO)B_@*qFl-itY-s33vopO1)72q1gQ-4pXtkwDk0qRI5R?|(Am_FN?KcQuO) zB+&JzUou^N+EHfg%LwA@Sr!x-s33vY6-6=l#1h{(!^QksB+ylNL^4ftC@(YE;$Skc z;IuS-t|cl+;PsKOVCEi667Ebk=<_*|Kv&+FWO}`^i_Dl+ygLcHenrf$MFk1G&hruR zBO}QLt&NzMiUhh|8Iq}5xuMKB)xI;y<I7Ppbt7P?3QO68LNz8Zj$fa1 zKAw-G+QVvHL(hSQuoi*V(oi~3?$Gs@xY#0()%d7X?J@Bc8K@wE{Q-PN z?(55Zr}54r0||7+*NmpVSv_TjSMKXt-7urbKm`fx*HDx;xpOm@cT{8`fv(vTqiDMq z!7_s!c3_{Z^+g6MNMQdAAI18+65BPlzR0j4pm!(_-}UYJs7^AYZ)SN`XlDhHfeQXz z>}OJx^aoAY-mPUs1`_C+%~yg}K6=ZH`K9Z#?#pxiZ3iewV1JpSoNnsPo}Kz3?jQKK z(6z8U-yttLXO+!vw+P$)=7zYoqk;tX`|&qFYl7JEu1sVgfv$X)BB^Jk#Do9}eB_Dx(yBBL-Z?woj0$pLtBB@<#SD6v;G>~09+(u-ef&})%D$0^&(JYs} zoyb4}U9%=c(gRLTGGoKh?yTRCW#X9u6(q1fnUCbS8p{@5YcdsSZzd{9x@H0_#(UEmBqs~nSw)jv> zk%0udNH|}?%zlAvN6UIov@5?nMLSSIqC*Vd3*z`9nejU4qBgHqpvXW1U8Z6&^qVRTHSeu*2tf(N7uT(ruO&goD+fBc6YW$mFV$EeF&^4@M9IbY2l+0)sc*Bs|;_rIl zs30+&6Q`Grk{Kk)(`)g?zw3n~fvyEJVrl8Zqh&_Kq9WFSK_kVQ%cvkRf)i;kb23H{ zd#y^^aIvm466kt!K87woJWghOJ?5^JKQv6N9gPYSn>nGTj+5<}baR5%RU06V6%y#e z?*d=tzw~l#PT78<9jG92t7r^8x^Ak>NX|T?mG~Yd+JOYR@Egik7;pMeJ9@B>Xa_1t z{2LZcD?OesGn}U8V#?ZXq8&(}3x8>R1a@{|MxS;P8K@w!@jw*yt(3DHRMDwb*{~9= z#Qp|IpbM`Uit?aTZT2Qz-bkPe??ikpB)-O0x7(LAeLZAUkoff^lFq8}US{~jC$Wcx)`+#dkw6#T zQTeLCX#-gLihE^J3gk)^viG$Up*J_+-GJ8EWv^4`m9A3{;SK zHaU_uzn8Ns;?8L)%uvx_)z^+j0$uooqbM6!jAYX%1vl5%Bu52_KI0?lyoye;9jo?@ zV1XyCV!d!A(1lNGd&<4ds2aH~<4eU0IJZu1QMTj;{dQc-e0FU*#H>LfByLE@@QG;LR~ zm&~{s^I2=WG+bmLfiA3&`J12I54E!=`-o$O3KIEweSUwlMP>}VuuE&57%$ET66nH8 zpTF&Uv`llX+E26t6(maVeuhE&V`WD7uyC!_s=?xXAb~FIvEaXtuI}1>HcVuof<#x| zUsAM6g3MSnd!4m!)(DY-1iG;2h0k_+K-LC-I zj!W6C$+>!!MFtY+!X9r$xqHKpgf%HGGEhO{@WLc|MQtlH1~(2S%ir6HV}%5|u;-rd zJ#erGdHm*`xPPF6#F1}FbkIzL%y?QehWrdXF7AU!pbOtX@ZWj!L^AKlHgO+B1&O?b zzsIT3P-ZNcIFQ7AA0_TlNT3Vfq$tYBLPN=)h|VGd6(s7#CeueAE;8du`4J>D;y;7F z-vkoq!Z$*EB%s|$(yaLmgMN=f1&MAcd<1r`@-idukrXoIxt6A9Ab~D?v!y6Le^Q7? z$(dpgH&l>t8<0#BPCCkr^GU-<{eI4xevd)|UHFEMuS}6=C<#5^S<~<5s338%Lo%Iq z$WCT#HS{C%UM>{RiAbOe-!$@>-VG9o%a?5;0~I8G72_j0$ba&Ace-z1vaVW&c&0`I zUHHb7zk}S`gLHLzFEUU;;@yEH+OFG8nepgRXY#yoA*P=XB+!L#eih}=2|qI1r!>=# z6)H#sw@ae;-H*zQp#g*}>FCPz=Mp5)g>SGGK@TP zXOH!0LOwk!M%)H(vmwxhS0Y8R_&4W!vi(ud@C;Ot7{hlTitFD-W)zF|Cux;Fi@nK_ zKo?$#_)bkfS`*XJD`Nk1RFHW0IEg;|;3YFE_6#G>?DvZdB+!LdB3?VM?nHb77l{m1 zkSO4mOe^hkml-AVM3JDii6R3Dbm5hVUrXwSka>?iLXlNWJ}F- zgT6O866nG!k)o`Mk09;J#T)cJ)=@#CV`MVjmQ_w>w4awq23|Oyrtjm91iJ7_#8=r2 zh#*COjkW3-s374TmQ34zaFiL(gW|}VHkCEK9Y~-HuSER!aWj}qYoTfpJOdRZCbUSV zh0EE?jJqj)$dAlfn%)j1(1lkbzB*;eP9(U;QjviQ64vY_x+OSM?(ghdw;TD{=aR@k z0$q3|;-e-#S`&{I*ERiEp@Kw}^+|N>m0L1n$*Q)*`*kj+w*v`u;gyJwVHwecT)CTz z=^3aX5z&l~1NePRW_Z+VOxjPaEHaQl7hZ`J<$z~ZVt3t1WT1k?iam++eXE@^BVThT z(zTce)6Y2)=sHk0kv3bOv&Z_FoB7ERt2@*84Mzous49tc%AeITBd)m}X_D7RWFUdA zrV|pV*Q>emO8srz1NFW;6&a`?v36Jj%{_R5%(xSCN{!DSERGct=yJXqPj5DvA~R|^ zY*53~JBVY23KA2~#?#)J(_}{Dv6EEe>As>JNT3UQhZUvQm@cYUVt0{&3KCgEmsBXj_Ahl2zd=-xsMREjUaYZ4W)vCi z&J5$Ki3}vrg}uXkrp47dO!-nov;!3+Zt~r^3L8(!jNE-%vwEKSLxDO(MF6KOfe;|P_>>XB==>H;EnMwYh z`h5@;B>M6`>XB=b=h56vkJph{aB%bgvQTo?QM-@#*Rnfto)+wA_EC@Vec@1 zrsh`#|9<;b{hXtMM3s6L>TyAp8HJ()SOfP=@w|%!y0CYcuSnWKWgm{b6B(!=F?E)O z=Be#1Gv41px8iGHk*Ko|B7^BU(=ZT6*MF`~Bv6(q{?IjZ~Sc9a>%Q(c+mKy8tM z1iG+ySWy-|FU9)v-OTjw6)H%?%#WfQZ+Dj&{fZZ1pT?O;Hg5+K=)&G%MR92IQ;Ybo z1<}trDoC7b7)^&f9T_kjeuuyZ#k%0;lZu4SjrN9`O;qlF1YmpT#GLS$Q_73x% zPx6=3wyp~m8K@x9n$JF4urp3(v^6iV)_$8HjujH>cKPWRs5?eE6FN{d-%0sGh<5@^Z&5i+CD&4T30 zeJV1LKo|B7^Hql`79`EI1|kC$B(Ud&k1t7cCVNKJ6B$UL3wvG^WzNVZFYbYDmq4eak@a?fi|_XUMf=M-PlkWTh=YQAv#{D&X!_i^$q%a++USI3NMOSF>q zbYMUjy*|p%^s}x#{X)a2rDq3I^%3^e@-vLO-VfkJ$=MdI=9z+NAKMQhE-mb7q9KfW zZs}ku5MfVU-NNXX*#V{(JNds~hS5Eaoj6f&>|?{mcCK3U%%NmUls#2ygwZ!+0!(u! z*waZR!{~*;0F%#Mds-nQjLx{ykrPw0veexT*Jx|P{mHdO_VieRFnV)+2h)yS_B0|p zlr~%EZ#rDafo?hzMt@Y%KUM0uw&Z;M>)It#rg~Jfrvtu*(#R=(rnOh?>E$<}G-5`3 z)9<7OcoS5acQk(V^wRh3QYW={h*^`hhc^D_mx*wfZedeM#b{7sV^+tUwkd(kRWJ8TP=a-HvvP2%}3Ddz;)^+EeBjPP>=#;lwT1++N`rngOgn9GC&({G9CreW28m_1qq)2YvHaU!$JX2TPohwAU@eMoHl zH}h!{LhBYxH=X+Y&D^tg2u-M;ZVLMI&77}k2yOCJUm36JZEu#*--+yLHN((lkR2Vc zJd|$ga@VwPwjC{UG?XrgyK4%WW5>slh0^~D>phTTD|Tl;bLAn{pG`f>e6*uSJB885 zC+?a$eY2w>p<%T4x&I~VJn&-|%%#cL!9E83yN#`O^f3RHgwOq7VoHO~tX6>{WTE{t zFHA?G-Ca9+yKWdAyj}lP9m)l<^&a`jplB}}0$uoN6=gObC)40a3sR+cDfReeg--ky zLi6#FVChBd=&c5!bV=^JrZ0u<=vntrx>&u#Gd47JXG(Sx(s|Wy11d;7tZ7I8X&p+t zl+iy`Qbsd2ETBF)viP(Ofi67iisEii*v#7{>5vg)4H;+BV#hBX(eWgq@FzpE2MTYt+i?VIt(T&ZISolxtJ zY4?Ob=2`qN<({O^B|CoLy4I#r80mU(s)`B{n5`&3yB1)6Z99<48-i8*BuA1IdUSgT zT|57OKUI0nk=@-ruKt=oBKM2(D)4fSe*%-q6IgNB-zI|tEeDR zr~Gg8$HF1B=mwqe8+^{%*xrwPx?YNuJ&%vE!!u0A)NFIu z$6$KyseW|39nP}e+}DA`WfUc-ATfA-w)r}zFZR$g>N{4@Iy~t}T<#RKA<&gP>zBDo zb}((7suTa(57dfw=t%B|Q%Ony)+yrj8HNP577i z+Em*jyynj~lQw}aHW^5iI{ni;?MX1*o~fUYp}+k+FEnjMjLoat5a_~B$TQAdF&O#% zJZw;N^6uPsb9$i=+Ab>Hv~0=`^NMf5^!w6ula~6!{GefCYRck`a&{5KK&zgOylo@s_$Z*r5|FM|kP!;!#G zt0;$?H&kD1HAwl(sttjzRW-hwABBd{lH>IINBNUu41H^_RBta%CShy7nn!YF@6Fq$ z1sPw>jk<e?0ousoN33am zhmh5)zM9v$hR|sKchC0wYHrddgxi-!w9dnP^}zD{YPhFu1`=~7eKoh@^u5darwZ6z#Bku)M77qIfi~?x z7k(EMWzDN{hFK$~sP9`2wE31Gae4Mv^I)E#@$=80!dnx=-c7SrQ`G@B1iJ7W%KI#* zrD|X7o@ifob|pJ%e>d+)4W|EeO*gGu_|07NR4{GFpM9>Rd^2y@5=@sZ)H9;ar)p=s zuW8*=g9$1~Y@7MboOC9bR;;UEOOBR{(kjIl*76(}X!G60?^xkeU(Kvc2#tELXOz!e zp*={Sq@4+kBB&to=EWCtt!g2(`62x`7`AA&RxNe0mbXn`8vGRND7K-bgE@8+$E!8CfZPHZbeS?hmrfFDnMqjgc9qp#9nAME>tx{O-K`V79qjpEGD{weq{DnKQ!Ke}*@z^O@h~pK35|dL_dYJMy=gGz+F* z_}%j7*x%+(_4t!Pef`e4{&7ClzfBnPU;J4`1&Q4^ewmND2Gc1^b>iUp)#{qfAuQeH zth&fqq0NT{(=D~{n0{7MXse<8i1KH+YtwYAO-G$Lz4x%%KcX+2GNOly3KGsW z6`IJ;dB2+a(M`B|QEjlT7xQWnY(t=H&;o@v-4;w8dg~dJGYgT<%{#L2kL7HtBCLdd zS?p+)Mj=$6v!N*V3+j{T+`KA!ztzx1v8R^~hR`_;?wUFtw4z5cO`08b8_1vM z@9Rf*L693M;;J&w*lPwOg zL%78RfkZ6`_Pg7Dt`L{$TGG`~S&KGy82gXoq ziQ4w`>xD47zF0e(IgwKvt6XiuBYkDzbzw*Q}YB%}^ygTp&}@d{GI zb|CST|D`^><%@V95bw(vGK{U;+`w>cW(ykvU3d%?#p`eaOa4C1`pka2c4?eFJ#jjM z-Y~W|#q#f1W|tn+cet;K@uQnks0Up%RnN$87svj@owYW~ zcXzmV;yH6sK_WEFBxbe?660cZ;#mn_HN5c@nHupyZsI1frFgKo;NtB*t)oeFEfp+g z(rnbt9wzZODM)W;yvgyypFf1=!y2v$|%`pIMY zRg2z23RqPLO|Q6(&g+Sgh8SUl%yQE1B zTN5mHw(@eX_{%8rUkDbSyY+dv!KXdc+qh%0eaB3R3KC;0nZ%l@!Qxyc{qLh|@jmL@ znZwd6`Mw>2F8gnH?8~0&*6GDEb8dp&cZI|rx{Hpl7Ay)}(7)XrPW@DP=UFnu{MC*? z7ykZ~%)HlJ^=p4ib_*!1radx>Pem*u=Xv{2yJM44ID}e6tgAQGxG}P|y4>cEEZO9T zL{BhZDvtiiBuPhFL>nWL(o9WPxn3_^aj zh+HSTySJK2Gii$~qHuR_cl*zwe%DaPW`31Xwvq}JB$}-=ip=2_(Trwp>1_oKYO6)& zFS7XoCp!XN_#M*oJa@LtUGafD(oU#+C5_@~UaJVq@OE!q$0*(;T7==bx4Wd7!a$={ z_-@x*;=`_aRLRW`<>R|<3Kb-dPcVuN>n$S1qF+_TosR0x7CJwnb2B>vUDjzvF=LrU zJnXF#uXZSTDk@f99okD(TVN0kBCNvYTo?Brp$73H%qj}^>gL{khCz&3W)%ss`c?g@ z6(egezbZe}=%Y|UqCmJoY+7vGqZ4Q* z+?P=fkLBq~-U|O;B&ysoh>R{)QO~N^*yi?KR#@^)7QCg|5$MA2kWTS1{gPi_-j?Bq zI@*0#NL0vc6q`$0#ePSRf(ecd2;t5fprm?W7rtg}J|iHiNRwM!3)DAa?9$iu7T*SFEqp;)jTfvzh} z45HXwtC-e6uW{&dIeE&_$2MnqxT^jjTWeY&M1-&F>R#}Ewsx~zh!{)%9u$$Sxj2M~ zq}ux5IZvr=Thy}~d*L-vnMxYOxvC-J>!_~oPL9-KTth_TiCx|ApUl=iv@)L>yVG*D%aDVH?xxjd{RWdjehgAJQCo#Sk%rz6Dw< z%28QfN}6N)RV!TK_fw9(tEro#n)`DaqbXtb@u;W z)w&DqWo+Y;vUT$bb~TW2aWIGtX;$%yepz}tckL!io~$ihV#nDL=<1W#AkHLO#oGy|LxwYx?$5pUxRX1YL>G_O9-;j~YZ)idCdO>Eiy5K8N%05K+ZfUmq-$_R!pJ z@E10FL9jvviQ;r8T2eGbBvjICjCTq#k0^GNx%CaTBhb~cqCvP(3k~@1s=~sTv!hYD z_@iu3yQ}&)+9a0*{KiDV^F0hIS zx*Oo@t13BlQ{{?>e%r&gpE(`o4Aqx;9)hh-Tld zVm#fCDGBIWi)|em&sP5OQ>bh|X%N9lRx$s<|6bLu3a)HQ>Mu5FslQzfBsNAF#22Es z{CB5zkFCOrE&Ih(v^{|?{B7thuJK>k#goN&_Z@XqiQ`7mw1-th#dy1C(rTZgCqUb( z-Q27GGm83!t-{f&KXHEN%FCT^mf~3^XN3w9_A8@xCgtQMH{|2&adkTaT|M)eM25*K zo^;b|sPTEZ|ChYn(!f=rf&{L_QjTnVEzUcBXO=Ebs`eq1m{#8+W>Y_L)fVc7wYP}X z^S#_lMw!Iq#ul-lgkHn=tQrr!@{3(`D5X%bBO**?8#jkSgC zh?3yKE2Q^9jx5XH?KSa+?@B9FkcgaM60@gRgqiwwv_6=t6t%(}{F!e#I|5y}9!>oc zhgQ7RhdAcqkxz}x;~;j=2^RhCb#`y~#w6Z74;IZ`{`Zq-j%mtMQ(iE)B?aw12NDH| zZulZt%p#i7B1aqWS0mrE@(xAp2z24MZZL%88OEL7bYnSdZIpR~9K_mTL1Gh)e&+Z( zi2XByL{l0MbQ$O%;%5bk+`;rzkhpV1uhGBb zaDJmtdsfrD){a0I{<5@6)_Ed#i%qh9np0nH974&8?E&IzH4pbAV;scLuL1wf6f_#{ zAogtw5HFMTS%cCz^KyjDmHE55?$8c`lIMVhhXE8ehUHBau z4Bg62;!fA!#5^tC*6zDPB9>~n77P>_bM+cwt0wYK9>1cmS-RR0=)&BI!7yv$cs}Iy zP?>+va~pmR*QO3)f$|qQd^)+`=;9!9mk1Ci_UQ9I`&UiipVPX^Voft_sI2JWAo5iY z5DBL{x#RytDT~=*y!MX<@@=ldcAp%HQK1f^)zSd*wuJsUa=A?8+R7rbe=8R|0$un! z(K{{51@b!%NwVRP9p?WxXQ}5_tS?L=?wg-jNO_i-aVF88{vAF=udyhvmCx?=NtQo7 z(~Jrd!yFyN*`EHQJe@m0yZgHib_BY%lyVRaXm-$*<}#_5F)ft8-+WV+ z3M*(vB_Abu)MkIN$lU3Fu4)&pJqGW*Am%gsMndy;aV@%YDS1e1&RA>Q#G$KRr+`aU&8qJqS9hcqpfdNS|cUn3%^>TEV@_E<_tf3zWiuB55y z+JWCzv22ijRZSB(8~bpKnmRc|qJqTS$?4i1>NC2O&}%$fbSGAL=@I*lzUrS9of`U9j11L1iFg&)A)R{MdV$f z6M0)TRrCATRE8-b5)~xEEYu61VG$enMIwGr@2D!aDWh&syFvn85APU7*H6Jhd#Dqe zc6qC4>M5DoC86l;(N&U~&KAc_NM{j8HY}Y?qCxT_J%k7YnUA%?=Wa+Ur+!ar{Wd z(kIIMR09V%ra)VV>Te9}20)_YG<>&};xNz|^8Kv&3A>V=;V6gh|LS2c3y1U2&1 zc3at*ArciNBK7(93xQ&dvtHwK-zka>nCJGK+7%M$+DCKYwu}IJuZ2!rn=nCneLHUc zOzjF4B%aaA#+P*JKbRE}S3ZO(F_1BB{zn@U=sHbnEVo((2rrvXTrDqNyKPHNSQ_Ix(AD^!qp5or*i zw|&Ku_R&P_v^uE$5Bl$D7NmcEIZGiTc(FdRFG)!Ia}*9 z$XApae3po~{-tX6YZE-GNQNEI1<4g_**}TVizLwe*DoFUJ{nLE2 zeZ=8gr-}Gnqm*rBlPUZ%)j$GW!P7Ie2S!S14%DxzPHKi*RlhJ^fc`#EL1Njo3~gOH zRFKGLOxKn<`HG32 zr-+!daV7iQX*AzJ?FtEWxi0#vO`v4eoohM~%TBPQ?F0E|YFDTrv1aaH?K&mIg2tXC zBIN8x)-^qt-=%hi1iC8MN!7Fylyv){6Yru8d_q)D{({;SDoFTMP1UL&@)dDwqlh?I zuoQ3o$Aeqw?;HtqT}({Y^49hfDaG^}|2olInzp#{S=6pjK_ch3WbH8J4(6RZLBy2q z&G{xu6>p;790_!N_>rV7I^!n{9rdg7pWK=cJYAkUQy&f$B&NMh(n>_p-+A(JA{OrJ z#`muogV5eamSDxaj~>*X&}mgraI7u}oJ+?LKbwOv$@xKJcXThh&6%yrXi6m%NE zOGZCrA=IvrK$pYJL@g#qfT$a*6SGDQ;(62v> z>cb&{uIPn{T6~^h5j#@9s%0yN@Twy>%eB<5P(h-?)I@Di{$Sx-UaygB(m=jr;cYpM z`fx~~YkQ3(&GAIA@HnXxi>CYXg+so|@zjSy1&N&HlC%w{g2jvALqzOZ--FLPoL}{( zc7+7Gnq(zu!CfulT(V9q324Xnd6rZgsa>Ih#Lt8z?ORWa=(_D75lP-HxoliV6{Q+T zpzBut6z$S0i`Y?FuaWVi27kZ5sai$t3Kb-pno_j-A1tED-2+7AEK-_h4C$oyQM*C{ zT@^Z|YL93Zw_ykUs;)WZ;nAhLs>{@_P(fmzmZ}+itm0zQej?VE`o@eeg47u5!y$pL z5(oZj&ktHf@(}&1x=y*oD)$IcGpJpmg2b6!f3=k-tYVI{UZeQcb*%Q}Q7V?&6%y!L zSc#q=pR8i&2A#;ib|A~#G)k4GXA~+(%qgF)9sg++h7S9PNIzGQmHRSDeWP}T1iCh? z%h2v-S;eL2IbLUYv13F;`dD^!q3T$`cg&qXUg^Y#+qRpDIByDn4I9Qr+wKv&nI zncCk}t5{G$uTk#T8QX{c6Vyj~Mxla4uHutT`@kn1-o5bWcPAU8}OQ zwNvw~qWL)estPCGlQ+8us|NHrP(dQwWDrf3SVgRhUL(uHsNNRyQK{6fkU*DZuR%Pl zWEGXy>%>c5NEJ!(R7QH%qJqSpgR}-+%_>f`+eJk7%_?fvb$8`YeK;i0RmW@;MYmeS z)5|(B`$t{1`a=V?k=hk1NCav|QD&D#gpS%tME{?f3LRZp&7tQY66mUM(kQwWw1|&J zy~g&p9o3uFMO6cO4x)mD6Xg?!Qo>{0p&djdX7*EcM;g^9`W#50YboXL4u(=%sDpl0 zUGoJf+sfCn75xpOf<)QUCUIeCuqd9qorv}xLsj{{r(_>$S4f~Mp_fUFj0zHQ;rdlM zEFY%AGnUB;bWcPDiSK?U5qv6045*>kI1wDClCN}-{?x9JK-Z*6l#NOZ6t#EgMD=;& zRboJzZ7sDcRFF70!z5Tzps;n>MntIR6m@FBqnOduheHBg9#c#rU!6d)`>IX^HwjaN z54f2pQ@cV1i5atLRi<{JXfb9h5zfaZsh*L=*l+qhkU-bq02MvHuMG_Gc6{I>J_{REC4J6PNbe;D0Ir@uLBlN4v{jG;m`AvL1 zJLFabK2UQ01P1LSXLE`28 zEUj`wU(xIO1|mFGjg=WM$MG2Y&5=M?cF#<0742y%*;T))5}Rwu8JEZMhV+}Gf<(nW zncC2tzG6@2dLsT5kF>qmFqyxnXDt%wI`}$6t77mKQET+8>N}xiOyh}R+(>N~6(q(G z@#Qb=aBHL2SP*c~%*RdU7HU^WplgdIU3)@%rOrLjiJm3Ou;pXM@fp;vP(dO`P`Y+D zzpv;vZ5BzT zBHBcb;<3NhvNBWy33SzIoT#-}9w2ts)@w{YKZ-v$_h;MnJ{%}WC+WN zBshojkdk>=47DpH(3LkwqV~F1pcv3qzp4|t!}zetBhAmLU7>=+^5g_hY71Wmi6LE<5ix1b z5MIASw9H3+I3&Qs_8ubxE&JzPRW{fX{8 zy+&0fs9hm}t|1qbwca+12Zg9c0tJbHGs)Vb3l@=@Q?D^*s|#Pg zQK-^%PecM;n^RJ>7cHz}$W)yeoVP=yRZg#I#>2+EY#|ShW@t(Wz%9d$qw= zInsB91iH#}{i`ipZxzk9>%@`t$86u{KvjyKwWuIb+vBh1y45PKc`qU&H$TKq8iuQh z)Q3X?T^%o`X>*>_=eVsCBbUu%)l-J66V$FyLE@lF)8@XT&oOZ!5hXh`W7#bxs-4uX zkU&=}w+t;N!zy;<)oYAc_|oi8Z!G9U&p}j>$Y`0NC741)lamXGXcQ6Qwu{zTJn3^F zfv)Pu|7nr`D4E+uzbe0UZ(BvzFtwTb45%O>PW;mzQ(m-YW&{zr(w*eF4U?1)wJRjh zHM)M57X8vHw$IkDs-dN?yfJ08szvuiRFFt+l%<{fU=>Xo>NTomZYbF7-DDNL59-AGmQtqd=&ue^yFvwtVf(W+%MPpf(sw=)dB^{j+eQVd2x?bIpzGQ+ z8l^HCrQX$vWnMW|_PcIsCABM5khnR^AX>Jel=tL$M7Rc*RZVtuP=%-uhXlITls1Z9 z7cJswnoityuco$^Z=ssg?|}*uD=HYps%sV@cFiT?P*N+EHMo{?r#>7K=vuMfC?XqC zlDxiNCT*~f}fz+;0K_beVGJcjT8vs{dWpj7cBhW*Z>K1l^tUgzc%;@j~6--TUDqcBg*gv z)UHrLVo#V+bXemjUd@|E#QN1u)s~74cp|kcB+!-h)gX!&p;ehY|6NsTRkf#GOKzoh zg$fe;e^EM`df|;ir&5iT`<>LXW1ab6>cb&{uEre>SXEoUDr2yNW{}Z3AQII!})S*S4g1C+5ArnrZMNi2>q&xHttCK0K)i4YFDTr zF`fw5G#_#A{RASCpEop@s4|6n)BOqwbd|Z7u2rTHWTk@oRUOOs-kk7~@|@JJP(h;f z`E>2CgRc<%#}l!kM^APtdIGOZHIP8p>vn0{U^<~m4A!rz(2fOc=B(lT1hp$vkeH}Z zPo|!)=znP}5#ol8wa+z#-=lVg1iD&2P1P39pfd-e#u2f2|8wST3gmyNU7>=+{QId| z<#1o&TWAas6aMAoappdJFSRQq&~-T?MKk>L6{(pzk$Y27{_I6ZIw>tgqJl)m^c0PM zrk2=y6cKgbRp)+Y#&c8O2MKhI8-&#H9ff`SEUzSWUVoB7v^6G`ize14XMM`c*BeI)M*Zf7|R!eK=H*=$w(D9jp>4 z{6j;D@Ccs5bJp0{sv13OkwDk30*Tsz@ARzgGnk0zj}v&c`txlKsSk$=66UM~t-Bo?$u)a0Qc zQ8)JhA|5v!!3Ra`mKUjAA%U)U4->UFfx+ULi+)u@I<3dWDym)y zB*M=z5AXh`m)c703JG*=N=?-m?J;_LJcx*=6~41U1%1^)YFDTrQSMKwc9QlOE}m8 z-?%_F%Xxwdq&^%H=xXzdRz@j}`(~s+5jQ%QWJlJIQy-{Zp@PJ)7wOvDO!{_XeTc|k zb+EZ#%4D^J+Ab34n%U!@){#~%j~Vorna4u%lU8hA!2i# z2-*C>7JikX#q6S48# zbNRi0h$=zPS|rf*xtBq_?qd~e9QCU@-QcgRNoQ?Wp?f5k0Uc5dk}k zsaw^&)hTLMNT4e?#UMITa^RhBFCyl#3Q8-~THT{|g$fe5*P7l4y}q%^c5S5oQoBL| zUCkyNMXA0PAusfx8trPDRnh$}Y5?`&P(cEBXA^P4TWxt=RBfO>91`ey_Sq`J&garlF68nr7V(1oXBP*1-?m`cy+XUo|o#P0M9B=C$2ns5IRrtU7@8~x(A zpB;fNJgb9NWyTj)^(sG~%xrl)F-R>t7%x#l0-p?YD%Zrh=F_D- zmDhS_g#^0tdZ%d}X!mkA5B>RZs(Nwu@vFZ&OTPyyNZ=EWe)EbQSfj{xYU@&Gg#@}1 z9;Rw%c3Xu{y8gs*a9_c)cJx$}s9m9g1U{*0cJSOzX71Wbom}j!kU-ZuItv9am8AD9U&eIdxk?_Cmp8{tRFJ?PxxvtuhOF}|Pm%?e zJ1Zp6bz3E9?S2P}5|Mfj`53(cY)z<#{6g&t6(n$EL958B6VKQ9t8F;7D1#bzgHC;J450{Qh( z(f+}KyutVT<`vth1}I42NRMW==XT(ZPOhv?B-H={T^lIz+i!!vSg=bU5B{CqhsRZ& z&h{OPm#83tBUYLN7|!_b(ABK)erJUQx;nBX?R~tT(8}uL+E!~j@sqi)u?{iu5)~wH z#a|U)`#{@jA*0JGhBX9fk&zeJZf#cLF)9iFH#=yjFN~-jr&fVn^7`6b;XFhb^(y=R=n{DDdlV?W8OH`1+nJG$tZePqk|K+^yMrVZtx(1z2*S>%75$n6_vr&W2 zk6=@-_vNn-#Yz!^50XBb|b746rNmptgKkU*Cs|EJw~>LXn5>GN^cC}Zhf|GPEfVFA(Ttzo6faRh0%y`GDZ4C9<_mG*zU!P766iWiXJ=HN=_d+j z>oeQeBTFfl&91!D{&%uT2U z66o5t!6Z7=3=-a1dW{h&L8{%_ztK17bD)9*uKdwz_*)M({^`m0t8D$C!y<0UFc;0h+aCoZ_H>i4^^97X+hB+zxBqDeUJ4i=|3=qrkA ze{@&H4sMjc&csVpkieB#+J!x^g^G(kDC^Vs0||5uKVuZvJ6S}-9{TEQ`vz@PnVN6p zGrI4hf&{K8)7aUuhT2m5vwTKl10>K@vkC3`eQgmx%j&Dhr>56am3kFY<>>Dm6(n$F zoSr!Uim4+T3##{YFF^ubO;#I(m%mlyNz!W=205uo^J=Jh)UHrL0$2EHeEus@-d$2f zZKZo666m^mDO)Q-yUADH)mPkSMgEZCb6TtVG&Vp52}~*&3_TW|lBUwl)P|ML3JG*o z5m{O-%6`1rqbCRQ9o{9c=I*AR(DMToBrtJ7r#dbVl}QcTs2^LM6%yzwa)!=au1s@% zqxF=9wS05ArLmuS7!@y3K?0K_v?KS)Mcb^79%?6z4UjLwXlT{I3b(x+@b zTmP#;>Mhkk1qn>R(A?|B0%q$vPj#Ng21uaG;YgbH!4M+${LyRVtM}UMYz|aSs9%B# z5}4$nmFf?!?ADwP%AdvtNT6#(gTI>1W))+u=*gPug{HF)OZ%w2)W1Rn2}~r>y4r$O zZ1*vyLaALLfv!HWDcYUBR537 zNGo14BvWSD;w36bU}BH%aQ+SXi+b1PM;aR-fv%=i5;enTI(6u(UgJ=q&ivnVn_Nd@ z15}W}-p`!T74Hvq`0i18ab*xU}bK!=ibz3Km`d*;L|h8Es}|&Zaj|qyGWqx zOwV-f{SP0JnWER|S7ZTOo7s!6-$(Pipdf)e325g_p=NC7iuOE|o`XoBYuc*}Z842G z|D0V*HHNxpndct~;NEn=U>N|KUwJ)OH6|TcQX>5QB61elpV0ar>SUpjN`5F4nkwDj-uSRhw z-A~+Gv59Kbx>8%MTU&%X)7StNBya~8jV7vAQ_C0qU|VTyfCRc++nPj|o&LhzQ{T0< z%A%=bKA%|aBk>XyBycAh?PJN)Tsa>(&O+(ljs&`1&!V>s1_g-b#UrW4v~k_kfVn%^ zO!_-V1qs|yN2ejSY@@or4rSHo8HEJ8uI?}iQ8Q3{_@>wBPJP`x7n-vT)UHrL0(S-y z(cMG!?0?0)n4YyrpzHNkldz-)ih)YxQnTPuAs33tmPU#nX?53u)-z=NbdUSmwnCaPJX z+-e{7OHe@qcK{O+~M{(%j+_|gu8j11Ac3yIWiqu+ z;{9k`>!T{r*Z>tIaECn2M$K@L;Uzk$q11;%0$n9nXJ~%3mTJh>Ym8pB z$kxvsq|U2&i3$?9)1SUw|5mN0U-486>F)yxbPX?(uK5-S5&PsGs$m(u+T5USkSa&x zC{&QZ6ANg?UH z!?)_Q*_tSKwVm1(66o4dDOEc<)+&Y%-bXb$S3SiZul77IxR5_p0H_4-C!W>v;F zQm<)F1_^ZSeUhy0&#;I$?e zycd$Rg@Y{OU#SCBqeZ>4yg`S`DwNi?Q9%Mv^q|wMJ~{J=`Esl2H0DGCUA;dgYDrgu z#oVWQje5tL@Z}wHsf*|IzR&+xkie5kD0x=9E`QMPv7An010>K@hw_QeC4xonRR^iY z#QYuk%TBlDV_FkN1&IoFC%0^^Z02KKHpvUrFF^ubi=QWGJ$eL*QI+6D1TuhF8DA9syu%D(T7m#83tClJv}gKHb^kQU1J?sis4 zpzGSRL@k`&4&CthQK~VqaW{T`-%d6*CSIa~1fHZsXCWa`C=F1Ki=GEz5f&{vbIHYP(D}2RN#}ib;^=c8mZC`D! zXNpik0#E3owgZ&w&aOc+wcn zEzLX378Gp3KhxSB66mUyn5JdYdsM4ljG`LF7Hnc)uXX1KcEw9nkiZkuC|?rRm(3j9 zmR1y<6%yzwI5|V}cIwu!a8C>E4b6x(?3H()Q80 z1`+vBQ;nL>jq*!m0RK*715}W}llW-GeMU2RU~_vug2o0&psSeCAo6zh6_?)XH5S*3 zkYB6O8!D+?p@IaSC`k8`1DoW@f@VIQ+7%LZu44xA_yq0dkY}jI$U*mHm)0HlE_$9D zKtTdeMx^vk&v;gM1n zL-MKkFD3X&nioX^T|I9bMdCd=55N*lHG(a!%Iifb?nZeZRFJ@vDh-CCrCik2dg<&o zjSY}MS6qFQC?4i7hLnq;8e*kc)p(T5vZ?K&f&`wpNxASYja6Wk3oL{BqDY|Y+<24t zQ$Ii~c%#<{{_Uk+&x>L%TjC`uNZ`q#bXM_ZcS;)0W(Dc@K*G+o#U#8_>D1E`HmdQp zkdG?!-H-LAe!Bq_B=7`O+F4w@lPdfvC(|=UNTBQcPLpVGDNtxjCDpjmDM)4dEi^Br z8mJ(FC%Mw^ao1D5ihCTLpVkeKK-Wpy2N}6INL&w9RO4HGpvs-F-Ykpu1%dx;z#FTF}dYAs-eB?tCnmWE(2(u0Tm?hWL?^olEBr3DT`%Q z%6=e$t_kr*@i9GEOik5m99ZP3hP+gA0nP8Cf&`urOyBPI1}Z8#RyL)~9TMpJG|?#9 ztg(o8C(l!jgX3GOyIQu~Mq>k1kie6U4Ti?GDyZTg4JwPq21uam)E9$Dp;Nh<%)LN0 z#<^5h{rtM=T^0-Z*`X16%yzg#SCKc3ae-te35Fn56z`E?`Wd# z(mfFsB=F>E$`0;&B>#=6t2WW|90_!l&y}tD(}{A=&6lXgxsf+yVD3(84dwb!K>|}HYMECYg}yk#J18qP`#%yCn`wbiRRQV8JrN~xz$r$ps@iG z=rWE@*G|(Lj&3cyLN&s-ls2C@7o_e`p8*vl@MLycV`*{SywBZ3xlz^`33Ofj^;cW; z-YORLyGk`Iam`s+LpsHr#s;V$fhWw<37DRPSXAFODwx_966g|iF3w>(gRXhwYgD6S z=bda^*KTSgwJTJRz?1SR-4-3i`0{3IKGi@1UE5q!v=e2mVqW3vR6~CM#tix0)hrqt zpn?RR_)n{^$+S1Ie`h(V{1}CAWWu+8;hU%oh62ME%de5q(&k~Yd$$u3m@uav!0zet z-1W=yazT3nU1yUrwTe7MOnRd4v^W|$L-vi%t-fS=DO8ZaggK?D&NP#L9iPg?#uhsQ zT{rvv(>C;`Gy6mIeEa#VigIsaVYS7@TcLskCd}!*$cguD_xF61AKO{%2y{KVnyv+S zg@`ea^qnu2d?(o|?Ql{v%6ThPkidjFjqWNLZ8@fWmmO*`8Fb$wR9cTT0KjFR~cf+?K^u z`d2T73KEzwrxo}5zs(Iwe3bt(g6#-&xx1xkrL9)6`ktO|f7Z>yMr_Hi+J5m;s33s} zb6WYS*Om<|^jJ2h&w&KG+GizcGau9WiPQCbd)e7rSZPDHY@X(&P(cC{=Jd|V@^e|> z;`6c<{T@i5D=95e+tGyPeVhWQ#=;vnSe4*cvTkW_g$fdwFsG51+{Idk?~-HNTkHsQ z2|9=A;_P5CY;GXcFc0|2hTJ$UOIP()s33s}a~elQD0c7UeEE(3K9E4y``roJuZuxq zbJ1X`QRt5YPj0$Q7R}+UP(cC{=Cnqib)Plb)>9_Y-#HTK+UH9(=)}ePHVf5=%Pz=` zH9N`UKfDwwNMOR8-o59-b zg$fdwFsGI3t>0MZ<>PDz94vMOy1GRsXuh5SqFRjsRKxdh3GVpTr=>Z`OQC`UCd_Gt z_uF^&;d_)@2N#Py0Xg(t)e|+Rx&C73C4EQkpo+!$gQAbj&5C*}RPg`BggNyS7kp%S zMn5!P>0q%V&{gR>?WvCQ6MilAeEZ#U1$mE$-fU7GZ-ojHm@uc2@YSbm){4fg1-IA{ z=z9A(NgLYOPc*RUJEXnZJ8-YjE7+5K-U<~YFkwzTTBA=nr;yKs0L@@1;;d0u$!+LN|M>oycmDg&|9H`1SZUBFIm@eLEkwDk}xJ>Py%}2B!r03h0HjH!23@pL#7V%c7Ab|;UnlF*tTZy(m*vm2&I|5y$ z2W4wBX#VP89zEZFXwp1ekyB254E>#>f&?baDVH&Qk?mOSZ|pPu=18FH#~6dC+Ku)b z*d|bou#T>>*w@0m4Bf9#K>`!zw9Xk{T&A3Q!;WVL+Y#uhP}wMU-SQRN$Ljg^ikoN3 zAM0}SS#;k;1qn=;(`ihpUiVqemRuLemi(8 zRFJ@gIo)?-SIDX-PqF4^iyeV3QP(71=JOW=w(I%!V27u2V#mAeXbpM}f`SAl%xQOK z))ASuXah^5J{%J0;`Cmbd*}Rxq2yGmQMcw_Ikn3^mQ~VQp@IY^%&BMD`l`&DH<^{I zVzDF8b>o~#Jex;3vfk6EM$V#nRE0j%*-+}2pn?P@%<0M5?5SK4(~9lQVX-67RpqHk z)ew0&gyfJs7XDt%w`gYSK`Zov?eg$Vx z4c`||N~<)(97p{`RFJ@gIVJmZ|B#P+Cb+FCV6h|6^=6|Fl`!zG}kx#f-D$0M-Iztu_Ms+ zl-|jEn%;Qp*JEa4)D#cEJ>On^M@#v!sH0j?%3Gm= z1SZT4hFv?-Y=@h?mwV_rhy=PE>SSowyVK`rrRUp6H9Ba^@wB))`!z)RS4! z-j=rLoBYv~zAN~@(B--&O)K3XL_`_%?D;E0Znt79OQ^t{-U<~YFk!AI`%k+4Zumpi zb+p(K=vtBIuU3`bSv);Xud#C9J#+D)#Z|ALUJ4Z?FkwzLa$GY%82DMnQoBL|UDH>j zXnAH@#mS?3zC9qX2kVty!kkuRwuiGd>#oW*6)koIx*9i0()I*cgmXVV-(K_TIaadu zXL+Qsw?YL8OqkPt&P9=|yw5@D($Qi^po<44YW0o>i*-(VzTN%7M^-)cylh>Mo`awu zfeCZ!Wz;##POn%hecb6e2n4#shcH^{aH=y?tb5|}Wj6U@SI zv)!fo%U4eHJO=_@?*=Al_o@ep)_e4Pd-H4gxmTwknN4E@RFJ@gIjzb>y<%%7Rg}AF zY=8v1EZu1@a`!-Sbf%tfH*3Xsvsy-ZgxVDY%8;a?Fe+WoSUF! zObrmf{FhOU?kh_0J;{9xl7Mz`En%3?>LYpNkpyMEGNjH|Eb z+j}*0;-lJaHT&iDR;VC>33KWp@B7ROY(8NA*4AQ2pzB0bqV_V|PgIK6Ys@I)$V<&` z&WsJb6)H$z!kkV|N_)ZL*H&iXbWcPAU0=2(X$^e*M4tnCzI|)XTs%*n`7D#h&UOl9 z-7#TK&-2LJ>`|2vHmaP(jzHI#o5|XrtG;63Bt74LepDiB8F`dhlf4uwNMOR8=0&s4 zu^X_LRa>S4DHHpACYxk zuTi&Xah688iBEJ^5h_Sv!kjX~1C`nF>?ih>`fx~~EANO*t!9*u2%Nc=YIF)ZTz2|hiY<}5)$ z0u$!6@^iei?RB&7Y<^CfvjhTNjoZ;XS)2QcGu8Bbd*34k<)Jx6`B@qppn?P@%&CUe zC~vCwtQI|MkwDkUG|IOh@D*-3^z8YXfZ@`~Cm#=?u>mSbV8Wcn&bz(j?n@8Z@cb4# z0$qNqj6$~Z6Q7^yHTsp_B|UsH*usBa3Kb+UVQw%K8N5Kc2TGP!-(p9gYd5{^=ICob z@%q2_X0+LHM-IRKlr^Z}tx!P%6Xvw$<+e|KEj9*Ey^}J&PTIu0~NN5!N$6w5zP=+XwpQR7G+wWStD& z3Kb+UVNUZ`RpaE!>YdrNd=@(bT_YdSn}J*dMM9chV|*@0^~#5_zce;L1qn=;(+D!~ zy{wq+z?`UEA%U*Y2PP5tFHnqqr03f&=5kW^)1%Bs=$?oQ5|}WjeUQz*%f-gd=JvTP zb_BYLA25kJw}M24!&|7v)h#8|sL8=Gl~cVGDo9|$oRVj=zRP?OIc-a-S?maO&7rsI zc3T=OZcfzm?NcWdQ+K@LZNEx*D^!rcggL#zCHRA^dE>L~1GOt8(DjW@%^txmqHg1D zRAX?70&3j9e$uD9w?YL8Oqf%Tti}`BeV3a|ZcgKK_`lF~B-|+G(wpTf|J7?8cx+TI z5o_hiT;2*5BrsuaFuXW$RqpbdEJqf$*b(Sj`jXyuGl)*dzp3Zjmo)eyx3xGYO~1Sp zDo9|$oK`Jo9g(LmZIZ?5Ifw+hl3WcUf!<3tbB~^H&vpKioI2ryyh(jHRFJ@gIkonS z%jLxVXJi!`8z6x$^Z6`o4P~}3&)7*drc_xkk4-VE(FtA(6(lfWPS3$5{<4hauKZcv zVn?8>R<%qm+MD(}ch&Rl!xFp8I$sK?+K%1|6(lfWPP0)j9A)FaZ{!>r8z6zMCCf6j z(zKRZu#lcTk9K%rv)nJH3Q!*o6(lfWPC4Ytb8Ia;eU-C?#g0JN&VOl|qd7#JzNOb_ zJ91des%a(Ese;}L6(lfWPA39An%OF=_Yc{nq{WUv*Zk1G+HX2Jl11wI_P#f^n2Yyw zQg{D&DO8ZaggL#Q|iKc2ttu6)H$z z!kqe|hsv`~xn9fsR09cg?O&a&C0DeHpFQ<_`^=g1S?}_>)C~IjKm`d*nA42cqEJ?# z$t~$h-xU(*>OUq)J3Eiwm|k7aw=W4e$xiP1EmL!QD^!rcggL#1@8ue{qSXm`oPKj8 z&^2R8qSotmuvqy;uTg96OV-vJE34C(6BQ&dVNUz#-A}MD=hn!sbWcPAUCTcuXin9F zMe!YazCCV51`F}pDeD*aR;VC>33J-7cKSLC`7l;GRrR%`Sx}` zdATuWy!1`+Qm7z-33FPzb9v56+-xX2(7gl+biL`CptYJGC?&^2{5ofUQ>Kpd>D=i5KkD#1@AdfWQY*Z>tIFkwz- zI<@}6X8hO`Bk10a1iH$-NYJ)__7@W}^%@6^CHV3_eawDFZ-ojHm@uatz{;`!z)XRvu&s-9Eux-?5KmuJi!jrWF-+YC8 zJ3Zg-&@G+C9Nf(|X3)9;C`e$!oSx^`6zjDtf{miS4-)8VayvzfqIZ)oDzE3;^W1&T zhV{A4%2K}_6(lfWPAl%Ecd>7$_OQa#heHBgEj#|z-qM@Koip?rdlp2oJSXDWKN^3a zf&?baXd{(SR17S|>hA4K03Do9|$oK_Uq zyR+jhAG18vr$z!@33D1pEv;f+QRF+zpfL^-=vuxd zOFJ9qBi5GI^X>Ihx5fm_Ey3r~-ykYTV8Wcf-6lrcr?l^E6OGl7K-a_)^oELxzT#fI zUL&H>H{1Fb#rQ0`m!N_KCd}y_JZqoZMtgl?4X9lqfv#J(4Wju%U(x=*_tCpI=`AB3 z6yPK1o`?z(m@ucF%#K#lq2*KNPh)2!(3NMTQEYIczw=#szTNV2yLw|0DJhJr?yG(NcNT4fss!?e4{_}&Q^nCl9xXZHV>vycTlea-qLvyT8izLv1W?O=?%5Ab|;UgJJKR7&*B9B9@cp zWRO7DTsr^imkYfm=C@v>-z1ZY_g>A4iPCx-wG(NJ3Uzx^?gu50u$!+MrhwRGGF76;~Ojqisj1PmKx^ zm@ubY#@bJ^Qlaye0)fvz?5uHR8k7O^Ooo;{CnDx{X}Xd~ZI_5&3pFkw#TI(t5s z1LxG1C)!%<2y~U%ViZ27EuzO|y+-xjIn>!ci)B3;_nF9UDNDlLY}Segq* z0$q1<8^!YuR-vud^X*&i|CZI}pOpJ(tcD5_m@qdOR>z-|ADXO|$Ee?q1iC_d8AL;6 z741h}pc)@~+?MgrpUXIESEwL?33JN(T>n3+&N{A&=56DLgNogSiCtg^3Og%13SxI1 z>Hx^$@P!8LF;O$Ab|;U%Fs8C5}qv+#Q|DlK>}Uh=KR&B zw{Y+!WsQ7$#Qg!nG9ss3L3048Ab|;Ux(D}E5Z1g;#1vX9LIPcf(|&8A-5oshxl!YC zF*h-IMnTzuvTCRxfeCZU8l2dvXW#cuc+tBS33Rm%&(N;;JNUymBj0W4&r>GoA z&s|iIz=S!S*25zc7L@ob4%6Bl66m^i<)=2Ipo6dMYvkKEF9=h5yB3u_X>JJ>Brsu4 zf8A!om20~{itLn6L;_t2f$3WH_(<;0&r^*Hf8E);69wcMdJm$41SZTW-|m@aS8gsJy(?Dt72rX+nHK7 z4+o#PqJv-6TbWwJvJO6${`=NoJ=Cpc~jX(9J zg_!NjFY6&d`JB-1A-bC&ome zt9xp8HSCB|4SOFCueBOH`1+Ogf#cI^&0)zxN@Ze&u6L1iC`$OxasA z>2EmK$eug5J=d4CtRyZKik7G#fthrAJAePJ?^!x3VQ;or6M?S7d4Fks!E|lP8QJq3 z`!z zG?y{{zTPQnt)6fp#zdgYbqnp)cZuX<8XMX3{=r3jU6eM$k?54DAb|;UN?CM0sLOiC z^>5!}Oa!{#ET-@9c8lO&uY^#Ifn60P^fwok|2icqNMI(N)*xNy=;^sG>nlsgnh12o z(z<$swe;mhHH>Qfe7;^eRI{NdTq0Vcf&?baY5wYFC%r<(OFetxSQCLR@4Cs_{abdv z>yn*n>dI`w?M#e`K$mZ|WQ{4IyupiJ#`P#xkL{nDs0W{MN>q@*OuEHV zaoiu@fWrUu4sT;j1iIQEqj{e}A^hN2BYU3nrpkohME%Nlr$hw_%%sz)r>&YR8xFtL z$GOLv2z2$BlA@&?2!n4Bz3h~zAc2{5Iu*F_U8P>TO?qCs=18E+qg}dI`JatHx-p1q%!zNt z0=rC5?ozu#1qsZg)A>FZzA2sNN9+5j?IM9Lug^cVij>)YGtJ1J|9I1Y)%H5AtQJm* z3KEz}r|%+{`>os^T0y@>_aGAJI=CW3YdXrtPgOIr=lT4~u)yP)%Ahw+i3$>!FsC{F zwdqP)?qvx-3&olUbnR*OM=R0a#@lZlMm5G2|EJVgTAbCZ7%fpj0u$!+y}QDx%FO&( zea?Btnh12Q`TSQ)onYf#${E@78ZlRtDgK_U2ffcxK>{=BlODIE3c(9`@M|p`M6RM zzP+2bWwnkwB`Qc@CY{cic$ui=`n5xuOnn9<&^7z53;#zsfW~*CsYXbEo)Gh_B`f*J zDN#WJGwF2hVAah^_H!qcb=3Dk0$qvWR-W=Hn2)d-+4B`khwGdt*r)VN1O*Aqq*FTK$z5NUOe?!aeQG4o zRiLOV59k@jzvP}kHR>w)#n!)t*t~eBL~mv0VNUZ#ni zM}9DBSi4sdK3h|il1J!02nrIINv8zFp2Z2LmtLL^^lyVK~1s)ySR?4%Wn>ErH4| zw`hq95|}Wjly{ymy>`9Filbbti9lCo0V{7lhxY2LM)q7O6Cl{WSl_>eqa`XxU?!dV z3@JWkv;EztflBSyK6$_4^D{+5|~M+m7g{z^tRoP zDCO?PmkZ=0B=-)dx2_MMM05$HNM`k%IXkb|c# zGP37NwwmJN-G}(U=>;sOW%7-D44J9a4~ z;y>jOt1_Gt6(lfWZn3;;nXaqPYWf~66>B2UHKqJ-ZQ^|TJ&GCGbIZ)nx_=K3F`#6$ zL}c&~;?=FRknV2Tyox)TrX2>#q~*io2;!i3$>!NvGX_ z!!z}ZgRT1Br!gi1U32fIYsYC%_4NOY?783Q8G89lKe7ItQ=)N( zCu2+mx~jDMp^ZNj$@Mu#_Ppwng8JI$tweEZSEwL?nRJ>XEB9RIkCy69Psf-Dbd^g@ z)$UcLe0y&rdp@IRg=04hw-u#MJ0&VeU?$yS(F+QFX~IFh%j*~ufv!BaQnag+BDhCG zBYQsMcrj&$SAZD$)hSUy0yF7!_Gh!D`uZ2=^fSd{O$53&rO>%*SHtO$54f(E52q_HgdG-^iZV?0s2r_VyAZT%si^ zNMOR8($Trf>Z{-W)cd`UF%jr0^F2u`P5Yw)CL7uFj3yRVO!E+ht~wq@*Ogi;mm)BD|FaD_e7Kk+w=xWs_MeF-Km{+}Q z)M&Gcv+bMm=#6R2i3$>?gt=wz-qFgwVK?CZ0Gm=g$e?fv{itK}ZV_t!D9=XrAlu!4*1${HFQpn?P@%xOh& z^GBs&rRn+v>cb&{uDFRmwZ_M7{6Zchd!BE26ZY%Jer4n_r$hw_%%szP&V#>{es3G= zF1KP#1iJ2eWoSRf*?57MMvc`;71_iANs8wK>cfG81SZVs8|!y|DNE0vOvsmo`d2`p ztIDI_+UOPKlR~2K>{=Bw7<6aU!{M&g}x;+V@w3Ps?^BT3h%V>A~lTc zd5xf*%IjorHtjjRqd-9d6Xq66$(;X`KV>Q@p4aIe1q8ZIgj;xHYY;!-YGlv%4RI(f zM)|Wr2~LR$5|}WzSn8yFQ`~#SC{3tcA%U*KWnK8E=pfFY8#Tt9IPSaSU>mlbo{6X+ zfths5Mh(5KWFNCpse3ubM4&6|6z!=l7|g#Oj-whk_SzGYmbYg0uRA3wNMI(NR^qzv zRTi&GP_CuNm{=B7E6Wut(34F@03ruVoe0Pg1*yP z-u|JyO{P)f-??XcKxj4A_mfkif&^yLX_f4xMXCCqg^7DHCIVf)gKPIZp=nw10>LuH@_<%Yqj&S`;F}Rnm^^l++r@w zm-=w1Ac2{5+W+yieZs9=+1P*QVoU_OF1@w#*-z}e%B*!%qiNX&qV|VV%AgBQi3$>! zNvHjTZ`^3C_FI|zImSewYv)QU58M&XZ*^TyH5OiLDxCSE6!)J_i3$>!FsCfeptkz> ztS^;kC1Xtlx=Pova%*@5Z;;=}g@?-KV)CDO-z%k}B`Qc@!kqT@eVV23$bMCcqd8q@*OuEGqGyAX}5~nLOp2wI7bj@<1tij4i zK5UzjJ)b(ErKlX2U(ZU{0~I7NVNPc>mU^h?%vh_ups@iG=t}pq@Fn!^<(ZR>?D?k< zF79ubq1UB$g$fdwFsCt2mSjEh%MfMSsTdQ1uCuTHX}QB3{Bp=hJ0P zKm`fRq|?lH%y0dDqvA^V%NP@Zu9*$~YJRgFwEkga&j%haA*Qx-73DrVB`Qc@!kkjx zoznGrPbc{1qp<-J=yI9;Tl>4n!3%#hYB=_!>kS%~6vb(N7ZoHhlTI^URnzpQ{}#s= ztQu<~&{gNvFKzp12bbH8?D>Ib=k;aLHAOLc?xKPOX42{F5e+i+x0~)J#D0u15$Nio zP!7PG&LfL9vgZ%CEYsCxOdPr9l&Bzq33KWpkIm4x2L$Nn&&HStbUAnb&@yh(o`$YQ z_B?c7ef@i`mSPsY2T?%+6XrB3%Jojay=IP{K+i-Z(DkNynzpiSBu}klWY72ADxToi zqpjFW?{id;z=S!CwtJn|`Jg>|(1REgfv%t;soLv35j=kuBNr})z4A@D7$|DIp!WwT zNMOR8#%h1o>ei{J^l5oxO$53cS4z>m{?c6E8KXw-Hj|X9FMUL_GSLzhBrsu4yBdcN z(?4~)t+%WmYa-BZ9F#mpNqCIVg7zRB9cTOoYh1EWU3*e2}1 z+}rfPdrpZ85|}WjuOb$%pe##B(r38Dnh10)E1shHNlW$cFo`ck?c zNT5rf{X=WrFo-YCFlrpU-hz2vZmRU8c?MLFz=Sz{_jS{2X+s+%f=h;F|y~M zJZiAx<6kOsY2F7F6JbiL_w@R$OrP~7VGP~pNMH_qa&AioDvlzFkw#lMDI-H zdX~IOA9{Zvfv(-PEj;%J8^3?q$e#ZzG*Q{Lh_lnDXx#u5Brsu4Bd}Zl?&fQ z`#(BPG_vR0CoGJg5#NSoJMWaJAb|;UdR{d>rc7RRL>Wx|5+u-dud0<-SQyL?wl%Wn zzRRoYZd;qPb!kqC3KEzwr)T@_1xkV07nM9THb4Sh;}%=_^%fy~eD-*%;l5#|zQECl z)uVSUDo9|$oc78Lu_bE0-E@xp^KK)V{?;5RBjWZoe3Hg#nsno7eK>`!zv<4abIsQs6H};6eA4s5U zPO6nBZng8LU5xDcmXzA!eCjRbB(1BVf&?baEtaA?-X{#{X<=h&9EAkB_UyCrm!re^ zf=WjAJboV&jb6@D9?|+BDo9|$oceI7K6*macS=Mt%4NXMLRXcxR-Q~}u`YgT)F|%O zOl-XI!*^pPnuh}g3CyI^9d%*69{m2Al85GZkwDkxD=z%;^9XKRe}ZaMe%eB;oPD$L zscg{_6(lfWPQCCRyY#BrDOp3~b0pC9#LI<`939C6hn}PwNm*NoFUMXc^rCfVRFJ@g zIqmtWdQ&gz+@>6*c?KlVb!wP}uSt#MZQB^x^TgEVVt28j`fqv5J~? zI!WnH&qO59^{P##R-X1Ef2(R_&wn#-QNCono=7SvUg8;z4M0Hx6XrA*e&?son(gv^O!HSrpsNsN&pRz~ z@NBw~J>T5YRh)QHM0BNfPE?S2Jkb&rBrsu4r`)*x)A!%qmhhD36Olky^yZ&hp4JY&zWF(-k!0DdA9~$H zOnK;(s33s}bBo1Z?5{p&d2QW?=0%Y}SJ%AhTIBag-lnXPJ#Rm~i+<*GfXJY+0V+sf z!kiY7Ykkq@UYVpD^Sel(t884Fc6ewcU-jFlvAxIAgm!t`3NIQPpn?Qu(rKQ0!yVtu zX@^;Qk-;+1!@_-OPkv~>4t~~R7Jh>M`@_%La8c`AzBruasnLF*ZzPI!z z7Pi`MBG5IE&Xf&0>EIi)8oBVF4RVOue^xPtMM+eUz)U*LCw6Ws_IN#IhZovS1iH@C znf*^G&#-#AkqfVXM-~0VTsFWXN}_@UX3}XMZsAlB{p=#M4z`;JbmeQBu3e=42AczH zR3po_C^0?DC^r805Qz#Bm@ua+n17qN-fb_t7GyUO=qkEDO{;q{lApB%Q;l-xW{XOl z1KGB(LnJClU?!brgxj7Lt2@tUe?sgg0$q_^Q?=1mBKgXFMlRf?PMkRQycl~%zXvKv zU?!b1kVo!`g8PG6_7Qdyfv)(*DVlR6&B-(mqZ%6;Z4!MdUsm4H^*{v)%%s!5>ggNN zY;`f#X{p^rpliN8S*vO#FI-RGzvfthsLsdxE{2q|(_|4G*z33Si|L!~CIVe=lvHi;n;;(cc>vWI+Oei6cX*N5-XKb%f&?ba=|2B&qjx2?vhG(|Fkf2;m>OI)z{A4As&ApB2hsC6Xx_b*tAbS_Ta0SW3!tGbX~agQ#&<`*3UDe zsK)8~iyJ$B>=I2=hDcP9z=Sz{eP~Lyg!$W&#mc^R6M?Q_Gih&MQyYK1&d7z&4zej# zs_zgl^F~QjkibkjUBPctlv3}$iK8>@CIVe!0{&>_>)Uu#86y`yr|VVaYWIzzg&HMM zK>{=BbfQCa9@en(J8^BN-9(_Pqsu=nt(A?BTt1R&IDeF4tNoV?ot}xPAb|;Ui={+? z5SD1aCl*e!n+SA`KAx$i%&_q%jf`A){yCl4g*?+m?)*^_6(lfWPG4|IT*T5BoDd%z zb`ycFC3`Kr%2ylz{CN!3nDlKtYcQvm*g@AE6(lfWP6_OM2Uu#kO`4TQQ9%MT=`@pi_5&;XD_x(w(QYEpWly&9EXzW8@d`#Ryj1)SHfPPNgj&?DP(cC{ z=5!WP$0Rm)Uq$`oEP8*y&q9}@t}8zg70R98j2dm*>}1nY-IOcEqa-RwV8Wb|XK_g^ zv~xpcQ$M?jKv%Xlu6%FzFdlnh0@av7r;!wxDU~JkjzR?qOqkQTALTx>M;%?*acWmc zplh4z$}{}zJavoaLi;Eh~<4@uClpYdG8A0 zyk_(ys?l=SY<9YN3pUXbB~d{FGwHP7pbeeLxpF!i;Ix|vbS*ky<)>4^d9Y^W!i%jO z$*TAaW?8C5NmP))Ogim%uDg$|yR(^nr2dtOfK2-@#mWO{?e1QNQDdFfhBfz^!8%gA zLIr;=X3{A^cV+>7q3tA_xY%wY&=t7Vg^%qP$rqkBa^W*~xU=@xR{63QJUOAO&Osyo9ge+Uw(mz8aDo9`^omQ8ux!BPo z?^%styNN(o&q@})mG-zd9%bahi&xFBlq|c8?V_;(Do9`^-C}uJrjPQnbP{t?KM@IZ z^>3+2(rzNqHE4Uf_Jq!ecOPiv!ejIH5(STrXPc~15)~vclTNG1 zzU#!s(TCZ@P`imh*VqC-v}~_vt}oEYg>0$a544*IbWL%l zX#F-t@O}Twg~txwATC{at?VrlB~d{FGwJkfKlxIOORmPw&9$2dbnRG>tlfMU&TH>B za^b7JwuxPY=8<9m`SG$OVKZ)`bS-vwAF4R&{gMsl9paPoF@!4a^dv{?-UCb z=sw>XMM+eUz)U*Ls)ZzrBH45JI%Di60$nvHC27mO?fjl<xcO*|hKOf{_c)A2wCA`PWSZGY zGr{!j3?mo5_<0}U*FRb$`9?`pkibkj%|QOzEbgA)D~j*1n+SA`O-|8%(YMLJb0Zg? zwXKiHKWv^@Nbg!ykibkj?GlmSbU?!dNSG%7l z91l(wYNXvnpeuWc4DETKjc-_OhsiIS)wfeCXu&Fa4&%E%WV#P{`f6M?Qe3;$~4 zG#md_!pMa$dzp{*9~&pCQoBM03CyI^EKZM>>`k`EV&oipUct{oR|i@vx-rtmx4boK z6q)YNtjlJLZ6%^4Do9|$++r!1e-_*Ss-)pNmP))Ogi1QEs|N8JSTj^qU{Xfsxt&={?mBt20pzB0QSKjfnogeWxa^dfH&1YxxD(vd7ArciNFq2Mc zk!4p{#6Xx_i`bH~RF8guz-&(tgK$pvP z7hZ|>JIBx4NHrQytHS==Uc&y=jFPAzfthrgv+OdE-5GU@T_0sP5$Lj(ci{==B6*g` zO;qE^$;V3YjEyYAHA?N%+z0tdWdh3Q#>1iCu+wD9Nj?d6h9ja>Nmeyx=H z)poKYG&Vp53CyHhEY~PIcSK`(uPP> zkibm3#p1SU`*HUz$?Wg|yNN*8B<-*E=oEby`GZm8g6jy~XTo;&wNR8q1qn=;(>Ut% za=mQDZ)^>{qmV$?zp1~q50_|taI=vMA3x-g-c;GZp3>L=6(lf|PQ7qPG4U$y4V$># zZX(d-d-<0(Xpe)pa~QesS|2Nj%d?g;wMmpj1qsZgTP)2^^cEvt-)28z?Ir?UvkOz- zr@w>WYiQ)c2R-f~0(VbgzPX|#Do9`^oo2SPFBiK5bv8P}ZX(cidDsu_l9h7$1&v&I zz?ezm!ILodfW`)>Ab|;UdPhw;EPgd#$6C|77728@{Y}-*kBa0|z8E$9_be9Q9@J)e zXl#HA5|~M+RuXbml$|w>?dxqf5$IYgQ?!mZBKUe~v!GjtUZ(NvE}mXCK9@>2H+2 z+w3L+U8{2^YwOyE^W8p1F1+>M9pd)z?Y@KQU5g45m`SHO%fuuxZep_UIr=@2K-YjJ zN!p7jJ1>^g$b~ojy+hQDtD;BIJ%|btm`SHO{US-CT|>Kmkgf+3=*rSBNh>}xjOTl8 z)L5E(vzXQ8s_stD5>$}DggKoQ^51)LIy4u3DaLLh&~tk{6(gwcg9;LuFsJw6D~l*t>!YYg??EKcRrY(j_JFd^`xY9x@K=N1 zBxE18OPr=Y94bg)CY^egmZti>O-Z6Sz0Z+ASHkvRT0|EcPwab$YW#Te!uMmPU83Z_ zArciNFkw#bD8KK%!?GodUDPi@0$ro}{nqX@u<@yNjm-89u~wPpxmCQSJ~b*xU?!dB zmNwl`Qnb$^-wL~lKv%~Kf3-e7HlF#>sBw9im38X7h7v!t&It+yO=BEXkidkw#d6wZBCC4gvRFy|T_n)e zu7!p7Ib!2|ryIHOhhO`%1A$}3E4m)2Ab|;UBZs_+9Z%XXGHGmp1iGFSaN*m$g7~w@ zV^pKi;+bq+hj!vFwJTJRz=S!?Y&So_+Jr9_OQ;4C=;Ehc_>0p){FP$l!iWF2f_+Eb?*=cBf>!umv|2hA;^f&?baX^kcEE1Oe$pR$*pB}kwvq!q2D zUJ2vx8ydOrossL=r8&QpyfjCK3KEzwr#{2USFGlhsw{=xwMd|=cy(9a@}Qj$E?{J~ zFU2foYn#b7^`eKtn&hh9c5d{==C}u{Pi3$>!Ft=DdD%4|bH@{%U zyeJarYBJZtuT^yLXW5O+_Jj$OlyA4Tv%b`CM+FH?m{WfD^BLvn<1ef+wJRjhH90C% zt2D{M$G+DVAT2PR{Ogeo7bYvEBdG335atn=Xfk0P;Pli_Pn1c_kcaCZ}M;8_SKdxY% z=v|8n5|}V2f_D}dPd#9LX#E2Tbd{X&Q~N&7!Rxvhne7@S+lUXgnXE3Y-Jya6Cd_Fi zZuC5{^z>=Ah1PM9K-a1JKeXO-j`)*@Mvd?5#)_2{2e6kkHb4alOqkPb)VRIk>({NU zH?=Dy(DkTGn$~Z1Bwh0hRHMYZ`QnS0!e-Fe02L%KlTP1h$ajl<`BF$-)3LrRdccJ@ z>>SAtCA9PVLEq6^9vjJf{%+^@cYzC+OCx#nN*$@jd7lfc#PC9D{WFauDoFep=EB!a ziR2<{dm^s&y~S!iuc~G}zb44{(p&FXfETTk#8?Qdrd<6_&TcW)S20Do9|qp4JD8?-mWC>Zx7Nc$f%uy)91}ddjfyvB6YhVb?<$3Mm1KR%P!mRd&z2c^OmR}f!TUW%66$BBWu5A zGo*)!K-Wjt6m1=SQ*Y0haH`RutGjGh{Qzqc;Vn@?0<-m$nV4BmE?&Be{kr5~BG9$4 zatbU63@6hSpwud5`->>0;)5Al|$Ac5I>;{;4q23-qbhi`e92z2$CLFWN{wDW-@ z9aJMRTTMA?bZ*v|YM_DyCgmxgXz`b+TlOl8&e8RNpM|bk4U)7gE_R;j(VJ@AnNvqj zPoLpCKEzw1f&?bzjnfwVW%E2O^+&pgi9px(I!W5nf?<6110&ylb89WxA?Iz~yNkC( z1qoA9-jZ>`PukNOi%-WrOa!{Fk4w_#R-u0T?0!_^$;zs-jtmu7sRk-Yn6mYjH(Ddv zCUli3FFZ^Hx)!=8Yr9*9@ZnXB?0HJ5(z4W=%_4gkU2{;7z-&FO<20%&H$~kM{m;`i z2LfFk>5RsE^u4?4YX(w{jj4I$BX&o$8BEVzP>{fEJ@qVi7MAU&Ws$e;(sLIGbhXKw zs!g~SMAv*U)rjewDsm@UnG~RsqqK3Ra%3Gp>1ZL}LZ(ofmtg7&lYZ5(71iILbOl@v| z8;>5~q#B`b7P7?M<>bFeZ;1*Ln5{R)QD<0(fnM_d2@ey2E-UrOs@}BmndQb(jkM1f z*p}FW@*BOQP(cEd@|4ES_`~w2y2}V^S4f~M_aqlSI4FomJ&2(i$qjz8A&vftuGFqj zK?0NV#!l~|DzjN-0cuxBplfb5E5GR)%zup^M>T#;%csUSyCL@V^p>a~f!TWMm!wrw z8^6CM;;6ri1iC8kvGNr%n8!^rvgh-{KUMJ4=^_Hk0f!TU``tJtiy)I%8J+Dwf0+aG|1&3&AwqKqi;;M&n)bEeVAH5u^;P4Z5Ii2{j286qrAd-%n~De-r`I}bxizZwuHt8s33vadb;MN z>#CMn``Hb;2a!Nm&+Arx(Hg;b2N~IO`=erN(c(v0R%2`c3KE!F?8fv!Q+&5Mk%#us5h;?{=b3*X6vb^-|nH9wx_aMlKRw0psVPYH0|wQ zI&&bx$hWVX`$(MFo=fdZ{dQE4z@$9w$Ss*&22ClTexR`d66li7RP9plNWN4tvge^6 zU1e0t7q*ycpn?Qu>!~j~xs1&0m&9Jt7zYV-HT6%?wjYV$mfS}6yzYh~GO(*;gXwRD z3KE#DrxlZTwdA90@$3SP)sR5fjc&=>ydU9w{CT6s*xTi$ebO9Og2o1@Ac5I>x(B!U zO5e`o*ob=`CIVfpb|h&h%ZKw^(~W$4_V%7qSy7$s9^oxfK?1Y&w5tEGnVjaAs!XA= z0TSqXrX^{v3Z2E;)5xATu31MO^YBxA=pIA`2~5h<=&o*nEZ=rq!gRXNkwDj#>PcF^ zwqbllgN0P%{`%UorQ0%nGd)XCK?0NV)UM`n+2TNPQGlLTNTBO(WRhmHhw{7mjqG{f z8`b5nQd}IRXCf*{V78u4l^m>&(E9@kbd5iftOe3H!`wC)`F5vgLHTs_g)X1G^!>rEbXJ&`kv$)?_qr&xFP}W(@Rq0`f!TVRb-sLAY8+s0O?EpT_n&o;r?%}7mYdJMjP34_k3>3x1c)GLSq9|kicv` zorN^%iej7GTqaZh3JG+bi2JKWmbdX14UFu0+U&xt>M}1`ez>bQ?h1dU$$>B zlWEjXL;_vW_DtRF8mIi16lsC zk#GOw@r9jlnMJmuc7+NOn60N-&LRcWeG9Y8j?}J@Kv$ZTa>)0B_|@4)_I!+cF4dX* zSTvyf0~I7NTTgod)>cxL=qDnY#s)~B%QoN2`Mh9$uCtLnZ&bLX+S6^fXhZioDo9{b zo@P0f25Od;n}y?whlxPfn+z*&-8F%6JX&SMPhx(HorgFcIh) z*3XsyEg8li>@@Q2H&@kBJ9K<}{4TveP(cEd^7Li7ss8Gp;nS4L)b~LGU3q)E@}{}$ zJZQR+Z=aK^mRhM*vZ7PFLInv-%2RUSXj8RXL`(LE`fx~~D~pdS&yi;5+3Xvr#*)Y? zs^_hNYze*3Q9%N;_4H&|)j-XBx{)PQUla*+UHD+-Q?G^dgPt3y#`wM^)eA3ovJW(8 zi3$>!t+!bESu3mOydSeM)b~LGUFFAE`Lab3yy#n_Mz4dp)DP~DSRNW1pn?Qu>uH7e zY611_9yc|a#s)~BtMfY-ex!LM&$+|Mw>Q}Pm8~4;s=Cm)78N8gTTgQtTfejYXUeG4 zXl#H4x@t6V;oqJ|@=mcvzCFI5&ORwc)qT|8MFj~=%F`Z`Qis{|Ms?Isx*kZN>qs99 z{}trm{dyYN^Wbq)*{l8))pgWwM+FH?%G23Ytp>8GjhOnG+7%M$YEvXrdw0OWch%oY zH5%7)XW^r~)KIE{3KE#Dr>9TpJIdDK&DBkGe;|P_&z66+qOTlWcQvx-?{^eZh6LA9 zAJ7^LDo9{bp1#O-{6NC+3IVDojSY}MSI)`5wXU?5nktPN&pIsA$4#rPejem4Q9%N; z^)z-~UsTLpz}4b3zl#LAc8gz{*Hs5!JI=_rkNBpFzHh6mYesrYRFJ@IJ>5|ObHrM$ ziJG0p&PbqZ%%5~k%y96^9gOU`HED&Iozp{oOJf66kicv`ofp17QGE2Pp+2Co0TSqv zlt~>}#=#>zjqLeA^_ut^kYD{y&k|ISz@$9AqfWa>wSF!pvyWZMceWwf`5Nt)QH$vK=$dD z$STmY9Tg-nTTjnKi>LI+bCI2=ehCuj60?)Fe^nxQ^hzV&Ui4X6SzydcR*l96s33va zdiu?uG?wAz=CPc#9)$$DmR?KJ_V)@G>#j!|~*sAy!*+mEU(^A201jG*~MRFJ@=JniQ23XuDpOMK_i*Z>K1 zxmQclx>ANd^q)~9Yd{?t__MCQoBBSeAc5I>TD!~AT+U1TqOYQMg#@}zv`y09#)b05 z4~=|#QQcGKe_KiTQM*C~2~5gU51^bPr<`z#b5sKfbUiD=2eCp+4JizMPQ@T^^%TwCPoXd0j6fdp>_@7P-5~XR&ISw?qXAOv+Pc`%HG( z_RkuDyt{ zam(&QRO9mxyC^-ds_a4S3Kb+UDNo|VSibb#s)~B>sGJd+Q1?c|ze zK8Okun60PT+Cy`c*?s)we0r83fiBz@$9A zKjyVy2TwPZ<7mwb33MI*{!e@0Z{y=G8#PAM7{KJmoCdIQ>hP!1iAtqx=_0f;`O>4+4G6^ zY-)n-y=X`8b5xMPq&&@jq7MG1aa4G0~jH z2B;u`NqKrlovNdLyK_LCzTjaZ&{dZ*&vIEFUgK8?k6mx%+fOy{Qui(?Dc;lA02L%KDNiH%G0oMlS#IiC z==VSZT~8xj`P}EBTpMBJ+kf<-UVdR$y$$7LP(cEd^3;wyHi&i8la zGp~j5h8-l;=u)e;x@grQy1 z1qn>b(^`?Ox;lB@RkoDwb0pAJcDa==ij3gHj~e;*(-rfplUrY7XXsgi3KE!k;ni zJQ^Dyfv%B}F8owNB(K)uG}Xu*bcyv!DxfZ!e!hSL*K~ zfvz&gerVE{_B5pZug17jV%Vm_Y9Z=Vqk;q`<>@r`RzF1G#!{+I?FtEW{qRiF)*gh>uPfdsmWFL&WydN7ZTe@H}djJN#T*Get%yFdkr)DrY{m9`-~=l2IhY&%m*Uf$=b zzTWLFkw91SJ{O*UM=-Be*C4KZej#@EKF37;b`ljN9?(}qH#H35#WL>`QSnin$k?`z z^=cVmBGA?Mz6(DvE0{O(GYD3DwqAO2W7e=rv_u7oCA6pMg?k7u^T;6DoLi}M$a6*! z^c{C3&~-GsmCxuE%vouJu=m@_h8LQzZ=wBBs34Jdx0Qd(4CZ^68ozn@+%MRL0`)}r zEZV~hKMP&0>sz^N^I(4UzELB%Q#m!4-(sCnjo5~&AtEzrpWt6U?T=p6n1vpzCQN7w+^7<~2SUf88xR%E}VY z%c^Vleix`9fp-CY?Izw;vdg8^^Q+t?66mT}&4ou53Fde0Mk|S28!yI9`otRNZYNPe z0^2m59JzIvm_6bWJ5n;jM4;uhqlQ6i2` z(?tSZ%T~DXLvcYoI=k_=s<5k&dN=5-I6@;YRFJ^CfM(DClvLM!Nf))LXNd&5*6gLf z)ubSPsl0K`j~;2PzD~?94_v$;P(cFQw8gUbXe0I8r^>SLK&Od7S3rUbuQoD>XMbwk z=Tn#Zscv1X$n67D6Hq~7SVt@0Oy@cu=w;j=IZHQDw=}IK*ZTBOkU&>g3*G0(gZRSQ z1`#x{tX$qCKrI-sSvhmv!l$KE^?Q%}u;ou5YT?6<2Jssa#=ojzL>XBue}MXG&Kn&S zB(P1>7tzAW2RYn&gDTo&orYY+HCVg+Wai)h3{=8DoEg6K+h|CRgtIR6L#Jb zVIt5qZUcQcoX#CAx%4j8*!&{SM-6Ptwo9i(1qp1^)O+3iO1ap6p`y}vu#iC4;?oxH z=0oewLya2hkfp5t#_HlDok@-g64<6Gk@EZ)%M!FoB+&jrB+%9Gg@r%J9mMy08Goxj zb{DnM$Q0p9V>MKez`KA>f%=(69Tizv{-W_966ngFV&O}ZY~0$yxND~+mQlyP^^&1< zN1=iQwrSd_rx#bJ?d0;{V5f;dSM|RZ{^^B{H+41IZig!6)OGLt<&hodd{9B6+7=gH z%n`(Wei`qN8iB>tq2pS~{XHlY)ZnXC3Gbv(tV5oX#)*BraB(P0W;@AJGI8!4+y*l0@kU*Dh zHm$^U4&qDe8-LxwzoclmsI?lp{JTH}3A_tvcV@^Ok*+pXN6mGYNTBP{rc5oDcM$j6 zX|%*MH<);2&8O~u+g7521h#3)i;g^~$2s1!^MAul1iDToW@-&`2JyDX?@*1@3l)@R zSzECM^kq3zkia%g3GCZHmCaEd75~%p1u*zo=(7LL)Jo6}g)U2t8Y90 z02L&#P18zT%~fnAebJ*cos^CQx;zV6ctR_7Up2wT8w@b++H$@Avb*E`<%Yxy0u>~%P1Bb)E`DGGGkVH^ zVNMf)u1Zxbe8>K?R9i85Vx=t&O)^ZrmTf8(*+W3&UjC zPmLjgu2D-Zyx|@jca1a%=hhx-u_MRW!|tcW)MBnYw>SVm_N&CUr_kci6e%C}Ap=RI$!AfP}RBT9`o(zG!f`( zMrU$dRw8(|ImUkHTm@RI1*?2w{r6rFs31}7kd?>OkKnV4wj-itt=8(z%6U}pQBD(q zt_;n}Ph>>!IG4^u)DLf@+Kv}eFWK1dUl6Duf%~~>-MM)Ov2F8E zwXf4@BG6Ur#!u}$oo#rShfS+G!%t72%-0$lvVz{pUVZW5x4ud9>qL*5b|ufeI41JDWxmLBnOYi8a~FkxmnV zF1P$i+ALQ)cP=ybJ3Bh|lUrKFEA6jc5U3!5`?=|4?#82K`o6h7tLYv@0$n3=CuwC0 zgz@6-2T+YVkNe5TpJ(WW>FtaP61bn6_8aKKrT_g(q7hvWB+#|fmZW_tAIb;24x$?W zjgFLMIz$SU+7&8D;C^meE2`g5E{NSEYS1VZ33SDzQ-+?0@Na7dQ;k0H-DKfM3F05s zKm`fholRdFAKgRhJ-!JC)j$GWRc_Na@5co5Erp|~hVRnmvSC?^{7Umzs33v6v+1o? ziOZ6`-DQ=rP7{HyBsx3(#;G8>=Ei>K8i`)A@tZPo``rry6(n#!H$55FRF?678_8Sr zK1Tvwy*j69rOOBLTfWAA=ZlTbALeoNJf4b(VAc4EH>0F$+9-=^

ix;b0pB^KQ=@2%4_3)TaBR_VpVqW&eB(I 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%0Do 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 Date: Tue, 24 Oct 2017 12:50:53 +0200 Subject: [PATCH 118/218] Optimise icon --- resources/themes/cura-light/icons/home.svg | 57 +--------------------- 1 file changed, 2 insertions(+), 55 deletions(-) diff --git a/resources/themes/cura-light/icons/home.svg b/resources/themes/cura-light/icons/home.svg index 617c3ce9da..a355aa07f6 100644 --- a/resources/themes/cura-light/icons/home.svg +++ b/resources/themes/cura-light/icons/home.svg @@ -1,56 +1,3 @@ - - - - - - image/svg+xml - - - - - - - - + + From c1139c5c45b2a6e9b169af6cc17a580978445abc Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Tue, 24 Oct 2017 13:38:14 +0200 Subject: [PATCH 119/218] Update stack error checking when switching matchines - CURA-4447 --- cura/Settings/MachineManager.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index efc9515ef1..fc5c415f87 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -341,6 +341,7 @@ class MachineManager(QObject): self.activeQualityChanged.emit() self.activeVariantChanged.emit() self.activeMaterialChanged.emit() + self._updateStacksHaveErrors() # Prevents unwanted re-slices after changing machine self._error_check_timer.start() def _onInstanceContainersChanged(self, container): @@ -357,6 +358,8 @@ class MachineManager(QObject): @pyqtSlot(str) def setActiveMachine(self, stack_id: str) -> None: self.blurSettings.emit() # Ensure no-one has focus. + self._cancelDelayedActiveContainerStackChanges() + containers = ContainerRegistry.getInstance().findContainerStacks(id = stack_id) if containers: Application.getInstance().setGlobalContainerStack(containers[0]) @@ -895,6 +898,12 @@ class MachineManager(QObject): self._active_container_stack.variant = self._new_variant_container self._new_variant_container = None + ## Cancel set changes for material and variant in the active container stack. + # Used for ignoring any changes when switching between printers (setActiveMachine) + def _cancelDelayedActiveContainerStackChanges(self): + self._new_material_container = None + self._new_variant_container = None + ## Determine the quality and quality changes settings for the current machine for a quality name. # # \param quality_name \type{str} the name of the quality. From 6dfd04928f764f6a4bd23501b32f579d3bc8d271 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 24 Oct 2017 14:51:35 +0200 Subject: [PATCH 120/218] CURA-4485 Activate configuration option disabled in printers within a cluster. Just allow when there is a cluster with just one printer. --- .../NetworkClusterPrinterOutputDevice.py | 4 +++- plugins/UM3NetworkPrinting/UM3InfoComponents.qml | 10 +++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py index cfa793996b..e482cbd4e3 100644 --- a/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/NetworkClusterPrinterOutputDevice.py @@ -220,7 +220,9 @@ class NetworkClusterPrinterOutputDevice(NetworkPrinterOutputDevice.NetworkPrinte self.setPrinters(json_data) def materialHotendChangedMessage(self, callback): - pass # Do nothing. + # When there is just one printer, the activate configuration option is enabled + if (self._cluster_size == 1): + super().materialHotendChangedMessage(callback = callback) def _startCameraStream(self): ## Request new image diff --git a/plugins/UM3NetworkPrinting/UM3InfoComponents.qml b/plugins/UM3NetworkPrinting/UM3InfoComponents.qml index 2c3902dcff..87b8b219b7 100644 --- a/plugins/UM3NetworkPrinting/UM3InfoComponents.qml +++ b/plugins/UM3NetworkPrinting/UM3InfoComponents.qml @@ -115,8 +115,16 @@ Item { tooltip: catalog.i18nc("@info:tooltip", "Load the configuration of the printer into Cura") text: catalog.i18nc("@action:button", "Activate Configuration") - visible: printerConnected + visible: printerConnected && !isClusterPrinter() onClicked: manager.loadConfigurationFromPrinter() + + function isClusterPrinter() { + var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize + // This is a non cluster printer or the cluster it is just one printer + if (typeof clusterSize == "undefined" || clusterSize == 1) + return false + return true + } } } From a66d27e30e558395028fb032c86391b18a9410dc Mon Sep 17 00:00:00 2001 From: Jack Ha Date: Tue, 24 Oct 2017 15:01:57 +0200 Subject: [PATCH 121/218] CURA-4176 reintroduced Wall Extruder. Added limit_to_extruder trick in wall_line_width as suggested in issue to evade inheritance problems. --- resources/definitions/fdmprinter.def.json | 49 +++++++++++++++-------- resources/definitions/ultimaker3.def.json | 2 +- 2 files changed, 34 insertions(+), 17 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index baae3f7579..0ce59b942d 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -682,6 +682,7 @@ "value": "line_width", "default_value": 0.4, "type": "float", + "limit_to_extruder": "wall_0_extruder_nr if wall_x_extruder_nr == wall_0_extruder_nr else -1", "settable_per_mesh": true, "children": { @@ -880,29 +881,45 @@ "type": "category", "children": { - "wall_0_extruder_nr": + "wall_extruder_nr": { - "label": "Outer Wall Extruder", - "description": "The extruder train used for printing the outer wall. This is used in multi-extrusion.", + "label": "Wall Extruder", + "description": "The extruder train used for printing the walls. This is used in multi-extrusion.", "type": "optional_extruder", "default_value": "-1", "settable_per_mesh": false, "settable_per_extruder": false, "settable_per_meshgroup": true, "settable_globally": true, - "enabled": "machine_extruder_count > 1" - }, - "wall_x_extruder_nr": - { - "label": "Inner Walls Extruder", - "description": "The extruder train used for printing the inner walls. This is used in multi-extrusion.", - "type": "optional_extruder", - "default_value": "-1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "machine_extruder_count > 1" + "enabled": "machine_extruder_count > 1", + "children": { + "wall_0_extruder_nr": + { + "label": "Outer Wall Extruder", + "description": "The extruder train used for printing the outer wall. This is used in multi-extrusion.", + "type": "optional_extruder", + "value": "wall_extruder_nr", + "default_value": "-1", + "settable_per_mesh": false, + "settable_per_extruder": false, + "settable_per_meshgroup": true, + "settable_globally": true, + "enabled": "machine_extruder_count > 1" + }, + "wall_x_extruder_nr": + { + "label": "Inner Wall Extruder", + "description": "The extruder train used for printing the inner walls. This is used in multi-extrusion.", + "type": "optional_extruder", + "value": "wall_extruder_nr", + "default_value": "-1", + "settable_per_mesh": false, + "settable_per_extruder": false, + "settable_per_meshgroup": true, + "settable_globally": true, + "enabled": "machine_extruder_count > 1" + } + } }, "wall_thickness": { diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index 21f80e18fd..05e39e365c 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -150,7 +150,7 @@ "top_bottom_thickness": { "value": "1" }, "travel_avoid_distance": { "value": "3" }, "wall_0_inset": { "value": "0" }, - "wall_line_width_x": { "value": "round(line_width * 0.3 / 0.35, 2)" }, + "wall_line_width_x": { "value": "round(wall_line_width * 0.3 / 0.35, 2)" }, "wall_thickness": { "value": "1" } } } From 0eedfa5c1816b79d41a326a069af19f8b875fb9d Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 24 Oct 2017 15:45:20 +0200 Subject: [PATCH 122/218] CURA-4485 Disabling automatic material and variant when connecting to a printer within a cluster of more than 1 printer. --- resources/qml/Menus/MaterialMenu.qml | 12 ++++++++++-- resources/qml/Menus/NozzleMenu.qml | 12 ++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/resources/qml/Menus/MaterialMenu.qml b/resources/qml/Menus/MaterialMenu.qml index 1688bc228a..5422457140 100644 --- a/resources/qml/Menus/MaterialMenu.qml +++ b/resources/qml/Menus/MaterialMenu.qml @@ -14,6 +14,14 @@ Menu property int extruderIndex: 0 property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 + property bool isClusterPrinter: + { + var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize + // This is a non cluster printer or the cluster it is just one printer + if (typeof clusterSize == "undefined" || clusterSize == 1) + return false + return true + } UM.SettingPropertyProvider { @@ -29,14 +37,14 @@ Menu id: automaticMaterial text: { - if(printerConnected && Cura.MachineManager.printerOutputDevices[0].materialNames.length > extruderIndex) + if(printerConnected && Cura.MachineManager.printerOutputDevices[0].materialNames.length > extruderIndex && !isClusterPrinter) { var materialName = Cura.MachineManager.printerOutputDevices[0].materialNames[extruderIndex]; return catalog.i18nc("@title:menuitem %1 is the automatically selected material", "Automatic: %1").arg(materialName); } return ""; } - visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].materialNames.length > extruderIndex + visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].materialNames.length > extruderIndex && !isClusterPrinter onTriggered: { var materialId = Cura.MachineManager.printerOutputDevices[0].materialIds[extruderIndex]; diff --git a/resources/qml/Menus/NozzleMenu.qml b/resources/qml/Menus/NozzleMenu.qml index b51b3b1907..79bc105b58 100644 --- a/resources/qml/Menus/NozzleMenu.qml +++ b/resources/qml/Menus/NozzleMenu.qml @@ -14,20 +14,28 @@ Menu property int extruderIndex: 0 property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 + property bool isClusterPrinter: + { + var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize + // This is a non cluster printer or the cluster it is just one printer + if (typeof clusterSize == "undefined" || clusterSize == 1) + return false + return true + } MenuItem { id: automaticNozzle text: { - if(printerConnected && Cura.MachineManager.printerOutputDevices[0].hotendIds.length > extruderIndex) + if(printerConnected && Cura.MachineManager.printerOutputDevices[0].hotendIds.length > extruderIndex && !isClusterPrinter) { var nozzleName = Cura.MachineManager.printerOutputDevices[0].hotendIds[extruderIndex]; return catalog.i18nc("@title:menuitem %1 is the nozzle currently loaded in the printer", "Automatic: %1").arg(nozzleName); } return ""; } - visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].hotendIds.length > extruderIndex + visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].hotendIds.length > extruderIndex && !isClusterPrinter onTriggered: { var activeExtruderIndex = ExtruderManager.activeExtruderIndex; From 7404df66ac30e61aa291cc3ac5e74165a656ac0b Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 24 Oct 2017 16:46:45 +0200 Subject: [PATCH 123/218] CURA-4481 Disable "Remove empty layers" when support is enabled. When support is enabled then it doesn't matter if the user choose whether to remove or not the empty layers, because it's done after generating supports. In order to avoid confusion to the user, the setting is disabled. --- resources/definitions/fdmprinter.def.json | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 0ce59b942d..22bbe93b3f 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3980,6 +3980,7 @@ "description": "Remove empty layers beneath the first printed layer if they are present.", "type": "bool", "default_value": true, + "enabled": "not support_enable", "settable_per_mesh": false, "settable_per_extruder": false } From 0f807cd03e377118e671c4e8e5ab57f7c11f5fbb Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Tue, 24 Oct 2017 17:38:06 +0200 Subject: [PATCH 124/218] Wfter changing the view the old view is removed from rendering CURA-4062 --- plugins/LayerView/LayerView.py | 1 + plugins/XRayView/XRayView.py | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/LayerView/LayerView.py b/plugins/LayerView/LayerView.py index d23dd90915..7543907780 100755 --- a/plugins/LayerView/LayerView.py +++ b/plugins/LayerView/LayerView.py @@ -335,6 +335,7 @@ class LayerView(View): if self._global_container_stack: self._global_container_stack.propertyChanged.disconnect(self._onPropertyChanged) + self.getRenderer().removeRenderPass(self._layer_pass) self._composite_pass.setLayerBindings(self._old_layer_bindings) self._composite_pass.setCompositeShader(self._old_composite_shader) diff --git a/plugins/XRayView/XRayView.py b/plugins/XRayView/XRayView.py index ed8d14b8b4..e7715209d0 100644 --- a/plugins/XRayView/XRayView.py +++ b/plugins/XRayView/XRayView.py @@ -74,5 +74,6 @@ class XRayView(View): self._composite_pass.setCompositeShader(self._xray_composite_shader) if event.type == Event.ViewDeactivateEvent: + self.getRenderer().removeRenderPass(self._xray_pass) self._composite_pass.setLayerBindings(self._old_layer_bindings) self._composite_pass.setCompositeShader(self._old_composite_shader) From 7bf854aa0f517805a958e296fd85a1a0349fd067 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 25 Oct 2017 09:52:14 +0200 Subject: [PATCH 125/218] Remove some changes, debugging - CURA-4451 --- cura/CuraApplication.py | 1 + cura/Settings/MachineManager.py | 7 +-- cura/Settings/NotSupportedProfileContainer.py | 47 ------------------- cura/Settings/ProfilesModel.py | 19 ++------ .../builder_premium_small.def.json | 5 +- resources/qml/Menus/ProfileMenu.qml | 6 +-- resources/qml/Settings/SettingView.qml | 10 ++-- resources/qml/SidebarHeader.qml | 30 +++++------- .../um3_aa0.4_PVA_Fast_Print.inst.cfg | 14 ------ .../um3_aa0.8_PVA_Fast_Print.inst.cfg | 14 ------ .../um3_aa0.8_PVA_Superdraft_Print.inst.cfg | 14 ------ 11 files changed, 35 insertions(+), 132 deletions(-) delete mode 100644 cura/Settings/NotSupportedProfileContainer.py delete mode 100644 resources/quality/ultimaker3/um3_aa0.4_PVA_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_aa0.8_PVA_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_aa0.8_PVA_Superdraft_Print.inst.cfg diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 1680e7c6a6..3af1112afc 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -272,6 +272,7 @@ class CuraApplication(QtApplication): empty_quality_container.setName("Not Supported") empty_quality_container.addMetaDataEntry("quality_type", "normal") empty_quality_container.addMetaDataEntry("type", "quality") + empty_quality_container.addMetaDataEntry("supported", False) ContainerRegistry.getInstance().addContainer(empty_quality_container) empty_quality_changes_container = copy.deepcopy(empty_container) empty_quality_changes_container._id = "empty_quality_changes" diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index fc5c415f87..f77121a2af 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -862,8 +862,8 @@ class MachineManager(QObject): name_changed_connect_stacks.append(stack_quality) name_changed_connect_stacks.append(stack_quality_changes) - self._replaceQualityOrQualityChangesInStack(stack, stack_quality, postpone_emit=True) - self._replaceQualityOrQualityChangesInStack(stack, stack_quality_changes, postpone_emit=True) + self._replaceQualityOrQualityChangesInStack(stack, stack_quality, postpone_emit = True) + self._replaceQualityOrQualityChangesInStack(stack, stack_quality_changes, postpone_emit = True) # Connect to onQualityNameChanged for stack in name_changed_connect_stacks: @@ -927,7 +927,8 @@ class MachineManager(QObject): for stack in stacks: material = stack.material quality = quality_manager.findQualityByQualityType(quality_type, global_machine_definition, [material]) - if not quality: #No quality profile is found for this quality type. + if not quality: + # No quality profile is found for this quality type. quality = self._empty_quality_container result.append({"stack": stack, "quality": quality, "quality_changes": empty_quality_changes}) diff --git a/cura/Settings/NotSupportedProfileContainer.py b/cura/Settings/NotSupportedProfileContainer.py deleted file mode 100644 index 156f13ba4a..0000000000 --- a/cura/Settings/NotSupportedProfileContainer.py +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. - -from UM.Signal import signalemitter - -from UM.Settings.InstanceContainer import InstanceContainer -from UM.Settings.ContainerRegistry import ContainerRegistry -from UM.MimeTypeDatabase import MimeType, MimeTypeDatabase - - -## A container for not supported profiles. -# -# -@signalemitter -class NotSupportedProfileContainer(InstanceContainer): - - def __init__(self, container_id: str, machine_id: str, material_id: str, *args, **kwargs): - super().__init__(container_id, *args, **kwargs) - - # self._id = str(container_id) # type: str - # self._name = "Not supported" # type: str - - self.setMetaData({ - "setting_version": 3, - "supported": False, - "type": "quality", - "weight": "0", - "material": material_id - }) - - # register this container - ContainerRegistry.getInstance().addContainer(self) - - # set printer definition - definition = ContainerRegistry.getInstance().findDefinitionContainers(id = machine_id) - self.setDefinition(definition[0]) - - -# register the container mime type -not_support_instance_mime = MimeType( - name = "application/x-cura-notsupportedinstancecontainer", - comment = "Cura Not Supported Instance Container", - suffixes = [] -) - -MimeTypeDatabase.addMimeType(not_support_instance_mime) -ContainerRegistry.addContainerTypeByName(NotSupportedProfileContainer, "not_supported_instance", not_support_instance_mime.name) diff --git a/cura/Settings/ProfilesModel.py b/cura/Settings/ProfilesModel.py index 68d538c671..4f931e6d94 100644 --- a/cura/Settings/ProfilesModel.py +++ b/cura/Settings/ProfilesModel.py @@ -11,7 +11,6 @@ from UM.Settings.Models.InstanceContainersModel import InstanceContainersModel from cura.QualityManager import QualityManager from cura.Settings.ExtruderManager import ExtruderManager -from cura.Settings.NotSupportedProfileContainer import NotSupportedProfileContainer ## QML Model for listing the current list of valid quality profiles. @@ -20,14 +19,12 @@ class ProfilesModel(InstanceContainersModel): LayerHeightRole = Qt.UserRole + 1001 LayerHeightWithoutUnitRole = Qt.UserRole + 1002 AvailableRole = Qt.UserRole + 1003 - NotSupportedRole = Qt.UserRole + 1004 def __init__(self, parent = None): super().__init__(parent) self.addRoleName(self.LayerHeightRole, "layer_height") self.addRoleName(self.LayerHeightWithoutUnitRole, "layer_height_without_unit") self.addRoleName(self.AvailableRole, "available") - self.addRoleName(self.NotSupportedRole, "not_supported") Application.getInstance().globalContainerStackChanged.connect(self._update) @@ -74,12 +71,9 @@ class ProfilesModel(InstanceContainersModel): # The actual list of quality profiles come from the first extruder in the extruder list. result = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, extruder_stacks) - # If not qualities are found we dynamically create an empty container with name "Not Supported" if len(result) == 0: - machine_id = global_container_stack.definition.getId() - material_id = extruder_stacks[0].material.getId() - container_id = machine_id + "_" + material_id + "_not_supported" - not_supported_container = NotSupportedProfileContainer(container_id, machine_id, material_id) + # If not qualities are found we dynamically create a not supported container for this machine + material combination + not_supported_container = ContainerRegistry.getInstance().findContainers(id = "empty_quality")[0] result.append(not_supported_container) return result @@ -127,8 +121,7 @@ class ProfilesModel(InstanceContainersModel): extruder_stacks = new_extruder_stacks + extruder_stacks # Get a list of usable/available qualities for this machine and material - qualities = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, - extruder_stacks) + qualities = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, extruder_stacks) container_registry = ContainerRegistry.getInstance() machine_manager = Application.getInstance().getMachineManager() @@ -177,8 +170,7 @@ class ProfilesModel(InstanceContainersModel): if not profile: self._setItemLayerHeight(item, "", "") item["available"] = False - item["not_supported"] = True - yield item + yield None continue profile = profile[0] @@ -187,7 +179,6 @@ class ProfilesModel(InstanceContainersModel): # Easy case: This profile defines its own layer height. if profile.hasProperty("layer_height", "value"): self._setItemLayerHeight(item, profile.getProperty("layer_height", "value"), unit) - item["not_supported"] = False yield item continue @@ -206,7 +197,6 @@ class ProfilesModel(InstanceContainersModel): quality = None if quality and quality.hasProperty("layer_height", "value"): self._setItemLayerHeight(item, quality.getProperty("layer_height", "value"), unit) - item["not_supported"] = False yield item continue @@ -217,7 +207,6 @@ class ProfilesModel(InstanceContainersModel): if not skip_until_container or skip_until_container == ContainerRegistry.getInstance().getEmptyInstanceContainer(): #No variant in stack. skip_until_container = global_container_stack.getBottom() self._setItemLayerHeight(item, global_container_stack.getRawProperty("layer_height", "value", skip_until_container = skip_until_container.getId()), unit) # Fall through to the currently loaded material. - item["not_supported"] = False yield item def _setItemLayerHeight(self, item, value, unit): diff --git a/resources/definitions/builder_premium_small.def.json b/resources/definitions/builder_premium_small.def.json index 65103ce1af..b4756f955b 100644 --- a/resources/definitions/builder_premium_small.def.json +++ b/resources/definitions/builder_premium_small.def.json @@ -11,8 +11,11 @@ "file_formats": "text/x-gcode", "platform": "builder_premium_platform.stl", "platform_offset": [-126, -36, 117], + "has_machine_quality": true, - "preferred_quality": "*Normal*", + "preferred_material": "*pla*", + "preferred_quality": "*normal*", + "machine_extruder_trains": { "0": "builder_premium_small_rear", diff --git a/resources/qml/Menus/ProfileMenu.qml b/resources/qml/Menus/ProfileMenu.qml index f3886d4743..fb1ade6e0b 100644 --- a/resources/qml/Menus/ProfileMenu.qml +++ b/resources/qml/Menus/ProfileMenu.qml @@ -17,12 +17,12 @@ Menu MenuItem { - text: model.name + (model.layer_height != "" ? (" - " + model.layer_height) : "") + text: model.name + " - " + model.layer_height checkable: true - checked: Cura.MachineManager.activeQualityChangesId == "" && Cura.MachineManager.activeQualityType == model.metadata.quality_type + checked: Cura.MachineManager.activeQualityId == model.id exclusiveGroup: group onTriggered: Cura.MachineManager.setActiveQuality(model.id) - visible: model.available || model.not_supported + visible: model.available } onObjectAdded: menu.insertItem(index, object); diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 1892b9d5a6..14c85d81e8 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -63,10 +63,14 @@ Item menu: ProfileMenu { } function generateActiveQualityText () { - var result = "" + var result = catalog.i18nc("@", "No Profile Available") // default text - if (Cura.MachineManager.activeQualityName) { - result += Cura.MachineManager.activeQualityName + console.log("Cura.MachineManager.activeQualityName", Cura.MachineManager.activeQualityName) + console.log("Cura.ProfilesModel.rowCount()", Cura.ProfilesModel.rowCount()) + console.log("Cura.MachineManager.isActiveQualitySupported", Cura.MachineManager.isActiveQualitySupported) + + if (Cura.MachineManager.activeQualityName && Cura.ProfilesModel.rowCount() > 0) { + result = Cura.MachineManager.activeQualityName if (Cura.MachineManager.activeQualityLayerHeight > 0) { result += " " diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index f3887e2885..78e21f3a68 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -245,35 +245,29 @@ Column color: UM.Theme.getColor("text"); } - ToolButton { + ToolButton + { id: materialSelection + text: Cura.MachineManager.activeMaterialName tooltip: Cura.MachineManager.activeMaterialName visible: Cura.MachineManager.hasMaterials - property var valueError: - { - var data = Cura.ContainerManager.getContainerMetaDataEntry(Cura.MachineManager.activeMaterialId, "compatible") - if(data == "False") - { - return true - } - else - { - return false - } - - } - property var valueWarning: ! Cura.MachineManager.isActiveQualitySupported - enabled: !extrudersList.visible || base.currentExtruderIndex > -1 - height: UM.Theme.getSize("setting_control").height width: parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width anchors.right: parent.right style: UM.Theme.styles.sidebar_header_button activeFocusOnPress: true; + menu: MaterialMenu { + extruderIndex: base.currentExtruderIndex + } - menu: MaterialMenu { extruderIndex: base.currentExtruderIndex } + property var valueError: !isMaterialSupported() + property var valueWarning: ! Cura.MachineManager.isActiveQualitySupported + + function isMaterialSupported () { + return Cura.ContainerManager.getContainerMetaDataEntry(Cura.MachineManager.activeMaterialId, "compatible") == "True" + } } } diff --git a/resources/quality/ultimaker3/um3_aa0.4_PVA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PVA_Fast_Print.inst.cfg deleted file mode 100644 index 121d9c92bb..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.4_PVA_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -weight = 0 -type = quality -quality_type = normal -material = generic_pva_ultimaker3_AA_0.4 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_aa0.8_PVA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PVA_Fast_Print.inst.cfg deleted file mode 100644 index 071a72da0d..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.8_PVA_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -weight = 0 -type = quality -quality_type = normal -material = generic_pva_ultimaker3_AA_0.8 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_aa0.8_PVA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PVA_Superdraft_Print.inst.cfg deleted file mode 100644 index 485226fe3d..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.8_PVA_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -weight = 0 -type = quality -quality_type = superdraft -material = generic_pva_ultimaker3_AA_0.8 -supported = False -setting_version = 3 - -[values] From e824996af7d468032d8410d7a0ab58c5d6e3f724 Mon Sep 17 00:00:00 2001 From: daid Date: Fri, 6 Oct 2017 15:44:10 +0200 Subject: [PATCH 126/218] Fix the OpenGL shader for older (legacy?) OpenGL. As the grid shader was no longer working. --- resources/shaders/grid.shader | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/shaders/grid.shader b/resources/shaders/grid.shader index ca1e56e060..07cb1a01a6 100644 --- a/resources/shaders/grid.shader +++ b/resources/shaders/grid.shader @@ -31,10 +31,10 @@ fragment = vec4 minorGridColor = mix(u_plateColor, u_gridColor1, 1.0 - min(minorLine, 1.0)); // Compute anti-aliased world-space major grid lines - vec2 majorGrid = abs(fract(coord / 10 - 0.5) - 0.5) / fwidth(coord / 10); + vec2 majorGrid = abs(fract(coord / 10.0 - 0.5) - 0.5) / fwidth(coord / 10.0); float majorLine = min(majorGrid.x, majorGrid.y); - frag_color = mix(minorGridColor, u_gridColor0, 1.0 - min(majorLine, 1.0)); + gl_FragColor = mix(minorGridColor, u_gridColor0, 1.0 - min(majorLine, 1.0)); } vertex41core = @@ -72,7 +72,7 @@ fragment41core = vec4 minorGridColor = mix(u_plateColor, u_gridColor1, 1.0 - min(minorLine, 1.0)); // Compute anti-aliased world-space major grid lines - vec2 majorGrid = abs(fract(coord / 10 - 0.5) - 0.5) / fwidth(coord / 10); + vec2 majorGrid = abs(fract(coord / 10.0 - 0.5) - 0.5) / fwidth(coord / 10.0); float majorLine = min(majorGrid.x, majorGrid.y); frag_color = mix(minorGridColor, u_gridColor0, 1.0 - min(majorLine, 1.0)); From d2873dc65a7e553555e44b5faf6c781d6a04eaaa Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Wed, 25 Oct 2017 11:06:12 +0200 Subject: [PATCH 127/218] The view class were not added after to the rendering list after changing them CURA-4062 --- plugins/LayerView/LayerView.py | 5 +++-- plugins/XRayView/XRayView.py | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/LayerView/LayerView.py b/plugins/LayerView/LayerView.py index 7543907780..a7dbb88209 100755 --- a/plugins/LayerView/LayerView.py +++ b/plugins/LayerView/LayerView.py @@ -112,7 +112,7 @@ class LayerView(View): self._layer_pass = LayerPass.LayerPass(1, 1) self._compatibility_mode = OpenGLContext.isLegacyOpenGL() or bool(Preferences.getInstance().getValue("view/force_layer_view_compatibility_mode")) self._layer_pass.setLayerView(self) - self.getRenderer().addRenderPass(self._layer_pass) + #self.getRenderer().addRenderPass(self._layer_pass) return self._layer_pass def getCurrentLayer(self): @@ -310,7 +310,8 @@ class LayerView(View): if event.type == Event.ViewActivateEvent: # Make sure the LayerPass is created - self.getLayerPass() + layer_pass = self.getLayerPass() + self.getRenderer().addRenderPass(layer_pass) Application.getInstance().globalContainerStackChanged.connect(self._onGlobalStackChanged) self._onGlobalStackChanged() diff --git a/plugins/XRayView/XRayView.py b/plugins/XRayView/XRayView.py index e7715209d0..2983772647 100644 --- a/plugins/XRayView/XRayView.py +++ b/plugins/XRayView/XRayView.py @@ -56,6 +56,8 @@ class XRayView(View): # Currently the RenderPass constructor requires a size > 0 # This should be fixed in RenderPass's constructor. self._xray_pass = XRayPass.XRayPass(1, 1) + + if self._xray_pass: self.getRenderer().addRenderPass(self._xray_pass) if not self._xray_composite_shader: From 9ad0fd2b83ad2cd0637c935204cc8c99b4b3f088 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 25 Oct 2017 11:28:41 +0200 Subject: [PATCH 128/218] Remove dash if plug-in author is empty Contributes to issue CURA-4477. --- plugins/PluginBrowser/PluginBrowser.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PluginBrowser/PluginBrowser.qml b/plugins/PluginBrowser/PluginBrowser.qml index 71e88c652b..13000d23ad 100644 --- a/plugins/PluginBrowser/PluginBrowser.qml +++ b/plugins/PluginBrowser/PluginBrowser.qml @@ -114,7 +114,7 @@ UM.Dialog anchors.rightMargin: UM.Theme.getSize("default_margin").width Label { - text: "" + model.name + " - " + model.author + text: "" + model.name + "" + ((model.author !== "") ? (" - " + model.author) : "") width: contentWidth height: contentHeight + UM.Theme.getSize("default_margin").height verticalAlignment: Text.AlignVCenter From ff847aa329134d825c0f3db4395c74a311c3c63c Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Wed, 25 Oct 2017 11:52:43 +0200 Subject: [PATCH 129/218] Fix qml error when there is no connected printer Also fixes code style --- plugins/UM3NetworkPrinting/UM3InfoComponents.qml | 16 +++++++++++----- resources/qml/Menus/MaterialMenu.qml | 16 +++++++++++----- resources/qml/Menus/NozzleMenu.qml | 16 +++++++++++----- 3 files changed, 33 insertions(+), 15 deletions(-) diff --git a/plugins/UM3NetworkPrinting/UM3InfoComponents.qml b/plugins/UM3NetworkPrinting/UM3InfoComponents.qml index 87b8b219b7..d0c95e1524 100644 --- a/plugins/UM3NetworkPrinting/UM3InfoComponents.qml +++ b/plugins/UM3NetworkPrinting/UM3InfoComponents.qml @@ -119,11 +119,17 @@ Item onClicked: manager.loadConfigurationFromPrinter() function isClusterPrinter() { - var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize - // This is a non cluster printer or the cluster it is just one printer - if (typeof clusterSize == "undefined" || clusterSize == 1) - return false - return true + if(Cura.MachineManager.printerOutputDevices.length == 0) + { + return false; + } + var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize; + // This is not a cluster printer or the cluster it is just one printer + if(clusterSize == undefined || clusterSize == 1) + { + return false; + } + return true; } } } diff --git a/resources/qml/Menus/MaterialMenu.qml b/resources/qml/Menus/MaterialMenu.qml index 5422457140..d3ecfb69fe 100644 --- a/resources/qml/Menus/MaterialMenu.qml +++ b/resources/qml/Menus/MaterialMenu.qml @@ -16,11 +16,17 @@ Menu property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 property bool isClusterPrinter: { - var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize - // This is a non cluster printer or the cluster it is just one printer - if (typeof clusterSize == "undefined" || clusterSize == 1) - return false - return true + if(Cura.MachineManager.printerOutputDevices.length == 0) + { + return false; + } + var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize; + // This is not a cluster printer or the cluster it is just one printer + if(clusterSize == undefined || clusterSize == 1) + { + return false; + } + return true; } UM.SettingPropertyProvider diff --git a/resources/qml/Menus/NozzleMenu.qml b/resources/qml/Menus/NozzleMenu.qml index 79bc105b58..e9f2df1f38 100644 --- a/resources/qml/Menus/NozzleMenu.qml +++ b/resources/qml/Menus/NozzleMenu.qml @@ -16,11 +16,17 @@ Menu property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 property bool isClusterPrinter: { - var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize - // This is a non cluster printer or the cluster it is just one printer - if (typeof clusterSize == "undefined" || clusterSize == 1) - return false - return true + if(Cura.MachineManager.printerOutputDevices.length == 0) + { + return false; + } + var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize; + // This is not a cluster printer or the cluster it is just one printer + if(clusterSize == undefined || clusterSize == 1) + { + return false; + } + return true; } MenuItem From 73e809b956ce79629cc70d47c94a4e8d3b14ee63 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 25 Oct 2017 13:20:05 +0200 Subject: [PATCH 130/218] Remove specialised start g-code from Creality CR-10 By request from Michael. This makes it the same as the start g-code for the Custom FDM Printer, which apparently works better. --- resources/definitions/creality_cr10.def.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/resources/definitions/creality_cr10.def.json b/resources/definitions/creality_cr10.def.json index ced6f32b7b..bacae6e2e5 100644 --- a/resources/definitions/creality_cr10.def.json +++ b/resources/definitions/creality_cr10.def.json @@ -59,9 +59,6 @@ "skirt_gap": { "default_value": 5 }, - "machine_start_gcode": { - "default_value": "G21 ;metric values\nG90 ;absolute Positioning\nG28 ; home all axes\nG1 Z5 F3000 ; lift\nG1 X20 Y2 F1500 ; avoid binder clips\nG1 Z0.2 F3000 ; get ready to prime\nG92 E0 ; reset extrusion distance\nG1 X120 E10 F600 ; prime nozzle\nG1 X150 F5000 ; quick wipe" - }, "machine_end_gcode": { "default_value": "G91\nG1 F1800 E-3\nG1 F3000 Z10\nG90\nG28 X0 Y0 ; home x and y axis\nM106 S0 ; turn off cooling fan\nM104 S0 ; turn off extruder\nM140 S0 ; turn off bed\nM84 ; disable motors" }, From 9b62b4850938248f9f9fc5d56bc227d416a1f08a Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 25 Oct 2017 13:27:35 +0200 Subject: [PATCH 131/218] WIP - CURA-4451 --- cura/QualityManager.py | 28 ++++++++++++--- cura/Settings/MachineManager.py | 64 +++++++++++++++++++++++++-------- cura/Settings/ProfilesModel.py | 30 +++++++++++----- 3 files changed, 95 insertions(+), 27 deletions(-) diff --git a/cura/QualityManager.py b/cura/QualityManager.py index b6d47d919b..d2a2df27ac 100644 --- a/cura/QualityManager.py +++ b/cura/QualityManager.py @@ -178,12 +178,32 @@ class QualityManager: def findAllUsableQualitiesForMachineAndExtruders(self, global_container_stack: "GlobalStack", extruder_stacks: List["ExtruderStack"]) -> List[InstanceContainer]: global_machine_definition = global_container_stack.getBottom() + machine_manager = Application.getInstance().getMachineManager() + active_stack_id = machine_manager.activeStackId + + materials = [] + + # TODO: fix this if extruder_stacks: - # Multi-extruder machine detected. - materials = [stack.material for stack in extruder_stacks] + # Multi-extruder machine detected + for stack in extruder_stacks: + if stack.getId() == active_stack_id and machine_manager.newMaterial: + materials.append(machine_manager.newMaterial) + else: + materials.append(stack.material) else: - # Machine with one extruder. - materials = [global_container_stack.material] + # Machine with one extruder + if global_container_stack.getId() == active_stack_id and machine_manager.newMaterial: + materials.append(machine_manager.newMaterial) + else: + materials.append(global_container_stack.material) + + # if extruder_stacks: + # # Multi-extruder machine detected. + # materials = [stack.material for stack in extruder_stacks] + # else: + # # Machine with one extruder. + # materials = [global_container_stack.material] quality_types = self.findAllQualityTypesForMachineAndMaterials(global_machine_definition, materials) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index f77121a2af..467b5c00a2 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -50,6 +50,7 @@ class MachineManager(QObject): # Used to store the new containers until after confirming the dialog self._new_variant_container = None self._new_material_container = None + self._new_quality_containers = [] self._error_check_timer = QTimer() self._error_check_timer.setInterval(250) @@ -70,10 +71,10 @@ class MachineManager(QObject): self._stacks_have_errors = None - self._empty_variant_container = ContainerRegistry.getInstance().getEmptyInstanceContainer() - self._empty_material_container = ContainerRegistry.getInstance().getEmptyInstanceContainer() - self._empty_quality_container = ContainerRegistry.getInstance().getEmptyInstanceContainer() - self._empty_quality_changes_container = ContainerRegistry.getInstance().getEmptyInstanceContainer() + self._empty_variant_container = ContainerRegistry.getInstance().findContainers(id = "empty_variant")[0] + self._empty_material_container = ContainerRegistry.getInstance().findContainers(id = "empty_material")[0] + self._empty_quality_container = ContainerRegistry.getInstance().findContainers(id = "empty_quality")[0] + self._empty_quality_changes_container = ContainerRegistry.getInstance().findContainers(id = "empty_quality_changes")[0] self._onGlobalContainerChanged() @@ -147,6 +148,14 @@ class MachineManager(QObject): self.outputDevicesChanged.emit() + @property + def newVariant(self): + return self._new_variant_container + + @property + def newMaterial(self): + return self._new_material_container + @pyqtProperty("QVariantList", notify = outputDevicesChanged) def printerOutputDevices(self): return self._printer_output_devices @@ -818,6 +827,7 @@ class MachineManager(QObject): if old_material: preferred_material_name = old_material.getName() preferred_material_id = self._updateMaterialContainer(self._global_container_stack.getBottom(), self._global_container_stack, containers[0], preferred_material_name).id + Logger.log("d", "preferred_material_id=%s", preferred_material_id) self.setActiveMaterial(preferred_material_id) else: Logger.log("w", "While trying to set the active variant, no variant was found to replace.") @@ -854,20 +864,20 @@ class MachineManager(QObject): if new_quality_settings_list is None: return - name_changed_connect_stacks = [] # Connect these stacks to the name changed callback + self._new_quality_containers.clear() + for setting_info in new_quality_settings_list: stack = setting_info["stack"] stack_quality = setting_info["quality"] stack_quality_changes = setting_info["quality_changes"] - name_changed_connect_stacks.append(stack_quality) - name_changed_connect_stacks.append(stack_quality_changes) - self._replaceQualityOrQualityChangesInStack(stack, stack_quality, postpone_emit = True) - self._replaceQualityOrQualityChangesInStack(stack, stack_quality_changes, postpone_emit = True) + Logger.log("d", "=======================setting new quality=%s, %s", stack.getId(), stack_quality.getId()) - # Connect to onQualityNameChanged - for stack in name_changed_connect_stacks: - stack.nameChanged.connect(self._onQualityNameChanged) + self._new_quality_containers.append({ + "stack": stack, + "quality": stack_quality, + "quality_changes": stack_quality_changes + }) has_user_interaction = False @@ -890,13 +900,24 @@ class MachineManager(QObject): # before the user decided to keep or discard any of their changes using the dialog. # The Application.onDiscardOrKeepProfileChangesClosed signal triggers this method. def _executeDelayedActiveContainerStackChanges(self): + if self._new_variant_container is not None: + self._active_container_stack.variant = self._new_variant_container + self._new_variant_container = None + if self._new_material_container is not None: self._active_container_stack.material = self._new_material_container self._new_material_container = None - if self._new_variant_container is not None: - self._active_container_stack.variant = self._new_variant_container - self._new_variant_container = None + if self._new_quality_containers: + for new_quality in self._new_quality_containers: + Logger.log("d", "stack=%s, quality=%s", new_quality["stack"].getId(), new_quality["quality"].getId()) + self._replaceQualityOrQualityChangesInStack(new_quality["stack"], new_quality["quality"], postpone_emit = True) + self._replaceQualityOrQualityChangesInStack(new_quality["stack"], new_quality["quality_changes"], postpone_emit = True) + + for new_quality in self._new_quality_containers: + new_quality["stack"].nameChanged.connect(self._onQualityNameChanged) + + self._new_quality_containers.clear() ## Cancel set changes for material and variant in the active container stack. # Used for ignoring any changes when switching between printers (setActiveMachine) @@ -926,6 +947,11 @@ class MachineManager(QObject): for stack in stacks: material = stack.material + + # TODO: fix this + if self._new_material_container and stack.getId() == self._active_container_stack.getId(): + material = self._new_material_container + quality = quality_manager.findQualityByQualityType(quality_type, global_machine_definition, [material]) if not quality: # No quality profile is found for this quality type. @@ -963,8 +989,12 @@ class MachineManager(QObject): else: Logger.log("e", "Could not find the global quality changes container with name %s", quality_changes_name) return None + material = global_container_stack.material + if self._new_material_container and self._active_container_stack.getId() == global_container_stack.getId(): + material = self._new_material_container + # For the global stack, find a quality which matches the quality_type in # the quality changes profile and also satisfies any material constraints. quality_type = global_quality_changes.getMetaDataEntry("quality_type") @@ -991,6 +1021,10 @@ class MachineManager(QObject): quality_changes = self._empty_quality_changes_container material = stack.material + + if self._new_material_container and self._active_container_stack.getId() == stack.getId(): + material = self._new_material_container + quality = quality_manager.findQualityByQualityType(quality_type, global_machine_definition, [material]) if not quality: #No quality profile found for this quality type. quality = self._empty_quality_container diff --git a/cura/Settings/ProfilesModel.py b/cura/Settings/ProfilesModel.py index 4f931e6d94..8762512a6e 100644 --- a/cura/Settings/ProfilesModel.py +++ b/cura/Settings/ProfilesModel.py @@ -6,6 +6,7 @@ from collections import OrderedDict from PyQt5.QtCore import Qt from UM.Application import Application +from UM.Logger import Logger from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.Models.InstanceContainersModel import InstanceContainersModel @@ -71,12 +72,6 @@ class ProfilesModel(InstanceContainersModel): # The actual list of quality profiles come from the first extruder in the extruder list. result = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, extruder_stacks) - if len(result) == 0: - # If not qualities are found we dynamically create a not supported container for this machine + material combination - not_supported_container = ContainerRegistry.getInstance().findContainers(id = "empty_quality")[0] - result.append(not_supported_container) - return result - # The usable quality types are set quality_type_set = set([x.getMetaDataEntry("quality_type") for x in result]) @@ -90,6 +85,14 @@ class ProfilesModel(InstanceContainersModel): if quality.getMetaDataEntry("quality_type") not in quality_type_set: result.append(quality) + Logger.log("d", "====================quality=%s", quality.getId()) + + if len(result) == 0: + # If not qualities are found we dynamically create a not supported container for this machine + material combination + not_supported_container = ContainerRegistry.getInstance().findContainers(id = "empty_quality")[0] + result.append(not_supported_container) + # return result + return result ## Re-computes the items in this model, and adds the layer height role. @@ -121,7 +124,8 @@ class ProfilesModel(InstanceContainersModel): extruder_stacks = new_extruder_stacks + extruder_stacks # Get a list of usable/available qualities for this machine and material - qualities = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, extruder_stacks) + qualities = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, + extruder_stacks) container_registry = ContainerRegistry.getInstance() machine_manager = Application.getInstance().getMachineManager() @@ -166,15 +170,25 @@ class ProfilesModel(InstanceContainersModel): for item in containers: profile = container_registry.findContainers(id = item["id"]) + Logger.log("d", "profile=%s, id=%s", profile, item["id"]) + # when the profile is not supported if not profile: self._setItemLayerHeight(item, "", "") item["available"] = False - yield None + yield item continue profile = profile[0] + + if profile.getId() == "empty_quality": + self._setItemLayerHeight(item, "", "") + item["available"] = True + yield item + continue + item["available"] = profile in qualities + Logger.log("d", "---- profile available = [%s] , qualities = [%s]", item["available"], [q.getId() for q in qualities]) # Easy case: This profile defines its own layer height. if profile.hasProperty("layer_height", "value"): From 87ba4056ee86682d78c31e4edacb7cdfd4bc710a Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 25 Oct 2017 13:55:30 +0200 Subject: [PATCH 132/218] CURA-4485 Minor changes --- plugins/UM3NetworkPrinting/UM3InfoComponents.qml | 2 +- resources/qml/Menus/MaterialMenu.qml | 2 +- resources/qml/Menus/NozzleMenu.qml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/UM3NetworkPrinting/UM3InfoComponents.qml b/plugins/UM3NetworkPrinting/UM3InfoComponents.qml index 87b8b219b7..8d0d8a0754 100644 --- a/plugins/UM3NetworkPrinting/UM3InfoComponents.qml +++ b/plugins/UM3NetworkPrinting/UM3InfoComponents.qml @@ -121,7 +121,7 @@ Item function isClusterPrinter() { var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize // This is a non cluster printer or the cluster it is just one printer - if (typeof clusterSize == "undefined" || clusterSize == 1) + if (clusterSize == undefined || clusterSize == 1) return false return true } diff --git a/resources/qml/Menus/MaterialMenu.qml b/resources/qml/Menus/MaterialMenu.qml index 5422457140..359f4f41d0 100644 --- a/resources/qml/Menus/MaterialMenu.qml +++ b/resources/qml/Menus/MaterialMenu.qml @@ -18,7 +18,7 @@ Menu { var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize // This is a non cluster printer or the cluster it is just one printer - if (typeof clusterSize == "undefined" || clusterSize == 1) + if (clusterSize == undefined || clusterSize == 1) return false return true } diff --git a/resources/qml/Menus/NozzleMenu.qml b/resources/qml/Menus/NozzleMenu.qml index 79bc105b58..1c75a346f3 100644 --- a/resources/qml/Menus/NozzleMenu.qml +++ b/resources/qml/Menus/NozzleMenu.qml @@ -18,7 +18,7 @@ Menu { var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize // This is a non cluster printer or the cluster it is just one printer - if (typeof clusterSize == "undefined" || clusterSize == 1) + if (clusterSize == undefined || clusterSize == 1) return false return true } From 88ffe0d3584267baa5f2868638272969f9f2c94e Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 25 Oct 2017 15:57:53 +0200 Subject: [PATCH 133/218] correctly show not supported when any of the extruders has a not supported profile - CURA-4451 --- cura/CuraApplication.py | 2 +- cura/QualityManager.py | 2 +- cura/Settings/MachineManager.py | 17 +++++++++++++---- cura/Settings/ProfilesModel.py | 1 - resources/qml/Menus/ProfileMenu.qml | 2 +- resources/qml/Settings/SettingView.qml | 6 +----- 6 files changed, 17 insertions(+), 13 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 3af1112afc..2d1c35aca7 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -270,7 +270,7 @@ class CuraApplication(QtApplication): empty_quality_container = copy.deepcopy(empty_container) empty_quality_container._id = "empty_quality" empty_quality_container.setName("Not Supported") - empty_quality_container.addMetaDataEntry("quality_type", "normal") + empty_quality_container.addMetaDataEntry("quality_type", "not_supported") empty_quality_container.addMetaDataEntry("type", "quality") empty_quality_container.addMetaDataEntry("supported", False) ContainerRegistry.getInstance().addContainer(empty_quality_container) diff --git a/cura/QualityManager.py b/cura/QualityManager.py index d2a2df27ac..0312c50daf 100644 --- a/cura/QualityManager.py +++ b/cura/QualityManager.py @@ -87,7 +87,7 @@ class QualityManager: qualities = set(quality_type_dict.values()) for material_container in material_containers[1:]: next_quality_type_dict = self.__fetchQualityTypeDictForMaterial(machine_definition, material_container) - qualities.update(set(next_quality_type_dict.values())) + qualities.intersection_update(set(next_quality_type_dict.values())) return list(qualities) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 467b5c00a2..bb8b8aefa4 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -843,8 +843,6 @@ class MachineManager(QObject): if not containers or not self._global_container_stack: return - Logger.log("d", "Attempting to change the active quality to %s", quality_id) - # Quality profile come in two flavours: type=quality and type=quality_changes # If we found a quality_changes profile then look up its parent quality profile. container_type = containers[0].getMetaDataEntry("type") @@ -864,6 +862,19 @@ class MachineManager(QObject): if new_quality_settings_list is None: return + has_not_supported_quality = False + + # check if any of the extruder stacks have a not supported profile + # if that is the case, all stacks should have a not supported state (otherwise it will show quality_type normal) + for setting_info in new_quality_settings_list: + if setting_info["quality"].getMetaDataEntry("quality_type") == "not_supported": + has_not_supported_quality = True + break + + if has_not_supported_quality: + for setting_info in new_quality_settings_list: + setting_info["quality"] = self._empty_quality_container + self._new_quality_containers.clear() for setting_info in new_quality_settings_list: @@ -871,8 +882,6 @@ class MachineManager(QObject): stack_quality = setting_info["quality"] stack_quality_changes = setting_info["quality_changes"] - Logger.log("d", "=======================setting new quality=%s, %s", stack.getId(), stack_quality.getId()) - self._new_quality_containers.append({ "stack": stack, "quality": stack_quality, diff --git a/cura/Settings/ProfilesModel.py b/cura/Settings/ProfilesModel.py index 8762512a6e..57498ffbd3 100644 --- a/cura/Settings/ProfilesModel.py +++ b/cura/Settings/ProfilesModel.py @@ -91,7 +91,6 @@ class ProfilesModel(InstanceContainersModel): # If not qualities are found we dynamically create a not supported container for this machine + material combination not_supported_container = ContainerRegistry.getInstance().findContainers(id = "empty_quality")[0] result.append(not_supported_container) - # return result return result diff --git a/resources/qml/Menus/ProfileMenu.qml b/resources/qml/Menus/ProfileMenu.qml index fb1ade6e0b..fecea5ef99 100644 --- a/resources/qml/Menus/ProfileMenu.qml +++ b/resources/qml/Menus/ProfileMenu.qml @@ -17,7 +17,7 @@ Menu MenuItem { - text: model.name + " - " + model.layer_height + text: (model.layer_height != "") ? model.name + " - " + model.layer_height : model.name checkable: true checked: Cura.MachineManager.activeQualityId == model.id exclusiveGroup: group diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 14c85d81e8..c116fa933a 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -65,11 +65,7 @@ Item function generateActiveQualityText () { var result = catalog.i18nc("@", "No Profile Available") // default text - console.log("Cura.MachineManager.activeQualityName", Cura.MachineManager.activeQualityName) - console.log("Cura.ProfilesModel.rowCount()", Cura.ProfilesModel.rowCount()) - console.log("Cura.MachineManager.isActiveQualitySupported", Cura.MachineManager.isActiveQualitySupported) - - if (Cura.MachineManager.activeQualityName && Cura.ProfilesModel.rowCount() > 0) { + if (Cura.MachineManager.isActiveQualitySupported ) { result = Cura.MachineManager.activeQualityName if (Cura.MachineManager.activeQualityLayerHeight > 0) { From e4fec1f63d0406221422bc191d6043db1d16fb68 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 25 Oct 2017 16:34:41 +0200 Subject: [PATCH 134/218] Move SaveButton downwards CURA-4490 Move SaveButton downwards so it doesn't overlay with the estimated print time in some language. --- resources/qml/SaveButton.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/SaveButton.qml b/resources/qml/SaveButton.qml index 7423fc2368..acc97ebf11 100644 --- a/resources/qml/SaveButton.qml +++ b/resources/qml/SaveButton.qml @@ -91,8 +91,8 @@ Item { id: saveRow width: base.width height: saveToButton.height - anchors.top: progressBar.bottom - anchors.topMargin: UM.Theme.getSize("sidebar_margin").height + anchors.bottom: parent.bottom + anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height anchors.left: parent.left Row { From b95ba24530b8ec98a8c524c46d9d644499e5cc74 Mon Sep 17 00:00:00 2001 From: Chris ter Beke Date: Thu, 26 Oct 2017 09:23:27 +0200 Subject: [PATCH 135/218] Remove some changes, debugging - CURA-4451 WIP - CURA-4451 correctly show not supported when any of the extruders has a not supported profile - CURA-4451 Clean up and add comments - CURA-4451 --- cura/CuraApplication.py | 3 +- cura/QualityManager.py | 30 +++++-- cura/Settings/MachineManager.py | 87 +++++++++++++++---- cura/Settings/NotSupportedProfileContainer.py | 47 ---------- cura/Settings/ProfilesModel.py | 39 ++++----- .../builder_premium_small.def.json | 5 +- resources/qml/Menus/ProfileMenu.qml | 6 +- resources/qml/Settings/SettingView.qml | 6 +- resources/qml/SidebarHeader.qml | 30 +++---- .../um3_aa0.4_PVA_Fast_Print.inst.cfg | 14 --- .../um3_aa0.8_PVA_Fast_Print.inst.cfg | 14 --- .../um3_aa0.8_PVA_Superdraft_Print.inst.cfg | 14 --- 12 files changed, 136 insertions(+), 159 deletions(-) delete mode 100644 cura/Settings/NotSupportedProfileContainer.py delete mode 100644 resources/quality/ultimaker3/um3_aa0.4_PVA_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_aa0.8_PVA_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_aa0.8_PVA_Superdraft_Print.inst.cfg diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 1680e7c6a6..2d1c35aca7 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -270,8 +270,9 @@ class CuraApplication(QtApplication): empty_quality_container = copy.deepcopy(empty_container) empty_quality_container._id = "empty_quality" empty_quality_container.setName("Not Supported") - empty_quality_container.addMetaDataEntry("quality_type", "normal") + empty_quality_container.addMetaDataEntry("quality_type", "not_supported") empty_quality_container.addMetaDataEntry("type", "quality") + empty_quality_container.addMetaDataEntry("supported", False) ContainerRegistry.getInstance().addContainer(empty_quality_container) empty_quality_changes_container = copy.deepcopy(empty_container) empty_quality_changes_container._id = "empty_quality_changes" diff --git a/cura/QualityManager.py b/cura/QualityManager.py index b6d47d919b..0312c50daf 100644 --- a/cura/QualityManager.py +++ b/cura/QualityManager.py @@ -87,7 +87,7 @@ class QualityManager: qualities = set(quality_type_dict.values()) for material_container in material_containers[1:]: next_quality_type_dict = self.__fetchQualityTypeDictForMaterial(machine_definition, material_container) - qualities.update(set(next_quality_type_dict.values())) + qualities.intersection_update(set(next_quality_type_dict.values())) return list(qualities) @@ -178,12 +178,32 @@ class QualityManager: def findAllUsableQualitiesForMachineAndExtruders(self, global_container_stack: "GlobalStack", extruder_stacks: List["ExtruderStack"]) -> List[InstanceContainer]: global_machine_definition = global_container_stack.getBottom() + machine_manager = Application.getInstance().getMachineManager() + active_stack_id = machine_manager.activeStackId + + materials = [] + + # TODO: fix this if extruder_stacks: - # Multi-extruder machine detected. - materials = [stack.material for stack in extruder_stacks] + # Multi-extruder machine detected + for stack in extruder_stacks: + if stack.getId() == active_stack_id and machine_manager.newMaterial: + materials.append(machine_manager.newMaterial) + else: + materials.append(stack.material) else: - # Machine with one extruder. - materials = [global_container_stack.material] + # Machine with one extruder + if global_container_stack.getId() == active_stack_id and machine_manager.newMaterial: + materials.append(machine_manager.newMaterial) + else: + materials.append(global_container_stack.material) + + # if extruder_stacks: + # # Multi-extruder machine detected. + # materials = [stack.material for stack in extruder_stacks] + # else: + # # Machine with one extruder. + # materials = [global_container_stack.material] quality_types = self.findAllQualityTypesForMachineAndMaterials(global_machine_definition, materials) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index fc5c415f87..131160c8af 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -50,6 +50,7 @@ class MachineManager(QObject): # Used to store the new containers until after confirming the dialog self._new_variant_container = None self._new_material_container = None + self._new_quality_containers = [] self._error_check_timer = QTimer() self._error_check_timer.setInterval(250) @@ -70,10 +71,10 @@ class MachineManager(QObject): self._stacks_have_errors = None - self._empty_variant_container = ContainerRegistry.getInstance().getEmptyInstanceContainer() - self._empty_material_container = ContainerRegistry.getInstance().getEmptyInstanceContainer() - self._empty_quality_container = ContainerRegistry.getInstance().getEmptyInstanceContainer() - self._empty_quality_changes_container = ContainerRegistry.getInstance().getEmptyInstanceContainer() + self._empty_variant_container = ContainerRegistry.getInstance().findContainers(id = "empty_variant")[0] + self._empty_material_container = ContainerRegistry.getInstance().findContainers(id = "empty_material")[0] + self._empty_quality_container = ContainerRegistry.getInstance().findContainers(id = "empty_quality")[0] + self._empty_quality_changes_container = ContainerRegistry.getInstance().findContainers(id = "empty_quality_changes")[0] self._onGlobalContainerChanged() @@ -147,6 +148,14 @@ class MachineManager(QObject): self.outputDevicesChanged.emit() + @property + def newVariant(self): + return self._new_variant_container + + @property + def newMaterial(self): + return self._new_material_container + @pyqtProperty("QVariantList", notify = outputDevicesChanged) def printerOutputDevices(self): return self._printer_output_devices @@ -818,6 +827,7 @@ class MachineManager(QObject): if old_material: preferred_material_name = old_material.getName() preferred_material_id = self._updateMaterialContainer(self._global_container_stack.getBottom(), self._global_container_stack, containers[0], preferred_material_name).id + Logger.log("d", "preferred_material_id=%s", preferred_material_id) self.setActiveMaterial(preferred_material_id) else: Logger.log("w", "While trying to set the active variant, no variant was found to replace.") @@ -833,8 +843,6 @@ class MachineManager(QObject): if not containers or not self._global_container_stack: return - Logger.log("d", "Attempting to change the active quality to %s", quality_id) - # Quality profile come in two flavours: type=quality and type=quality_changes # If we found a quality_changes profile then look up its parent quality profile. container_type = containers[0].getMetaDataEntry("type") @@ -854,20 +862,36 @@ class MachineManager(QObject): if new_quality_settings_list is None: return - name_changed_connect_stacks = [] # Connect these stacks to the name changed callback + # check if any of the stacks have a not supported profile + # if that is the case, all stacks should have a not supported state (otherwise it will show quality_type normal) + has_not_supported_quality = False + + # check all stacks for not supported + for setting_info in new_quality_settings_list: + if setting_info["quality"].getMetaDataEntry("quality_type") == "not_supported": + has_not_supported_quality = True + break + + # set all stacks to not supported if that's the case + if has_not_supported_quality: + for setting_info in new_quality_settings_list: + setting_info["quality"] = self._empty_quality_container + + self._new_quality_containers.clear() + + # store the upcoming quality profile changes per stack for later execution + # this prevents re-slicing before the user has made a choice in the discard or keep dialog + # (see _executeDelayedActiveContainerStackChanges) for setting_info in new_quality_settings_list: stack = setting_info["stack"] stack_quality = setting_info["quality"] stack_quality_changes = setting_info["quality_changes"] - name_changed_connect_stacks.append(stack_quality) - name_changed_connect_stacks.append(stack_quality_changes) - self._replaceQualityOrQualityChangesInStack(stack, stack_quality, postpone_emit=True) - self._replaceQualityOrQualityChangesInStack(stack, stack_quality_changes, postpone_emit=True) - - # Connect to onQualityNameChanged - for stack in name_changed_connect_stacks: - stack.nameChanged.connect(self._onQualityNameChanged) + self._new_quality_containers.append({ + "stack": stack, + "quality": stack_quality, + "quality_changes": stack_quality_changes + }) has_user_interaction = False @@ -890,13 +914,24 @@ class MachineManager(QObject): # before the user decided to keep or discard any of their changes using the dialog. # The Application.onDiscardOrKeepProfileChangesClosed signal triggers this method. def _executeDelayedActiveContainerStackChanges(self): + if self._new_variant_container is not None: + self._active_container_stack.variant = self._new_variant_container + self._new_variant_container = None + if self._new_material_container is not None: self._active_container_stack.material = self._new_material_container self._new_material_container = None - if self._new_variant_container is not None: - self._active_container_stack.variant = self._new_variant_container - self._new_variant_container = None + # apply the new quality to all stacks + if self._new_quality_containers: + for new_quality in self._new_quality_containers: + self._replaceQualityOrQualityChangesInStack(new_quality["stack"], new_quality["quality"], postpone_emit = True) + self._replaceQualityOrQualityChangesInStack(new_quality["stack"], new_quality["quality_changes"], postpone_emit = True) + + for new_quality in self._new_quality_containers: + new_quality["stack"].nameChanged.connect(self._onQualityNameChanged) + + self._new_quality_containers.clear() ## Cancel set changes for material and variant in the active container stack. # Used for ignoring any changes when switching between printers (setActiveMachine) @@ -926,8 +961,14 @@ class MachineManager(QObject): for stack in stacks: material = stack.material + + # TODO: fix this + if self._new_material_container and stack.getId() == self._active_container_stack.getId(): + material = self._new_material_container + quality = quality_manager.findQualityByQualityType(quality_type, global_machine_definition, [material]) - if not quality: #No quality profile is found for this quality type. + if not quality: + # No quality profile is found for this quality type. quality = self._empty_quality_container result.append({"stack": stack, "quality": quality, "quality_changes": empty_quality_changes}) @@ -962,8 +1003,12 @@ class MachineManager(QObject): else: Logger.log("e", "Could not find the global quality changes container with name %s", quality_changes_name) return None + material = global_container_stack.material + if self._new_material_container and self._active_container_stack.getId() == global_container_stack.getId(): + material = self._new_material_container + # For the global stack, find a quality which matches the quality_type in # the quality changes profile and also satisfies any material constraints. quality_type = global_quality_changes.getMetaDataEntry("quality_type") @@ -990,6 +1035,10 @@ class MachineManager(QObject): quality_changes = self._empty_quality_changes_container material = stack.material + + if self._new_material_container and self._active_container_stack.getId() == stack.getId(): + material = self._new_material_container + quality = quality_manager.findQualityByQualityType(quality_type, global_machine_definition, [material]) if not quality: #No quality profile found for this quality type. quality = self._empty_quality_container diff --git a/cura/Settings/NotSupportedProfileContainer.py b/cura/Settings/NotSupportedProfileContainer.py deleted file mode 100644 index 156f13ba4a..0000000000 --- a/cura/Settings/NotSupportedProfileContainer.py +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright (c) 2017 Ultimaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. - -from UM.Signal import signalemitter - -from UM.Settings.InstanceContainer import InstanceContainer -from UM.Settings.ContainerRegistry import ContainerRegistry -from UM.MimeTypeDatabase import MimeType, MimeTypeDatabase - - -## A container for not supported profiles. -# -# -@signalemitter -class NotSupportedProfileContainer(InstanceContainer): - - def __init__(self, container_id: str, machine_id: str, material_id: str, *args, **kwargs): - super().__init__(container_id, *args, **kwargs) - - # self._id = str(container_id) # type: str - # self._name = "Not supported" # type: str - - self.setMetaData({ - "setting_version": 3, - "supported": False, - "type": "quality", - "weight": "0", - "material": material_id - }) - - # register this container - ContainerRegistry.getInstance().addContainer(self) - - # set printer definition - definition = ContainerRegistry.getInstance().findDefinitionContainers(id = machine_id) - self.setDefinition(definition[0]) - - -# register the container mime type -not_support_instance_mime = MimeType( - name = "application/x-cura-notsupportedinstancecontainer", - comment = "Cura Not Supported Instance Container", - suffixes = [] -) - -MimeTypeDatabase.addMimeType(not_support_instance_mime) -ContainerRegistry.addContainerTypeByName(NotSupportedProfileContainer, "not_supported_instance", not_support_instance_mime.name) diff --git a/cura/Settings/ProfilesModel.py b/cura/Settings/ProfilesModel.py index 68d538c671..5bbc3f6116 100644 --- a/cura/Settings/ProfilesModel.py +++ b/cura/Settings/ProfilesModel.py @@ -6,12 +6,12 @@ from collections import OrderedDict from PyQt5.QtCore import Qt from UM.Application import Application +from UM.Logger import Logger from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.Models.InstanceContainersModel import InstanceContainersModel from cura.QualityManager import QualityManager from cura.Settings.ExtruderManager import ExtruderManager -from cura.Settings.NotSupportedProfileContainer import NotSupportedProfileContainer ## QML Model for listing the current list of valid quality profiles. @@ -20,14 +20,12 @@ class ProfilesModel(InstanceContainersModel): LayerHeightRole = Qt.UserRole + 1001 LayerHeightWithoutUnitRole = Qt.UserRole + 1002 AvailableRole = Qt.UserRole + 1003 - NotSupportedRole = Qt.UserRole + 1004 def __init__(self, parent = None): super().__init__(parent) self.addRoleName(self.LayerHeightRole, "layer_height") self.addRoleName(self.LayerHeightWithoutUnitRole, "layer_height_without_unit") self.addRoleName(self.AvailableRole, "available") - self.addRoleName(self.NotSupportedRole, "not_supported") Application.getInstance().globalContainerStackChanged.connect(self._update) @@ -74,15 +72,6 @@ class ProfilesModel(InstanceContainersModel): # The actual list of quality profiles come from the first extruder in the extruder list. result = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, extruder_stacks) - # If not qualities are found we dynamically create an empty container with name "Not Supported" - if len(result) == 0: - machine_id = global_container_stack.definition.getId() - material_id = extruder_stacks[0].material.getId() - container_id = machine_id + "_" + material_id + "_not_supported" - not_supported_container = NotSupportedProfileContainer(container_id, machine_id, material_id) - result.append(not_supported_container) - return result - # The usable quality types are set quality_type_set = set([x.getMetaDataEntry("quality_type") for x in result]) @@ -96,6 +85,12 @@ class ProfilesModel(InstanceContainersModel): if quality.getMetaDataEntry("quality_type") not in quality_type_set: result.append(quality) + # if still profiles are found, add a single empty_quality ("Not supported") instance to the drop down list + if len(result) == 0: + # If not qualities are found we dynamically create a not supported container for this machine + material combination + not_supported_container = ContainerRegistry.getInstance().findContainers(id = "empty_quality")[0] + result.append(not_supported_container) + return result ## Re-computes the items in this model, and adds the layer height role. @@ -127,8 +122,7 @@ class ProfilesModel(InstanceContainersModel): extruder_stacks = new_extruder_stacks + extruder_stacks # Get a list of usable/available qualities for this machine and material - qualities = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, - extruder_stacks) + qualities = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, extruder_stacks) container_registry = ContainerRegistry.getInstance() machine_manager = Application.getInstance().getMachineManager() @@ -177,17 +171,23 @@ class ProfilesModel(InstanceContainersModel): if not profile: self._setItemLayerHeight(item, "", "") item["available"] = False - item["not_supported"] = True yield item continue profile = profile[0] + + # empty qualities should show in the list (they are "Not Supported" profiles) + if profile.getId() == "empty_quality": + self._setItemLayerHeight(item, "", "") + item["available"] = True + yield item + continue + item["available"] = profile in qualities # Easy case: This profile defines its own layer height. if profile.hasProperty("layer_height", "value"): self._setItemLayerHeight(item, profile.getProperty("layer_height", "value"), unit) - item["not_supported"] = False yield item continue @@ -199,14 +199,14 @@ class ProfilesModel(InstanceContainersModel): if quality_result["stack"] is global_container_stack: quality = quality_result["quality"] break - else: #No global container stack in the results: + else: + # No global container stack in the results: if quality_results: - quality = quality_results[0]["quality"] #Take any of the extruders. + quality = quality_results[0]["quality"] # Take any of the extruders. else: quality = None if quality and quality.hasProperty("layer_height", "value"): self._setItemLayerHeight(item, quality.getProperty("layer_height", "value"), unit) - item["not_supported"] = False yield item continue @@ -217,7 +217,6 @@ class ProfilesModel(InstanceContainersModel): if not skip_until_container or skip_until_container == ContainerRegistry.getInstance().getEmptyInstanceContainer(): #No variant in stack. skip_until_container = global_container_stack.getBottom() self._setItemLayerHeight(item, global_container_stack.getRawProperty("layer_height", "value", skip_until_container = skip_until_container.getId()), unit) # Fall through to the currently loaded material. - item["not_supported"] = False yield item def _setItemLayerHeight(self, item, value, unit): diff --git a/resources/definitions/builder_premium_small.def.json b/resources/definitions/builder_premium_small.def.json index 65103ce1af..b4756f955b 100644 --- a/resources/definitions/builder_premium_small.def.json +++ b/resources/definitions/builder_premium_small.def.json @@ -11,8 +11,11 @@ "file_formats": "text/x-gcode", "platform": "builder_premium_platform.stl", "platform_offset": [-126, -36, 117], + "has_machine_quality": true, - "preferred_quality": "*Normal*", + "preferred_material": "*pla*", + "preferred_quality": "*normal*", + "machine_extruder_trains": { "0": "builder_premium_small_rear", diff --git a/resources/qml/Menus/ProfileMenu.qml b/resources/qml/Menus/ProfileMenu.qml index f3886d4743..fecea5ef99 100644 --- a/resources/qml/Menus/ProfileMenu.qml +++ b/resources/qml/Menus/ProfileMenu.qml @@ -17,12 +17,12 @@ Menu MenuItem { - text: model.name + (model.layer_height != "" ? (" - " + model.layer_height) : "") + text: (model.layer_height != "") ? model.name + " - " + model.layer_height : model.name checkable: true - checked: Cura.MachineManager.activeQualityChangesId == "" && Cura.MachineManager.activeQualityType == model.metadata.quality_type + checked: Cura.MachineManager.activeQualityId == model.id exclusiveGroup: group onTriggered: Cura.MachineManager.setActiveQuality(model.id) - visible: model.available || model.not_supported + visible: model.available } onObjectAdded: menu.insertItem(index, object); diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index 1892b9d5a6..c116fa933a 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -63,10 +63,10 @@ Item menu: ProfileMenu { } function generateActiveQualityText () { - var result = "" + var result = catalog.i18nc("@", "No Profile Available") // default text - if (Cura.MachineManager.activeQualityName) { - result += Cura.MachineManager.activeQualityName + if (Cura.MachineManager.isActiveQualitySupported ) { + result = Cura.MachineManager.activeQualityName if (Cura.MachineManager.activeQualityLayerHeight > 0) { result += " " diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index f3887e2885..78e21f3a68 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -245,35 +245,29 @@ Column color: UM.Theme.getColor("text"); } - ToolButton { + ToolButton + { id: materialSelection + text: Cura.MachineManager.activeMaterialName tooltip: Cura.MachineManager.activeMaterialName visible: Cura.MachineManager.hasMaterials - property var valueError: - { - var data = Cura.ContainerManager.getContainerMetaDataEntry(Cura.MachineManager.activeMaterialId, "compatible") - if(data == "False") - { - return true - } - else - { - return false - } - - } - property var valueWarning: ! Cura.MachineManager.isActiveQualitySupported - enabled: !extrudersList.visible || base.currentExtruderIndex > -1 - height: UM.Theme.getSize("setting_control").height width: parent.width * 0.7 + UM.Theme.getSize("sidebar_margin").width anchors.right: parent.right style: UM.Theme.styles.sidebar_header_button activeFocusOnPress: true; + menu: MaterialMenu { + extruderIndex: base.currentExtruderIndex + } - menu: MaterialMenu { extruderIndex: base.currentExtruderIndex } + property var valueError: !isMaterialSupported() + property var valueWarning: ! Cura.MachineManager.isActiveQualitySupported + + function isMaterialSupported () { + return Cura.ContainerManager.getContainerMetaDataEntry(Cura.MachineManager.activeMaterialId, "compatible") == "True" + } } } diff --git a/resources/quality/ultimaker3/um3_aa0.4_PVA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PVA_Fast_Print.inst.cfg deleted file mode 100644 index 121d9c92bb..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.4_PVA_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -weight = 0 -type = quality -quality_type = normal -material = generic_pva_ultimaker3_AA_0.4 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_aa0.8_PVA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PVA_Fast_Print.inst.cfg deleted file mode 100644 index 071a72da0d..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.8_PVA_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -weight = 0 -type = quality -quality_type = normal -material = generic_pva_ultimaker3_AA_0.8 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_aa0.8_PVA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PVA_Superdraft_Print.inst.cfg deleted file mode 100644 index 485226fe3d..0000000000 --- a/resources/quality/ultimaker3/um3_aa0.8_PVA_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -weight = 0 -type = quality -quality_type = superdraft -material = generic_pva_ultimaker3_AA_0.8 -supported = False -setting_version = 3 - -[values] From fc48ba7baec1915e9ca6a2ba7ff90e52b267e621 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 26 Oct 2017 09:48:31 +0200 Subject: [PATCH 136/218] Remove all not supported quality profiles - CURA-4451 --- .../um2p_pp_0.25_normal.inst.cfg | 15 ---- .../ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg | 71 ------------------- .../um2p_tpu_0.8_normal.inst.cfg | 15 ---- .../um3_bb0.4_ABS_Fast_Print.inst.cfg | 14 ---- .../um3_bb0.4_ABS_Superdraft_Print.inst.cfg | 14 ---- .../um3_bb0.4_CPEP_Fast_Print.inst.cfg | 14 ---- .../um3_bb0.4_CPEP_Superdraft_Print.inst.cfg | 14 ---- .../um3_bb0.4_CPE_Fast_Print.inst.cfg | 14 ---- .../um3_bb0.4_CPE_Superdraft_Print.inst.cfg | 14 ---- .../um3_bb0.4_Nylon_Fast_Print.inst.cfg | 14 ---- .../um3_bb0.4_Nylon_Superdraft_Print.inst.cfg | 14 ---- .../um3_bb0.4_PC_Fast_Print.inst.cfg | 14 ---- .../um3_bb0.4_PLA_Fast_Print.inst.cfg | 14 ---- .../um3_bb0.4_PLA_Superdraft_Print.inst.cfg | 14 ---- .../um3_bb0.4_PP_Fast_Print.inst.cfg | 14 ---- .../um3_bb0.4_PP_Superdraft_Print.inst.cfg | 14 ---- .../um3_bb0.4_TPU_Fast_Print.inst.cfg | 14 ---- .../um3_bb0.4_TPU_Superdraft_Print.inst.cfg | 14 ---- .../um3_bb0.8_ABS_Fast_Print.inst.cfg | 14 ---- .../um3_bb0.8_ABS_Superdraft_Print.inst.cfg | 14 ---- .../um3_bb0.8_CPEP_Fast_Print.inst.cfg | 14 ---- .../um3_bb0.8_CPEP_Superdraft_Print.inst.cfg | 14 ---- .../um3_bb0.8_CPE_Fast_Print.inst.cfg | 14 ---- .../um3_bb0.8_CPE_Superdraft_Print.inst.cfg | 14 ---- .../um3_bb0.8_Nylon_Fast_Print.inst.cfg | 14 ---- .../um3_bb0.8_Nylon_Superdraft_Print.inst.cfg | 14 ---- .../um3_bb0.8_PC_Fast_Print.inst.cfg | 14 ---- .../um3_bb0.8_PC_Superdraft_Print.inst.cfg | 14 ---- .../um3_bb0.8_PLA_Fast_Print.inst.cfg | 14 ---- .../um3_bb0.8_PLA_Superdraft_Print.inst.cfg | 14 ---- .../um3_bb0.8_PP_Fast_Print.inst.cfg | 14 ---- .../um3_bb0.8_PP_Superdraft_Print.inst.cfg | 14 ---- .../um3_bb0.8_TPU_Fast_print.inst.cfg | 14 ---- .../um3_bb0.8_TPU_Superdraft_Print.inst.cfg | 14 ---- 34 files changed, 535 deletions(-) delete mode 100644 resources/quality/ultimaker2_plus/um2p_pp_0.25_normal.inst.cfg delete mode 100644 resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg delete mode 100644 resources/quality/ultimaker2_plus/um2p_tpu_0.8_normal.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.4_ABS_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.4_ABS_Superdraft_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.4_CPEP_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.4_CPEP_Superdraft_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.4_CPE_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.4_CPE_Superdraft_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.4_Nylon_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.4_Nylon_Superdraft_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.4_PC_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.4_PLA_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.4_PLA_Superdraft_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.4_PP_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.4_PP_Superdraft_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.4_TPU_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.4_TPU_Superdraft_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.8_ABS_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.8_ABS_Superdraft_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.8_CPEP_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.8_CPEP_Superdraft_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.8_CPE_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.8_CPE_Superdraft_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.8_Nylon_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.8_Nylon_Superdraft_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.8_PC_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.8_PC_Superdraft_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.8_PLA_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.8_PLA_Superdraft_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.8_PP_Fast_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.8_PP_Superdraft_Print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.8_TPU_Fast_print.inst.cfg delete mode 100644 resources/quality/ultimaker3/um3_bb0.8_TPU_Superdraft_Print.inst.cfg diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.25_normal.inst.cfg deleted file mode 100644 index 13b05df085..0000000000 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.25_normal.inst.cfg +++ /dev/null @@ -1,15 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker2_plus - -[metadata] -type = quality -material = generic_pp_ultimaker2_plus_0.25_mm -weight = 0 -quality_type = normal -setting_version = 3 -supported = False - -[values] - diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg deleted file mode 100644 index d471e39853..0000000000 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg +++ /dev/null @@ -1,71 +0,0 @@ -[general] -version = 2 -name = Normal -definition = ultimaker2_plus - -[metadata] -type = quality -material = generic_pp_ultimaker2_plus_0.4_mm -weight = -1 -quality_type = fast -setting_version = 3 - -[values] -acceleration_enabled = True -acceleration_layer_0 = =acceleration_topbottom -acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_print = 4000 -acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) -acceleration_support_interface = =acceleration_topbottom -acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) -acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) -acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) -brim_width = 20 -cool_fan_full_at_height = =layer_height_0 + 4 * layer_height -cool_fan_speed_max = 100 -cool_min_layer_time_fan_speed_max = 6 -cool_min_speed = 20 -infill_line_width = =round(line_width * 0.4 / 0.38, 2) -infill_overlap = 0 -infill_pattern = cubic -infill_wipe_dist = 0 -jerk_enabled = True -jerk_layer_0 = =jerk_topbottom -jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) -jerk_print = 25 -jerk_support = =math.ceil(jerk_print * 15 / 25) -jerk_support_interface = =jerk_topbottom -jerk_topbottom = =math.ceil(jerk_print * 5 / 25) -jerk_wall = =math.ceil(jerk_print * 10 / 25) -jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) -layer_height = 0.15 -line_width = =machine_nozzle_size * 0.95 -multiple_mesh_overlap = 0 -retraction_count_max = 12 -retraction_extrusion_window = 1 -retraction_hop = 0.15 -retraction_hop_enabled = True -retraction_hop_only_when_collides = True -retraction_min_travel = 0.5 -retraction_prime_speed = 15 -skin_overlap = 10 -speed_layer_0 = 25 -speed_prime_tower = =speed_topbottom -speed_print = 25 -speed_support_interface = =speed_topbottom -speed_topbottom = =math.ceil(speed_print * 25 / 25) -speed_travel = 250 -speed_travel_layer_0 = 50 -speed_wall = =math.ceil(speed_print * 25 / 25) -speed_wall_0 = =math.ceil(speed_wall * 20 / 25) -support_angle = 60 -support_bottom_distance = =support_z_distance / 2 -support_top_distance = =support_z_distance -support_xy_distance = =wall_line_width_0 * 2.5 -support_xy_distance_overhang = =wall_line_width_0 -support_z_distance = =layer_height * 2 -travel_avoid_distance = 3 -wall_0_inset = 0 -wall_line_width_x = =round(line_width * 0.38 / 0.38, 2) -wall_thickness = 0.76 - diff --git a/resources/quality/ultimaker2_plus/um2p_tpu_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_tpu_0.8_normal.inst.cfg deleted file mode 100644 index 65f9ba383e..0000000000 --- a/resources/quality/ultimaker2_plus/um2p_tpu_0.8_normal.inst.cfg +++ /dev/null @@ -1,15 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker2_plus - -[metadata] -weight = 0 -type = quality -quality_type = normal -material = generic_tpu_ultimaker2_plus_0.8_mm -supported = False -setting_version = 3 - -[values] - diff --git a/resources/quality/ultimaker3/um3_bb0.4_ABS_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_ABS_Fast_Print.inst.cfg deleted file mode 100644 index 65fbb4aa22..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_ABS_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_abs_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_ABS_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_ABS_Superdraft_Print.inst.cfg deleted file mode 100644 index d92791970e..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_ABS_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_abs_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_CPEP_Fast_Print.inst.cfg deleted file mode 100644 index 3aa8fc43e0..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_CPEP_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_cpe_plus_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_CPEP_Superdraft_Print.inst.cfg deleted file mode 100644 index c3bfa7a731..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_CPEP_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_cpe_plus_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_CPE_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_CPE_Fast_Print.inst.cfg deleted file mode 100644 index 6594cd4403..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_CPE_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_cpe_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_CPE_Superdraft_Print.inst.cfg deleted file mode 100644 index 4eda6ce767..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_CPE_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_cpe_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_Nylon_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_Nylon_Fast_Print.inst.cfg deleted file mode 100644 index ca4589f150..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_Nylon_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_nylon_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_Nylon_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_Nylon_Superdraft_Print.inst.cfg deleted file mode 100644 index 94dcfe2aff..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_Nylon_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_nylon_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PC_Fast_Print.inst.cfg deleted file mode 100644 index 46334b219c..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_PC_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_pc_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PLA_Fast_Print.inst.cfg deleted file mode 100644 index 37998b3346..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_PLA_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_pla_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_PLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PLA_Superdraft_Print.inst.cfg deleted file mode 100644 index 51ea4d609a..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_PLA_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_pla_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_PP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PP_Fast_Print.inst.cfg deleted file mode 100644 index be9f93c662..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_PP_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_pp_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PP_Superdraft_Print.inst.cfg deleted file mode 100644 index d2f54e3137..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_PP_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_pp_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_TPU_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_TPU_Fast_Print.inst.cfg deleted file mode 100644 index ba1eaaf548..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_TPU_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_tpu_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.4_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_TPU_Superdraft_Print.inst.cfg deleted file mode 100644 index 783d1dfa80..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.4_TPU_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_tpu_ultimaker3_BB_0.4 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_ABS_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_ABS_Fast_Print.inst.cfg deleted file mode 100644 index 7f4dc9f23e..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_ABS_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_abs_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_ABS_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_ABS_Superdraft_Print.inst.cfg deleted file mode 100644 index c0fe6216c2..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_ABS_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_abs_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_CPEP_Fast_Print.inst.cfg deleted file mode 100644 index 4aa96f3a02..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_CPEP_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_cpe_plus_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_CPEP_Superdraft_Print.inst.cfg deleted file mode 100644 index 5e2d079f20..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_CPEP_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_cpe_plus_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_CPE_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_CPE_Fast_Print.inst.cfg deleted file mode 100644 index 384d44cf93..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_CPE_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_cpe_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_CPE_Superdraft_Print.inst.cfg deleted file mode 100644 index 87bdedb204..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_CPE_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_cpe_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_Nylon_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_Nylon_Fast_Print.inst.cfg deleted file mode 100644 index 699bb575d2..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_Nylon_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_nylon_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_Nylon_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_Nylon_Superdraft_Print.inst.cfg deleted file mode 100644 index 261d63e6e7..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_Nylon_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_nylon_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PC_Fast_Print.inst.cfg deleted file mode 100644 index ac8515a1ea..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_PC_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_pc_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PC_Superdraft_Print.inst.cfg deleted file mode 100644 index 12d82993e6..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_PC_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_pc_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PLA_Fast_Print.inst.cfg deleted file mode 100644 index f93273a33a..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_PLA_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_pla_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_PLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PLA_Superdraft_Print.inst.cfg deleted file mode 100644 index 499af56b4b..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_PLA_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_pla_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_PP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PP_Fast_Print.inst.cfg deleted file mode 100644 index 5ffda57b8b..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_PP_Fast_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_pp_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PP_Superdraft_Print.inst.cfg deleted file mode 100644 index aa50edcf55..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_PP_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_pp_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_TPU_Fast_print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_TPU_Fast_print.inst.cfg deleted file mode 100644 index 6be3b596f9..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_TPU_Fast_print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = normal -material = generic_tpu_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 3 - -[values] diff --git a/resources/quality/ultimaker3/um3_bb0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_TPU_Superdraft_Print.inst.cfg deleted file mode 100644 index e3484b3556..0000000000 --- a/resources/quality/ultimaker3/um3_bb0.8_TPU_Superdraft_Print.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = ultimaker3 - -[metadata] -type = quality -quality_type = superdraft -material = generic_tpu_ultimaker3_BB_0.8 -weight = 0 -supported = False -setting_version = 3 - -[values] From ac40de727237eb6f5c0f3f1fac8241fc300d40a8 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 26 Oct 2017 09:54:06 +0200 Subject: [PATCH 137/218] Remove builder premium resources that were used for testing (separate PR to add them back) - CURA-4451 --- .../builder_premium_large.def.json | 117 ----------------- .../builder_premium_medium.def.json | 117 ----------------- .../builder_premium_small.def.json | 119 ------------------ resources/meshes/builder_premium_platform.stl | Bin 1348084 -> 0 bytes .../bp_PLA_Coarse_Quality.inst.cfg | 24 ---- .../bp_PLA_High_Quality.inst.cfg | 25 ---- .../bp_PLA_Normal_Quality.inst.cfg | 23 ---- 7 files changed, 425 deletions(-) delete mode 100644 resources/definitions/builder_premium_large.def.json delete mode 100644 resources/definitions/builder_premium_medium.def.json delete mode 100644 resources/definitions/builder_premium_small.def.json delete mode 100644 resources/meshes/builder_premium_platform.stl delete mode 100644 resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg diff --git a/resources/definitions/builder_premium_large.def.json b/resources/definitions/builder_premium_large.def.json deleted file mode 100644 index 5fc4b46c98..0000000000 --- a/resources/definitions/builder_premium_large.def.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "id": "builder_premium_large", - "version": 2, - "name": "Builder Premium Large", - "inherits": "fdmprinter", - "metadata": { - "visible": true, - "author": "Builder SZ", - "manufacturer": "Builder", - "category": "Other", - "quality_definition": "builder_premium_small", - "file_formats": "text/x-gcode", - "platform": "builder_premium_platform.stl", - "platform_offset": [-126, -36, 117], - "has_machine_quality": true, - "preferred_quality": "*Normal*", - "machine_extruder_trains": - { - "0": "builder_premium_large_rear", - "1": "builder_premium_large_front" - } - }, - - - - "overrides": { - "machine_name": { "default_value": "Builder Premium Large" }, - "machine_heated_bed": { "default_value": true }, - "machine_width": { "default_value": 215 }, - "machine_height": { "default_value": 600 }, - "machine_depth": { "default_value": 205 }, - "material_diameter": { "default_value": 1.75 }, - - "infill_pattern": {"value": "'triangles'" }, - "infill_before_walls": {"value": false }, - - "default_material_print_temperature": { "value": "215" }, - "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, - "material_standby_temperature": { "value": "material_print_temperature" }, - - "switch_extruder_retraction_speeds": {"default_value": 15 }, - "switch_extruder_retraction_speed": {"default_value": 15 }, - "switch_extruder_prime_speed": {"default_value": 15 }, - "switch_extruder_retraction_amount": {"value": 1 }, - - "speed_travel": { "value": "100" }, - "speed_layer_0": { "value": "20" }, - "speed_prime_tower": { "value": "speed_topbottom" }, - "speed_print": { "value": "40" }, - "speed_support": { "value": "speed_wall_0" }, - "speed_support_interface": { "value": "speed_topbottom" }, - "speed_topbottom": { "value": "math.ceil(speed_print * 20 / 35)" }, - "speed_wall": { "value": "math.ceil(speed_print * 30 / 40)" }, - "speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 25)" }, - "speed_wall_x": { "value": "speed_wall" }, - - "prime_tower_position_x": { "default_value": 175 }, - "prime_tower_position_y": { "default_value": 178 }, - "prime_tower_wipe_enabled": { "default_value": false }, - "prime_tower_min_volume": { "default_value": 50 }, - "dual_pre_wipe": { "default_value": false }, - - "prime_blob_enable": { "enabled": true }, - - "acceleration_enabled": { "value": "True" }, - "acceleration_layer_0": { "value": "acceleration_topbottom" }, - "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, - "acceleration_print": { "value": "3000" }, - "acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, - "acceleration_support_interface": { "value": "acceleration_topbottom" }, - "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, - "acceleration_travel": { "value": "acceleration_print" }, - "acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, - "acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 1000 / 1000)" }, - - "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_min_layer_time": { "default_value": 10 }, - - "jerk_enabled": { "value": "True" }, - "jerk_layer_0": { "value": "jerk_topbottom" }, - "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, - "jerk_print": { "value": "25" }, - "jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" }, - "jerk_support_interface": { "value": "jerk_topbottom" }, - "jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" }, - "jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" }, - "jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" }, - - "wall_thickness": { "value": "1.2" }, - - "retraction_amount": { "default_value": 3 }, - "retraction_speed": { "default_value": 15 }, - "retraction_retract_speed": { "default_value": 15 }, - "retraction_prime_speed": { "default_value": 15 }, - "travel_retract_before_outer_wall": { "default_value": true }, - "skin_overlap": { "value": "15" }, - "adhesion_type": { "default_value": "skirt" }, - "machine_nozzle_heat_up_speed": { "default_value": 2 }, - "machine_nozzle_cool_down_speed": { "default_value": 2 }, - "machine_head_polygon": { "default_value": [[-75, -18],[-75, 35],[18, 35],[18, -18]] }, - "gantry_height": { "default_value": 55 }, - "machine_max_feedrate_x": { "default_value": 300 }, - "machine_max_feedrate_y": { "default_value": 300 }, - "machine_max_feedrate_z": { "default_value": 40 }, - "machine_max_acceleration_z": { "default_value": 500 }, - "machine_acceleration": { "default_value": 1000 }, - "machine_max_jerk_xy": { "default_value": 10 }, - "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, - "machine_start_gcode": { - "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E15 ;extrude 15mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\nT0 ;Start with Rear Extruder\n;Put printing message on LCD screen\nM117 Printing..." - }, - "machine_end_gcode": { - "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" - }, - "machine_extruder_count": { "default_value": 2 } - } -} \ No newline at end of file diff --git a/resources/definitions/builder_premium_medium.def.json b/resources/definitions/builder_premium_medium.def.json deleted file mode 100644 index 56dab8f863..0000000000 --- a/resources/definitions/builder_premium_medium.def.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "id": "builder_premium_medium", - "version": 2, - "name": "Builder Premium Medium", - "inherits": "fdmprinter", - "metadata": { - "visible": true, - "author": "Builder SZ", - "manufacturer": "Builder", - "category": "Other", - "quality_definition": "builder_premium_small", - "file_formats": "text/x-gcode", - "platform": "builder_premium_platform.stl", - "platform_offset": [-126, -36, 117], - "has_machine_quality": true, - "preferred_quality": "*Normal*", - "machine_extruder_trains": - { - "0": "builder_premium_medium_rear", - "1": "builder_premium_medium_front" - } - }, - - - - "overrides": { - "machine_name": { "default_value": "Builder Premium Medium" }, - "machine_heated_bed": { "default_value": true }, - "machine_width": { "default_value": 215 }, - "machine_height": { "default_value": 400 }, - "machine_depth": { "default_value": 205 }, - "material_diameter": { "default_value": 1.75 }, - - "infill_pattern": {"value": "'triangles'" }, - "infill_before_walls": {"value": false }, - - "default_material_print_temperature": { "value": "215" }, - "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, - "material_standby_temperature": { "value": "material_print_temperature" }, - - "switch_extruder_retraction_speeds": {"default_value": 15 }, - "switch_extruder_retraction_speed": {"default_value": 15 }, - "switch_extruder_prime_speed": {"default_value": 15 }, - "switch_extruder_retraction_amount": {"value": 1 }, - - "speed_travel": { "value": "100" }, - "speed_layer_0": { "value": "20" }, - "speed_prime_tower": { "value": "speed_topbottom" }, - "speed_print": { "value": "40" }, - "speed_support": { "value": "speed_wall_0" }, - "speed_support_interface": { "value": "speed_topbottom" }, - "speed_topbottom": { "value": "math.ceil(speed_print * 20 / 35)" }, - "speed_wall": { "value": "math.ceil(speed_print * 30 / 40)" }, - "speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 25)" }, - "speed_wall_x": { "value": "speed_wall" }, - - "prime_tower_position_x": { "default_value": 175 }, - "prime_tower_position_y": { "default_value": 178 }, - "prime_tower_wipe_enabled": { "default_value": false }, - "prime_tower_min_volume": { "default_value": 50 }, - "dual_pre_wipe": { "default_value": false }, - - "prime_blob_enable": { "enabled": true }, - - "acceleration_enabled": { "value": "True" }, - "acceleration_layer_0": { "value": "acceleration_topbottom" }, - "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, - "acceleration_print": { "value": "3000" }, - "acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, - "acceleration_support_interface": { "value": "acceleration_topbottom" }, - "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, - "acceleration_travel": { "value": "acceleration_print" }, - "acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, - "acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 1000 / 1000)" }, - - "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_min_layer_time": { "default_value": 10 }, - - "jerk_enabled": { "value": "True" }, - "jerk_layer_0": { "value": "jerk_topbottom" }, - "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, - "jerk_print": { "value": "25" }, - "jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" }, - "jerk_support_interface": { "value": "jerk_topbottom" }, - "jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" }, - "jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" }, - "jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" }, - - "wall_thickness": { "value": "1.2" }, - - "retraction_amount": { "default_value": 3 }, - "retraction_speed": { "default_value": 15 }, - "retraction_retract_speed": { "default_value": 15 }, - "retraction_prime_speed": { "default_value": 15 }, - "travel_retract_before_outer_wall": { "default_value": true }, - "skin_overlap": { "value": "15" }, - "adhesion_type": { "default_value": "skirt" }, - "machine_nozzle_heat_up_speed": { "default_value": 2 }, - "machine_nozzle_cool_down_speed": { "default_value": 2 }, - "machine_head_polygon": { "default_value": [[-75, -18],[-75, 35],[18, 35],[18, -18]] }, - "gantry_height": { "default_value": 55 }, - "machine_max_feedrate_x": { "default_value": 300 }, - "machine_max_feedrate_y": { "default_value": 300 }, - "machine_max_feedrate_z": { "default_value": 40 }, - "machine_max_acceleration_z": { "default_value": 500 }, - "machine_acceleration": { "default_value": 1000 }, - "machine_max_jerk_xy": { "default_value": 10 }, - "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, - "machine_start_gcode": { - "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E15 ;extrude 15mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\nT0 ;Start with Rear Extruder\n;Put printing message on LCD screen\nM117 Printing..." - }, - "machine_end_gcode": { - "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" - }, - "machine_extruder_count": { "default_value": 2 } - } -} \ No newline at end of file diff --git a/resources/definitions/builder_premium_small.def.json b/resources/definitions/builder_premium_small.def.json deleted file mode 100644 index b4756f955b..0000000000 --- a/resources/definitions/builder_premium_small.def.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "id": "builder_premium_small", - "version": 2, - "name": "Builder Premium Small", - "inherits": "fdmprinter", - "metadata": { - "visible": true, - "author": "Builder SZ", - "manufacturer": "Builder", - "category": "Other", - "file_formats": "text/x-gcode", - "platform": "builder_premium_platform.stl", - "platform_offset": [-126, -36, 117], - - "has_machine_quality": true, - "preferred_material": "*pla*", - "preferred_quality": "*normal*", - - "machine_extruder_trains": - { - "0": "builder_premium_small_rear", - "1": "builder_premium_small_front" - } - }, - - - - "overrides": { - "machine_name": { "default_value": "Builder Premium Small" }, - "machine_heated_bed": { "default_value": true }, - "machine_width": { "default_value": 215 }, - "machine_height": { "default_value": 200 }, - "machine_depth": { "default_value": 205 }, - "material_diameter": { "default_value": 1.75 }, - - "infill_pattern": {"value": "'triangles'" }, - "infill_before_walls": {"value": false }, - - "default_material_print_temperature": { "value": "215" }, - "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, - "material_standby_temperature": { "value": "material_print_temperature" }, - - "switch_extruder_retraction_speeds": {"default_value": 15 }, - "switch_extruder_retraction_speed": {"default_value": 15 }, - "switch_extruder_prime_speed": {"default_value": 15 }, - "switch_extruder_retraction_amount": {"value": 1 }, - - "speed_travel": { "value": "100" }, - "speed_layer_0": { "value": "20" }, - "speed_prime_tower": { "value": "speed_topbottom" }, - "speed_print": { "value": "40" }, - "speed_support": { "value": "speed_wall_0" }, - "speed_support_interface": { "value": "speed_topbottom" }, - "speed_topbottom": { "value": "math.ceil(speed_print * 20 / 35)" }, - "speed_wall": { "value": "math.ceil(speed_print * 30 / 40)" }, - "speed_wall_0": { "value": "math.ceil(speed_wall * 20 / 25)" }, - "speed_wall_x": { "value": "speed_wall" }, - - "prime_tower_position_x": { "default_value": 175 }, - "prime_tower_position_y": { "default_value": 178 }, - "prime_tower_wipe_enabled": { "default_value": false }, - "prime_tower_min_volume": { "default_value": 50 }, - "dual_pre_wipe": { "default_value": false }, - - "prime_blob_enable": { "enabled": true }, - - "acceleration_enabled": { "value": "True" }, - "acceleration_layer_0": { "value": "acceleration_topbottom" }, - "acceleration_prime_tower": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, - "acceleration_print": { "value": "3000" }, - "acceleration_support": { "value": "math.ceil(acceleration_print * 2000 / 4000)" }, - "acceleration_support_interface": { "value": "acceleration_topbottom" }, - "acceleration_topbottom": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, - "acceleration_travel": { "value": "acceleration_print" }, - "acceleration_wall": { "value": "math.ceil(acceleration_print * 1000 / 3000)" }, - "acceleration_wall_0": { "value": "math.ceil(acceleration_wall * 1000 / 1000)" }, - - "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_min_layer_time": { "default_value": 10 }, - - "jerk_enabled": { "value": "True" }, - "jerk_layer_0": { "value": "jerk_topbottom" }, - "jerk_prime_tower": { "value": "math.ceil(jerk_print * 15 / 25)" }, - "jerk_print": { "value": "25" }, - "jerk_support": { "value": "math.ceil(jerk_print * 15 / 25)" }, - "jerk_support_interface": { "value": "jerk_topbottom" }, - "jerk_topbottom": { "value": "math.ceil(jerk_print * 5 / 25)" }, - "jerk_wall": { "value": "math.ceil(jerk_print * 10 / 25)" }, - "jerk_wall_0": { "value": "math.ceil(jerk_wall * 5 / 10)" }, - - "wall_thickness": { "value": "1.2" }, - - "retraction_amount": { "default_value": 3 }, - "retraction_speed": { "default_value": 15 }, - "retraction_retract_speed": { "default_value": 15 }, - "retraction_prime_speed": { "default_value": 15 }, - "travel_retract_before_outer_wall": { "default_value": true }, - "skin_overlap": { "value": "15" }, - "adhesion_type": { "default_value": "skirt" }, - "machine_nozzle_heat_up_speed": { "default_value": 2 }, - "machine_nozzle_cool_down_speed": { "default_value": 2 }, - "machine_head_polygon": { "default_value": [[-75, -18],[-75, 35],[18, 35],[18, -18]] }, - "gantry_height": { "default_value": 55 }, - "machine_max_feedrate_x": { "default_value": 300 }, - "machine_max_feedrate_y": { "default_value": 300 }, - "machine_max_feedrate_z": { "default_value": 40 }, - "machine_max_acceleration_z": { "default_value": 500 }, - "machine_acceleration": { "default_value": 1000 }, - "machine_max_jerk_xy": { "default_value": 10 }, - "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, - "machine_start_gcode": { - "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E15 ;extrude 15mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\nT0 ;Start with Rear Extruder\n;Put printing message on LCD screen\nM117 Printing..." - }, - "machine_end_gcode": { - "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" - }, - "machine_extruder_count": { "default_value": 2 } - } -} \ No newline at end of file diff --git a/resources/meshes/builder_premium_platform.stl b/resources/meshes/builder_premium_platform.stl deleted file mode 100644 index b315d4b6d4720b7dc57123ae214a0f5c286bc55f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1348084 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�hbTgf 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�oy?S1LD=wVvF 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 z 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

ix;b0pB^KQ=@2%4_3)TaBR_VpVqW&eB(I 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%0Do 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 Date: Thu, 26 Oct 2017 09:55:01 +0200 Subject: [PATCH 138/218] Remove builder premium extruder definitions - CURA-4451 --- .../builder_premium_large_front.def.json | 27 ------------------- .../builder_premium_large_rear.def.json | 27 ------------------- .../builder_premium_medium_front.def.json | 27 ------------------- .../builder_premium_medium_rear.def.json | 27 ------------------- .../builder_premium_small_front.def.json | 27 ------------------- .../builder_premium_small_rear.def.json | 27 ------------------- 6 files changed, 162 deletions(-) delete mode 100644 resources/extruders/builder_premium_large_front.def.json delete mode 100644 resources/extruders/builder_premium_large_rear.def.json delete mode 100644 resources/extruders/builder_premium_medium_front.def.json delete mode 100644 resources/extruders/builder_premium_medium_rear.def.json delete mode 100644 resources/extruders/builder_premium_small_front.def.json delete mode 100644 resources/extruders/builder_premium_small_rear.def.json diff --git a/resources/extruders/builder_premium_large_front.def.json b/resources/extruders/builder_premium_large_front.def.json deleted file mode 100644 index 159682dc1c..0000000000 --- a/resources/extruders/builder_premium_large_front.def.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "id": "builder_premium_large_front", - "version": 2, - "name": "Front Extruder", - "inherits": "fdmextruder", - "metadata": { - "machine": "builder_premium_large", - "position": "1" - }, - - "overrides": { - "extruder_nr": { - "default_value": 1, - "maximum_value": "1" - }, - "machine_nozzle_offset_x": { "default_value": 0.0 }, - "machine_nozzle_offset_y": { "default_value": 0.0 }, - - "machine_extruder_start_pos_abs": { "default_value": true }, - "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, - "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, - "machine_extruder_end_pos_abs": { "default_value": true }, - "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, - "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, - "extruder_prime_pos_abs": { "default_value": true } - } -} diff --git a/resources/extruders/builder_premium_large_rear.def.json b/resources/extruders/builder_premium_large_rear.def.json deleted file mode 100644 index 5e9cc062ae..0000000000 --- a/resources/extruders/builder_premium_large_rear.def.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "id": "builder_premium_large_rear", - "version": 2, - "name": "Rear Extruder", - "inherits": "fdmextruder", - "metadata": { - "machine": "builder_premium_large", - "position": "0" - }, - - "overrides": { - "extruder_nr": { - "default_value": 0, - "maximum_value": "1" - }, - "machine_nozzle_offset_x": { "default_value": 0.0 }, - "machine_nozzle_offset_y": { "default_value": 0.0 }, - - "machine_extruder_start_pos_abs": { "default_value": true }, - "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, - "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, - "machine_extruder_end_pos_abs": { "default_value": true }, - "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, - "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, - "extruder_prime_pos_abs": { "default_value": true } - } -} diff --git a/resources/extruders/builder_premium_medium_front.def.json b/resources/extruders/builder_premium_medium_front.def.json deleted file mode 100644 index 9a330b4f4b..0000000000 --- a/resources/extruders/builder_premium_medium_front.def.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "id": "builder_premium_medium_front", - "version": 2, - "name": "Front Extruder", - "inherits": "fdmextruder", - "metadata": { - "machine": "builder_premium_medium", - "position": "1" - }, - - "overrides": { - "extruder_nr": { - "default_value": 1, - "maximum_value": "1" - }, - "machine_nozzle_offset_x": { "default_value": 0.0 }, - "machine_nozzle_offset_y": { "default_value": 0.0 }, - - "machine_extruder_start_pos_abs": { "default_value": true }, - "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, - "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, - "machine_extruder_end_pos_abs": { "default_value": true }, - "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, - "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, - "extruder_prime_pos_abs": { "default_value": true } - } -} diff --git a/resources/extruders/builder_premium_medium_rear.def.json b/resources/extruders/builder_premium_medium_rear.def.json deleted file mode 100644 index 49d4734306..0000000000 --- a/resources/extruders/builder_premium_medium_rear.def.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "id": "builder_premium_medium_rear", - "version": 2, - "name": "Rear Extruder", - "inherits": "fdmextruder", - "metadata": { - "machine": "builder_premium_medium", - "position": "0" - }, - - "overrides": { - "extruder_nr": { - "default_value": 0, - "maximum_value": "1" - }, - "machine_nozzle_offset_x": { "default_value": 0.0 }, - "machine_nozzle_offset_y": { "default_value": 0.0 }, - - "machine_extruder_start_pos_abs": { "default_value": true }, - "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, - "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, - "machine_extruder_end_pos_abs": { "default_value": true }, - "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, - "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, - "extruder_prime_pos_abs": { "default_value": true } - } -} diff --git a/resources/extruders/builder_premium_small_front.def.json b/resources/extruders/builder_premium_small_front.def.json deleted file mode 100644 index 2e6293d153..0000000000 --- a/resources/extruders/builder_premium_small_front.def.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "id": "builder_premium_small_front", - "version": 2, - "name": "Front Extruder", - "inherits": "fdmextruder", - "metadata": { - "machine": "builder_premium_small", - "position": "1" - }, - - "overrides": { - "extruder_nr": { - "default_value": 1, - "maximum_value": "1" - }, - "machine_nozzle_offset_x": { "default_value": 0.0 }, - "machine_nozzle_offset_y": { "default_value": 0.0 }, - - "machine_extruder_start_pos_abs": { "default_value": true }, - "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, - "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, - "machine_extruder_end_pos_abs": { "default_value": true }, - "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, - "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, - "extruder_prime_pos_abs": { "default_value": true } - } -} diff --git a/resources/extruders/builder_premium_small_rear.def.json b/resources/extruders/builder_premium_small_rear.def.json deleted file mode 100644 index d1606cdd79..0000000000 --- a/resources/extruders/builder_premium_small_rear.def.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "id": "builder_premium_small_rear", - "version": 2, - "name": "Rear Extruder", - "inherits": "fdmextruder", - "metadata": { - "machine": "builder_premium_small", - "position": "0" - }, - - "overrides": { - "extruder_nr": { - "default_value": 0, - "maximum_value": "1" - }, - "machine_nozzle_offset_x": { "default_value": 0.0 }, - "machine_nozzle_offset_y": { "default_value": 0.0 }, - - "machine_extruder_start_pos_abs": { "default_value": true }, - "machine_extruder_start_pos_x": { "value": "prime_tower_position_x" }, - "machine_extruder_start_pos_y": { "value": "prime_tower_position_y" }, - "machine_extruder_end_pos_abs": { "default_value": true }, - "machine_extruder_end_pos_x": { "value": "prime_tower_position_x" }, - "machine_extruder_end_pos_y": { "value": "prime_tower_position_y" }, - "extruder_prime_pos_abs": { "default_value": true } - } -} From 8826f86b542ce87b9662747d6e8370cd02b1cd15 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Thu, 26 Oct 2017 09:58:01 +0200 Subject: [PATCH 139/218] Remove debug logging - CURA-4451 --- cura/Settings/ProfilesModel.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cura/Settings/ProfilesModel.py b/cura/Settings/ProfilesModel.py index e7db392568..2981873de8 100644 --- a/cura/Settings/ProfilesModel.py +++ b/cura/Settings/ProfilesModel.py @@ -6,7 +6,6 @@ from collections import OrderedDict from PyQt5.QtCore import Qt from UM.Application import Application -from UM.Logger import Logger from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.Models.InstanceContainersModel import InstanceContainersModel @@ -167,8 +166,6 @@ class ProfilesModel(InstanceContainersModel): for item in containers: profile = container_registry.findContainers(id = item["id"]) - Logger.log("d", "profile=%s, id=%s", profile, item["id"]) - # when the profile is not supported if not profile: self._setItemLayerHeight(item, "", "") @@ -186,7 +183,6 @@ class ProfilesModel(InstanceContainersModel): continue item["available"] = profile in qualities - Logger.log("d", "---- profile available = [%s] , qualities = [%s]", item["available"], [q.getId() for q in qualities]) # Easy case: This profile defines its own layer height. if profile.hasProperty("layer_height", "value"): From 701e9a91c23f30f51d4fb4a9830d76677de1b48a Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 26 Oct 2017 11:13:28 +0200 Subject: [PATCH 140/218] Allow using longer accent for machines in job names --- cura/PrintInformation.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index 86bcc2719e..f3b178c356 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -313,7 +313,12 @@ class PrintInformation(QObject): elif word.isdigit(): abbr_machine += word else: - abbr_machine += self._stripAccents(word.strip("()[]{}#").upper())[0] + stripped_word = self._stripAccents(word.strip("()[]{}#").upper()) + # - use only the first character if the word is too long (> 3 characters) + # - use the whole word if it's not too long (<= 3 characters) + if len(stripped_word) > 3: + stripped_word = stripped_word[0] + abbr_machine += stripped_word self._abbr_machine = abbr_machine @@ -339,4 +344,3 @@ class PrintInformation(QObject): temp_material_amounts = [0] self._onPrintDurationMessage(temp_message, temp_material_amounts) - From 2f441ba7e1221294abee83646a0de6a4338c0fbf Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 26 Oct 2017 11:36:59 +0200 Subject: [PATCH 141/218] Remove debugging log lines CURA-4451 --- cura/Settings/MachineManager.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 131160c8af..bbeafc9a06 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -827,7 +827,6 @@ class MachineManager(QObject): if old_material: preferred_material_name = old_material.getName() preferred_material_id = self._updateMaterialContainer(self._global_container_stack.getBottom(), self._global_container_stack, containers[0], preferred_material_name).id - Logger.log("d", "preferred_material_id=%s", preferred_material_id) self.setActiveMaterial(preferred_material_id) else: Logger.log("w", "While trying to set the active variant, no variant was found to replace.") From 7d46eead606170b7fab9c1f1e51b10caf554adf1 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 26 Oct 2017 12:49:41 +0200 Subject: [PATCH 142/218] Fix broken unit tests due to evaluation context CURA-4498 --- tests/Settings/TestExtruderStack.py | 2 +- tests/Settings/TestGlobalStack.py | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/Settings/TestExtruderStack.py b/tests/Settings/TestExtruderStack.py index 66b4d51b04..6ed2c6649b 100644 --- a/tests/Settings/TestExtruderStack.py +++ b/tests/Settings/TestExtruderStack.py @@ -251,7 +251,7 @@ def test_getPropertyFallThrough(extruder_stack): for type_id, type_name in container_indices.IndexTypeMap.items(): container = unittest.mock.MagicMock() # Return type_id when asking for value and -1 when asking for limit_to_extruder - container.getProperty = lambda key, property, type_id = type_id: type_id if (key == "layer_height" and property == "value") else (None if property != "limit_to_extruder" else "-1") #Returns the container type ID as layer height, in order to identify it. + container.getProperty = lambda key, property, context = None, type_id = type_id: type_id if (key == "layer_height" and property == "value") else (None if property != "limit_to_extruder" else "-1") #Returns the container type ID as layer height, in order to identify it. container.hasProperty = lambda key, property: key == "layer_height" container.getMetaDataEntry = unittest.mock.MagicMock(return_value = type_name) mock_layer_heights[type_id] = container diff --git a/tests/Settings/TestGlobalStack.py b/tests/Settings/TestGlobalStack.py index 89dd76aec1..afd3d2b425 100755 --- a/tests/Settings/TestGlobalStack.py +++ b/tests/Settings/TestGlobalStack.py @@ -63,7 +63,7 @@ def test_addContainer(global_stack): ## Tests adding extruders to the global stack. def test_addExtruder(global_stack): mock_definition = unittest.mock.MagicMock() - mock_definition.getProperty = lambda key, property: 2 if key == "machine_extruder_count" and property == "value" else None + mock_definition.getProperty = lambda key, property, context = None: 2 if key == "machine_extruder_count" and property == "value" else None with unittest.mock.patch("cura.Settings.CuraContainerStack.DefinitionContainer", unittest.mock.MagicMock): global_stack.definition = mock_definition @@ -318,7 +318,7 @@ def test_getPropertyFallThrough(global_stack): container_indexes = cura.Settings.CuraContainerStack._ContainerIndexes #Cache. for type_id, type_name in container_indexes.IndexTypeMap.items(): container = unittest.mock.MagicMock() - container.getProperty = lambda key, property, type_id = type_id: type_id if (key == "layer_height" and property == "value") else None #Returns the container type ID as layer height, in order to identify it. + container.getProperty = lambda key, property, context = None, type_id = type_id: type_id if (key == "layer_height" and property == "value") else None #Returns the container type ID as layer height, in order to identify it. container.hasProperty = lambda key, property: key == "layer_height" container.getMetaDataEntry = unittest.mock.MagicMock(return_value = type_name) mock_layer_heights[type_id] = container @@ -355,7 +355,7 @@ def test_getPropertyFallThrough(global_stack): ## In definitions, test whether having no resolve allows us to find the value. def test_getPropertyNoResolveInDefinition(global_stack): value = unittest.mock.MagicMock() #Just sets the value for bed temperature. - value.getProperty = lambda key, property: 10 if (key == "material_bed_temperature" and property == "value") else None + value.getProperty = lambda key, property, context = None: 10 if (key == "material_bed_temperature" and property == "value") else None with unittest.mock.patch("cura.Settings.CuraContainerStack.DefinitionContainer", unittest.mock.MagicMock): #To guard against the type checking. global_stack.definition = value @@ -365,7 +365,7 @@ def test_getPropertyNoResolveInDefinition(global_stack): # must get the resolve first. def test_getPropertyResolveInDefinition(global_stack): resolve_and_value = unittest.mock.MagicMock() #Sets the resolve and value for bed temperature. - resolve_and_value.getProperty = lambda key, property: (7.5 if property == "resolve" else 5) if (key == "material_bed_temperature" and property in ("resolve", "value")) else None #7.5 resolve, 5 value. + resolve_and_value.getProperty = lambda key, property, context = None: (7.5 if property == "resolve" else 5) if (key == "material_bed_temperature" and property in ("resolve", "value")) else None #7.5 resolve, 5 value. with unittest.mock.patch("cura.Settings.CuraContainerStack.DefinitionContainer", unittest.mock.MagicMock): #To guard against the type checking. global_stack.definition = resolve_and_value @@ -378,9 +378,9 @@ def test_getPropertyResolveInInstance(global_stack): instance_containers = {} for container_type in container_indices.IndexTypeMap: instance_containers[container_type] = unittest.mock.MagicMock() #Sets the resolve and value for bed temperature. - instance_containers[container_type].getProperty = lambda key, property: (7.5 if property == "resolve" else (InstanceState.User if property == "state" else (5 if property != "limit_to_extruder" else "-1"))) if (key == "material_bed_temperature") else None #7.5 resolve, 5 value. + instance_containers[container_type].getProperty = lambda key, property, context = None: (7.5 if property == "resolve" else (InstanceState.User if property == "state" else (5 if property != "limit_to_extruder" else "-1"))) if (key == "material_bed_temperature") else None #7.5 resolve, 5 value. instance_containers[container_type].getMetaDataEntry = unittest.mock.MagicMock(return_value = container_indices.IndexTypeMap[container_type]) #Make queries for the type return the desired type. - instance_containers[container_indices.Definition].getProperty = lambda key, property: 10 if (key == "material_bed_temperature" and property == "value") else None #Definition only has value. + instance_containers[container_indices.Definition].getProperty = lambda key, property, context = None: 10 if (key == "material_bed_temperature" and property == "value") else None #Definition only has value. with unittest.mock.patch("cura.Settings.CuraContainerStack.DefinitionContainer", unittest.mock.MagicMock): #To guard against the type checking. global_stack.definition = instance_containers[container_indices.Definition] #Stack must have a definition. @@ -402,10 +402,10 @@ def test_getPropertyResolveInInstance(global_stack): # definitions. def test_getPropertyInstancesBeforeResolve(global_stack): value = unittest.mock.MagicMock() #Sets just the value. - value.getProperty = lambda key, property: (10 if property == "value" else (InstanceState.User if property != "limit_to_extruder" else "-1")) if key == "material_bed_temperature" else None + value.getProperty = lambda key, property, context = None: (10 if property == "value" else (InstanceState.User if property != "limit_to_extruder" else "-1")) if key == "material_bed_temperature" else None value.getMetaDataEntry = unittest.mock.MagicMock(return_value = "quality") resolve = unittest.mock.MagicMock() #Sets just the resolve. - resolve.getProperty = lambda key, property: 7.5 if (key == "material_bed_temperature" and property == "resolve") else None + resolve.getProperty = lambda key, property, context = None: 7.5 if (key == "material_bed_temperature" and property == "resolve") else None with unittest.mock.patch("cura.Settings.CuraContainerStack.DefinitionContainer", unittest.mock.MagicMock): #To guard against the type checking. global_stack.definition = resolve From 938ae5af1deaffe53ef3244f6ff0f59e06442f12 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Thu, 26 Oct 2017 14:36:23 +0200 Subject: [PATCH 143/218] Added function to catch prepare and monitor button click CURA-4062 --- resources/qml/Topbar.qml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/qml/Topbar.qml b/resources/qml/Topbar.qml index 5dacfc72ea..c69c786d5a 100644 --- a/resources/qml/Topbar.qml +++ b/resources/qml/Topbar.qml @@ -30,9 +30,11 @@ Rectangle Component.onCompleted: { startMonitoringPrint.connect(function () { base.monitoringPrint = true + UM.Controller.disableModelRendering() }) stopMonitoringPrint.connect(function () { base.monitoringPrint = false + UM.Controller.enableModelRendering() }) } From 9b066ea78be8c0bdda7c57a6cdf3b7e75e69b1a3 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 26 Oct 2017 15:27:01 +0200 Subject: [PATCH 144/218] CURA-4451 Bring back again the PP 0.4 fast profile of UM2+ that was deleted by mistake --- .../ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg new file mode 100644 index 0000000000..d471e39853 --- /dev/null +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg @@ -0,0 +1,71 @@ +[general] +version = 2 +name = Normal +definition = ultimaker2_plus + +[metadata] +type = quality +material = generic_pp_ultimaker2_plus_0.4_mm +weight = -1 +quality_type = fast +setting_version = 3 + +[values] +acceleration_enabled = True +acceleration_layer_0 = =acceleration_topbottom +acceleration_prime_tower = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_print = 4000 +acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) +acceleration_support_interface = =acceleration_topbottom +acceleration_topbottom = =math.ceil(acceleration_print * 500 / 4000) +acceleration_wall = =math.ceil(acceleration_print * 1000 / 4000) +acceleration_wall_0 = =math.ceil(acceleration_wall * 500 / 1000) +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + 4 * layer_height +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 6 +cool_min_speed = 20 +infill_line_width = =round(line_width * 0.4 / 0.38, 2) +infill_overlap = 0 +infill_pattern = cubic +infill_wipe_dist = 0 +jerk_enabled = True +jerk_layer_0 = =jerk_topbottom +jerk_prime_tower = =math.ceil(jerk_print * 15 / 25) +jerk_print = 25 +jerk_support = =math.ceil(jerk_print * 15 / 25) +jerk_support_interface = =jerk_topbottom +jerk_topbottom = =math.ceil(jerk_print * 5 / 25) +jerk_wall = =math.ceil(jerk_print * 10 / 25) +jerk_wall_0 = =math.ceil(jerk_wall * 5 / 10) +layer_height = 0.15 +line_width = =machine_nozzle_size * 0.95 +multiple_mesh_overlap = 0 +retraction_count_max = 12 +retraction_extrusion_window = 1 +retraction_hop = 0.15 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.5 +retraction_prime_speed = 15 +skin_overlap = 10 +speed_layer_0 = 25 +speed_prime_tower = =speed_topbottom +speed_print = 25 +speed_support_interface = =speed_topbottom +speed_topbottom = =math.ceil(speed_print * 25 / 25) +speed_travel = 250 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 20 / 25) +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_xy_distance = =wall_line_width_0 * 2.5 +support_xy_distance_overhang = =wall_line_width_0 +support_z_distance = =layer_height * 2 +travel_avoid_distance = 3 +wall_0_inset = 0 +wall_line_width_x = =round(line_width * 0.38 / 0.38, 2) +wall_thickness = 0.76 + From b9c318d4326ab684f33987488fb91e6d15f44f28 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 26 Oct 2017 16:53:31 +0200 Subject: [PATCH 145/218] CURA-4451 Minor changes --- cura/CrashHandler.py | 1 - cura/QualityManager.py | 7 ------- cura/Settings/ProfilesModel.py | 4 ++-- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/cura/CrashHandler.py b/cura/CrashHandler.py index ad80d286c3..c6f94f0a80 100644 --- a/cura/CrashHandler.py +++ b/cura/CrashHandler.py @@ -75,7 +75,6 @@ class CrashHandler: ## Creates a modal dialog. def _createDialog(self): - self.dialog = QDialog() self.dialog.setMinimumWidth(640) self.dialog.setMinimumHeight(640) self.dialog.setWindowTitle(catalog.i18nc("@title:window", "Crash Report")) diff --git a/cura/QualityManager.py b/cura/QualityManager.py index 0312c50daf..abd14fa841 100644 --- a/cura/QualityManager.py +++ b/cura/QualityManager.py @@ -198,13 +198,6 @@ class QualityManager: else: materials.append(global_container_stack.material) - # if extruder_stacks: - # # Multi-extruder machine detected. - # materials = [stack.material for stack in extruder_stacks] - # else: - # # Machine with one extruder. - # materials = [global_container_stack.material] - quality_types = self.findAllQualityTypesForMachineAndMaterials(global_machine_definition, materials) # Map the list of quality_types to InstanceContainers diff --git a/cura/Settings/ProfilesModel.py b/cura/Settings/ProfilesModel.py index 2981873de8..6353d3ce84 100644 --- a/cura/Settings/ProfilesModel.py +++ b/cura/Settings/ProfilesModel.py @@ -166,7 +166,7 @@ class ProfilesModel(InstanceContainersModel): for item in containers: profile = container_registry.findContainers(id = item["id"]) - # when the profile is not supported + # When for some reason there is no profile container in the registry if not profile: self._setItemLayerHeight(item, "", "") item["available"] = False @@ -175,7 +175,7 @@ class ProfilesModel(InstanceContainersModel): profile = profile[0] - # empty qualities should show in the list (they are "Not Supported" profiles) + # When there is a profile but it's an empty quality should. It's shown in the list (they are "Not Supported" profiles) if profile.getId() == "empty_quality": self._setItemLayerHeight(item, "", "") item["available"] = True From ee228155af1677f3f375fb0b28b53ecef744d4d2 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Fri, 27 Oct 2017 09:24:31 +0200 Subject: [PATCH 146/218] Remove unnecessary properties which after update triggered view rendering CURA-4062 --- resources/qml/Cura.qml | 3 --- 1 file changed, 3 deletions(-) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index cb0211f29f..934fc58017 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -344,9 +344,6 @@ UM.MainWindow { id: toolbar; - property int mouseX: base.mouseX - property int mouseY: base.mouseY - anchors { top: openFileButton.bottom; topMargin: UM.Theme.getSize("window_margin").height; From ff5b9eefea41363d1eb230431cf7eeee7532b9fc Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 27 Oct 2017 09:33:09 +0200 Subject: [PATCH 147/218] Minor improvement to German translation of 'Check all' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks to @app-js. 'Alles auswählen' didn't fit. Fixes #2689. --- resources/i18n/de_DE/cura.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/i18n/de_DE/cura.po b/resources/i18n/de_DE/cura.po index 6bb71a5ae0..179994a4a6 100644 --- a/resources/i18n/de_DE/cura.po +++ b/resources/i18n/de_DE/cura.po @@ -2519,7 +2519,7 @@ msgstr "Sichtbarkeit einstellen" #: /home/ruben/Projects/Cura/resources/qml/Preferences/SettingVisibilityPage.qml:44 msgctxt "@label:textbox" msgid "Check all" -msgstr "Alle prüfen" +msgstr "Alles wählen" #: /home/ruben/Projects/Cura/resources/qml/Preferences/ProfileTab.qml:40 msgctxt "@info:status" From fe70e1908977bea3dc2ed7e182585dc583cca0aa Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 27 Oct 2017 10:56:46 +0200 Subject: [PATCH 148/218] Reset extruder numbers whose values are no longer valid CURA-4176 After the user changes the number of extruders for a machine, some extruder number settings may not have valid values any more. These settings need to be reset.` --- .../MachineSettingsAction.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/plugins/MachineSettingsAction/MachineSettingsAction.py b/plugins/MachineSettingsAction/MachineSettingsAction.py index 4343c2c780..360dae7a2c 100755 --- a/plugins/MachineSettingsAction/MachineSettingsAction.py +++ b/plugins/MachineSettingsAction/MachineSettingsAction.py @@ -147,6 +147,7 @@ class MachineSettingsAction(MachineAction): for setting_instance in extruder_user_container.findInstances(): setting_key = setting_instance.definition.key settable_per_extruder = self._global_container_stack.getProperty(setting_key, "settable_per_extruder") + if settable_per_extruder: limit_to_extruder = self._global_container_stack.getProperty(setting_key, "limit_to_extruder") @@ -154,11 +155,16 @@ class MachineSettingsAction(MachineAction): global_user_container.setProperty(setting_key, "value", extruder_user_container.getProperty(setting_key, "value")) extruder_user_container.removeInstance(setting_key) - # Check to see if any features are set to print with an extruder that will no longer exist - for setting_key in ["adhesion_extruder_nr", "support_extruder_nr", "support_extruder_nr_layer_0", "support_infill_extruder_nr", "support_interface_extruder_nr"]: - if int(self._global_container_stack.getProperty(setting_key, "value")) > extruder_count - 1: - Logger.log("i", "Lowering %s setting to match number of extruders", setting_key) - self._global_container_stack.getTop().setProperty(setting_key, "value", extruder_count - 1) + # reset all extruder number settings whose value is no longer valid + for setting_instance in self._global_container_stack.userChanges.findInstances(): + setting_key = setting_instance.definition.key + if not self._global_container_stack.getProperty(setting_key, "type") in ("extruder", "optional_extruder"): + continue + + old_value = int(self._global_container_stack.userChanges.getProperty(setting_key, "value")) + if old_value >= extruder_count: + self._global_container_stack.userChanges.removeInstance(setting_key) + Logger.log("d", "Reset [%s] because its old value [%s] is no longer valid ", setting_key, old_value) # Check to see if any objects are set to print with an extruder that will no longer exist root_node = Application.getInstance().getController().getScene().getRoot() From 7e6e0e20211362e71d98b576f55d09abc26a707b Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Fri, 27 Oct 2017 11:18:46 +0200 Subject: [PATCH 149/218] Remove "not supported" quality files for "Builder premium" printer CURA-4436 --- .../bp_ABS_Coarse_Quality.inst.cfg | 14 ----------- .../bp_ABS_High_Quality.inst.cfg | 14 ----------- .../bp_ABS_Normal_Quality.inst.cfg | 14 ----------- .../bp_BVOH_Coarse_Quality.inst.cfg | 24 ------------------ .../bp_BVOH_High_Quality.inst.cfg | 25 ------------------- .../bp_BVOH_Normal_Quality.inst.cfg | 23 ----------------- .../bp_CPE_Coarse_Quality.inst.cfg | 14 ----------- .../bp_CPE_High_Quality.inst.cfg | 14 ----------- .../bp_CPE_Normal_Quality.inst.cfg | 14 ----------- .../bp_HIPS_Coarse_Quality.inst.cfg | 15 ----------- .../bp_HIPS_High_Quality.inst.cfg | 14 ----------- .../bp_HIPS_Normal_Quality.inst.cfg | 14 ----------- .../bp_Innoflex60_Coarse_Quality.inst.cfg | 24 ------------------ .../bp_Innoflex60_High_Quality.inst.cfg | 25 ------------------- .../bp_Innoflex60_Normal_Quality.inst.cfg | 23 ----------------- .../bp_Nylon_Coarse_Quality.inst.cfg | 14 ----------- .../bp_Nylon_High_Quality.inst.cfg | 14 ----------- .../bp_Nylon_Normal_Quality.inst.cfg | 14 ----------- .../bp_PC_Coarse_Quality.inst.cfg | 14 ----------- .../bp_PC_High_Quality.inst.cfg | 14 ----------- .../bp_PC_Normal_Quality.inst.cfg | 14 ----------- .../bp_PET_Coarse_Quality.inst.cfg | 24 ------------------ .../bp_PET_High_Quality.inst.cfg | 25 ------------------- .../bp_PET_Normal_Quality.inst.cfg | 23 ----------------- .../bp_PLA_Coarse_Quality.inst.cfg | 1 + .../bp_PLA_High_Quality.inst.cfg | 1 + .../bp_PLA_Normal_Quality.inst.cfg | 1 + .../bp_PVA_Coarse_Quality.inst.cfg | 24 ------------------ .../bp_PVA_High_Quality.inst.cfg | 25 ------------------- .../bp_PVA_Normal_Quality.inst.cfg | 23 ----------------- .../bp_global_Coarse_Quality.inst.cfg | 14 ----------- .../bp_global_High_Quality.inst.cfg | 14 ----------- .../bp_global_Normal_Quality.inst.cfg | 14 ----------- 33 files changed, 3 insertions(+), 541 deletions(-) delete mode 100644 resources/quality/builder_premium/bp_ABS_Coarse_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_ABS_High_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_ABS_Normal_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_BVOH_Coarse_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_BVOH_High_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_BVOH_Normal_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_CPE_Coarse_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_CPE_High_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_CPE_Normal_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_HIPS_Coarse_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_HIPS_High_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_HIPS_Normal_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_Innoflex60_Coarse_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_Innoflex60_High_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_Innoflex60_Normal_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_Nylon_Coarse_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_Nylon_High_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_Nylon_Normal_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_PC_Coarse_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_PC_High_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_PC_Normal_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_PET_Coarse_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_PET_High_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_PET_Normal_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_PVA_Coarse_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_PVA_High_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_PVA_Normal_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_global_Coarse_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_global_High_Quality.inst.cfg delete mode 100644 resources/quality/builder_premium/bp_global_Normal_Quality.inst.cfg diff --git a/resources/quality/builder_premium/bp_ABS_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_ABS_Coarse_Quality.inst.cfg deleted file mode 100644 index 4e1294fdb6..0000000000 --- a/resources/quality/builder_premium/bp_ABS_Coarse_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = builder_premium_small - -[metadata] -type = quality -quality_type = coarse -material = generic_abs_175 -setting_version = 3 -weight = -1 -supported = False - -[values] \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_ABS_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_ABS_High_Quality.inst.cfg deleted file mode 100644 index e6ec6b2158..0000000000 --- a/resources/quality/builder_premium/bp_ABS_High_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = builder_premium_small - -[metadata] -type = quality -quality_type = high -material = generic_abs_175 -setting_version = 3 -weight = 1 -supported = False - -[values] \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_ABS_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_ABS_Normal_Quality.inst.cfg deleted file mode 100644 index c033dca279..0000000000 --- a/resources/quality/builder_premium/bp_ABS_Normal_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = builder_premium_small - -[metadata] -type = quality -quality_type = normal -material = generic_abs_175 -setting_version = 3 -weight = 0 -supported = False - -[values] diff --git a/resources/quality/builder_premium/bp_BVOH_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_BVOH_Coarse_Quality.inst.cfg deleted file mode 100644 index 80bc8adaa6..0000000000 --- a/resources/quality/builder_premium/bp_BVOH_Coarse_Quality.inst.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[general] -version = 2 -name = Coarse -definition = builder_premium_small - -[metadata] -type = quality -quality_type = coarse -material = verbatim_bvoh_175 -setting_version = 3 -weight = -1 - -[values] -material_print_temperature = =default_material_print_temperature + 5 -material_standby_temperature = =material_print_temperature -material_initial_print_temperature= =material_print_temperature -material_final_print_temperature= =material_print_temperature -material_bed_temperature = 45 -material_bed_temperature_layer_0= =material_bed_temperature -layer_height = 0.3 -top_thickness = =layer_height * 5 -bottom_thickness = =layer_height * 3 -speed_print = 40 - diff --git a/resources/quality/builder_premium/bp_BVOH_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_BVOH_High_Quality.inst.cfg deleted file mode 100644 index 54ff19f0c6..0000000000 --- a/resources/quality/builder_premium/bp_BVOH_High_Quality.inst.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[general] -version = 2 -name = High Quality -definition = builder_premium_small - -[metadata] -type = quality -quality_type = high -material = verbatim_bvoh_175 -setting_version = 3 -weight = 1 - -[values] -acceleration_print = 2000 -material_print_temperature = =default_material_print_temperature + 5 -material_standby_temperature = =material_print_temperature -material_initial_print_temperature= =material_print_temperature -material_final_print_temperature= =material_print_temperature -material_bed_temperature = 45 -material_bed_temperature_layer_0= =material_bed_temperature -layer_height = 0.1 -top_thickness = =layer_height * 7 -bottom_thickness = =layer_height * 5 -speed_print = 40 -layer_height_0 = 0.2 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_BVOH_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_BVOH_Normal_Quality.inst.cfg deleted file mode 100644 index 8d026391db..0000000000 --- a/resources/quality/builder_premium/bp_BVOH_Normal_Quality.inst.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[general] -version = 2 -name = Normal -definition = builder_premium_small - -[metadata] -type = quality -quality_type = normal -material = verbatim_bvoh_175 -setting_version = 3 -weight = 0 - -[values] -material_print_temperature = =default_material_print_temperature + 5 -material_standby_temperature = =material_print_temperature -material_initial_print_temperature= =material_print_temperature -material_final_print_temperature= =material_print_temperature -material_bed_temperature = 45 -material_bed_temperature_layer_0= =material_bed_temperature -layer_height = 0.2 -top_thickness = =layer_height * 5 -bottom_thickness = =layer_height * 3 -speed_print = 40 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_CPE_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_CPE_Coarse_Quality.inst.cfg deleted file mode 100644 index 4f5c56af04..0000000000 --- a/resources/quality/builder_premium/bp_CPE_Coarse_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = builder_premium_small - -[metadata] -type = quality -quality_type = coarse -material = generic_cpe_175 -setting_version = 3 -weight = -1 -supported = False - -[values] diff --git a/resources/quality/builder_premium/bp_CPE_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_CPE_High_Quality.inst.cfg deleted file mode 100644 index dfa7302ee0..0000000000 --- a/resources/quality/builder_premium/bp_CPE_High_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = builder_premium_small - -[metadata] -type = quality -quality_type = high -material = generic_cpe_175 -setting_version = 3 -weight = 1 -supported = False - -[values] \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_CPE_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_CPE_Normal_Quality.inst.cfg deleted file mode 100644 index 8a72c81b16..0000000000 --- a/resources/quality/builder_premium/bp_CPE_Normal_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = builder_premium_small - -[metadata] -type = quality -quality_type = normal -material = generic_cpe_175 -setting_version = 3 -weight = 0 -supported = False - -[values] diff --git a/resources/quality/builder_premium/bp_HIPS_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_HIPS_Coarse_Quality.inst.cfg deleted file mode 100644 index 646f69cee1..0000000000 --- a/resources/quality/builder_premium/bp_HIPS_Coarse_Quality.inst.cfg +++ /dev/null @@ -1,15 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = builder_premium_small - -[metadata] -type = quality -quality_type = coarse -material = generic_hips_175 -setting_version = 3 -weight = -1 -supported = False - -[values] - diff --git a/resources/quality/builder_premium/bp_HIPS_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_HIPS_High_Quality.inst.cfg deleted file mode 100644 index cb28b7c3d4..0000000000 --- a/resources/quality/builder_premium/bp_HIPS_High_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = builder_premium_small - -[metadata] -type = quality -quality_type = high -material = generic_hips_175 -setting_version = 3 -weight = 1 -supported = False - -[values] \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_HIPS_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_HIPS_Normal_Quality.inst.cfg deleted file mode 100644 index 49ae840c49..0000000000 --- a/resources/quality/builder_premium/bp_HIPS_Normal_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = builder_premium_small - -[metadata] -type = quality -quality_type = normal -material = generic_hips_175 -setting_version = 3 -weight = 0 -supported = False - -[values] \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_Innoflex60_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_Innoflex60_Coarse_Quality.inst.cfg deleted file mode 100644 index 32a3695148..0000000000 --- a/resources/quality/builder_premium/bp_Innoflex60_Coarse_Quality.inst.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[general] -version = 2 -name = Coarse -definition = builder_premium_small - -[metadata] -type = quality -quality_type = coarse -material = innofill_innoflex60_175 -setting_version = 3 -weight = -1 - -[values] -material_print_temperature = =default_material_print_temperature -material_standby_temperature = =material_print_temperature -material_initial_print_temperature= =material_print_temperature -material_final_print_temperature= =material_print_temperature -material_bed_temperature = 45 -material_bed_temperature_layer_0= =material_bed_temperature -layer_height = 0.3 -top_thickness = =layer_height * 5 -bottom_thickness = =layer_height * 3 -speed_print = 30 - diff --git a/resources/quality/builder_premium/bp_Innoflex60_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_Innoflex60_High_Quality.inst.cfg deleted file mode 100644 index 43d547436b..0000000000 --- a/resources/quality/builder_premium/bp_Innoflex60_High_Quality.inst.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[general] -version = 2 -name = High Quality -definition = builder_premium_small - -[metadata] -type = quality -quality_type = high -material = innofill_innoflex60_175 -setting_version = 3 -weight = 1 - -[values] -acceleration_print = 2000 -material_print_temperature = =default_material_print_temperature -material_standby_temperature = =material_print_temperature -material_initial_print_temperature= =material_print_temperature -material_final_print_temperature= =material_print_temperature -material_bed_temperature = 45 -material_bed_temperature_layer_0= =material_bed_temperature -layer_height = 0.1 -top_thickness = =layer_height * 7 -bottom_thickness = =layer_height * 5 -speed_print = 30 -layer_height_0 = 0.2 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_Innoflex60_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_Innoflex60_Normal_Quality.inst.cfg deleted file mode 100644 index 658e868a5f..0000000000 --- a/resources/quality/builder_premium/bp_Innoflex60_Normal_Quality.inst.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[general] -version = 2 -name = Normal -definition = builder_premium_small - -[metadata] -type = quality -quality_type = normal -material = innofill_innoflex60_175 -setting_version = 3 -weight = 0 - -[values] -material_print_temperature = =default_material_print_temperature -material_standby_temperature = =material_print_temperature -material_initial_print_temperature= =material_print_temperature -material_final_print_temperature= =material_print_temperature -material_bed_temperature = 45 -material_bed_temperature_layer_0= =material_bed_temperature -layer_height = 0.2 -top_thickness = =layer_height * 5 -bottom_thickness = =layer_height * 3 -speed_print = 30 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_Nylon_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_Nylon_Coarse_Quality.inst.cfg deleted file mode 100644 index 14441b7c6c..0000000000 --- a/resources/quality/builder_premium/bp_Nylon_Coarse_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = builder_premium_small - -[metadata] -type = quality -quality_type = coarse -material = generic_nylon_175 -setting_version = 3 -weight = 0 -supported = False - -[values] diff --git a/resources/quality/builder_premium/bp_Nylon_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_Nylon_High_Quality.inst.cfg deleted file mode 100644 index 90f9a2ed84..0000000000 --- a/resources/quality/builder_premium/bp_Nylon_High_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = builder_premium_small - -[metadata] -type = quality -quality_type = high -material = generic_nylon_175 -setting_version = 3 -weight = 0 -supported = False - -[values] diff --git a/resources/quality/builder_premium/bp_Nylon_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_Nylon_Normal_Quality.inst.cfg deleted file mode 100644 index b943f0bd02..0000000000 --- a/resources/quality/builder_premium/bp_Nylon_Normal_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = builder_premium_small - -[metadata] -type = quality -quality_type = normal -material = generic_nylon_175 -setting_version = 3 -weight = 0 -supported = False - -[values] diff --git a/resources/quality/builder_premium/bp_PC_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_PC_Coarse_Quality.inst.cfg deleted file mode 100644 index c7c5782d96..0000000000 --- a/resources/quality/builder_premium/bp_PC_Coarse_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = builder_premium_small - -[metadata] -type = quality -quality_type = coarse -material = generic_pc_175 -setting_version = 3 -weight = 0 -supported = False - -[values] diff --git a/resources/quality/builder_premium/bp_PC_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_PC_High_Quality.inst.cfg deleted file mode 100644 index 01f5845748..0000000000 --- a/resources/quality/builder_premium/bp_PC_High_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = builder_premium_small - -[metadata] -type = quality -quality_type = high -material = generic_pc_175 -setting_version = 3 -weight = 0 -supported = False - -[values] diff --git a/resources/quality/builder_premium/bp_PC_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_PC_Normal_Quality.inst.cfg deleted file mode 100644 index 26a2183a91..0000000000 --- a/resources/quality/builder_premium/bp_PC_Normal_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Not Supported -definition = builder_premium_small - -[metadata] -type = quality -quality_type = normal -material = generic_pc_175 -setting_version = 3 -weight = 0 -supported = False - -[values] diff --git a/resources/quality/builder_premium/bp_PET_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_PET_Coarse_Quality.inst.cfg deleted file mode 100644 index fb56005655..0000000000 --- a/resources/quality/builder_premium/bp_PET_Coarse_Quality.inst.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[general] -version = 2 -name = Coarse -definition = builder_premium_small - -[metadata] -type = quality -quality_type = coarse -material = generic_petg_175 -setting_version = 3 -weight = -1 - -[values] -material_print_temperature = =default_material_print_temperature - 5 -material_standby_temperature = =material_print_temperature -material_initial_print_temperature= =material_print_temperature -material_final_print_temperature= =material_print_temperature -material_bed_temperature = 45 -material_bed_temperature_layer_0= =material_bed_temperature -layer_height = 0.3 -top_thickness = =layer_height * 5 -bottom_thickness = =layer_height * 3 -speed_print = 60 - diff --git a/resources/quality/builder_premium/bp_PET_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_PET_High_Quality.inst.cfg deleted file mode 100644 index f6e735deb0..0000000000 --- a/resources/quality/builder_premium/bp_PET_High_Quality.inst.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[general] -version = 2 -name = High Quality -definition = builder_premium_small - -[metadata] -type = quality -quality_type = high -material = generic_petg_175 -setting_version = 3 -weight = 1 - -[values] -acceleration_print = 2000 -material_print_temperature = =default_material_print_temperature - 5 -material_standby_temperature = =material_print_temperature -material_initial_print_temperature= =material_print_temperature -material_final_print_temperature= =material_print_temperature -material_bed_temperature = 45 -material_bed_temperature_layer_0= =material_bed_temperature -layer_height = 0.1 -top_thickness = =layer_height * 7 -bottom_thickness = =layer_height * 5 -speed_print = 40 -layer_height_0 = 0.2 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_PET_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_PET_Normal_Quality.inst.cfg deleted file mode 100644 index 13b1e90be6..0000000000 --- a/resources/quality/builder_premium/bp_PET_Normal_Quality.inst.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[general] -version = 2 -name = Normal -definition = builder_premium_small - -[metadata] -type = quality -quality_type = normal -material = generic_petg_175 -setting_version = 3 -weight = 0 - -[values] -material_print_temperature = =default_material_print_temperature - 5 -material_standby_temperature = =material_print_temperature -material_initial_print_temperature= =material_print_temperature -material_final_print_temperature= =material_print_temperature -material_bed_temperature = 45 -material_bed_temperature_layer_0= =material_bed_temperature -layer_height = 0.2 -top_thickness = =layer_height * 5 -bottom_thickness = =layer_height * 3 -speed_print = 50 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg index 88b1a899e9..2a7089f3fe 100644 --- a/resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg @@ -9,6 +9,7 @@ quality_type = coarse material = generic_pla_175 setting_version = 3 weight = -1 +global_quality = True [values] material_print_temperature = =default_material_print_temperature + 15 diff --git a/resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg index a61b4ee958..d2b0dae2bb 100644 --- a/resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg @@ -9,6 +9,7 @@ quality_type = high material = generic_pla_175 setting_version = 3 weight = 1 +global_quality = True [values] acceleration_print = 2000 diff --git a/resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg index 6b0648b4e4..ee5b771912 100644 --- a/resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg @@ -9,6 +9,7 @@ quality_type = normal material = generic_pla_175 setting_version = 3 weight = 0 +global_quality = True [values] material_print_temperature = =default_material_print_temperature + 15 diff --git a/resources/quality/builder_premium/bp_PVA_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_PVA_Coarse_Quality.inst.cfg deleted file mode 100644 index fe0c1046b8..0000000000 --- a/resources/quality/builder_premium/bp_PVA_Coarse_Quality.inst.cfg +++ /dev/null @@ -1,24 +0,0 @@ -[general] -version = 2 -name = Coarse -definition = builder_premium_small - -[metadata] -type = quality -quality_type = coarse -material = generic_pva_175 -setting_version = 3 -weight = -1 - -[values] -material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = =material_print_temperature -material_initial_print_temperature= =material_print_temperature -material_final_print_temperature= =material_print_temperature -material_bed_temperature = 45 -material_bed_temperature_layer_0= =material_bed_temperature -layer_height = 0.3 -top_thickness = =layer_height * 5 -bottom_thickness = =layer_height * 3 -speed_print = 40 - diff --git a/resources/quality/builder_premium/bp_PVA_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_PVA_High_Quality.inst.cfg deleted file mode 100644 index 13c6c7ef89..0000000000 --- a/resources/quality/builder_premium/bp_PVA_High_Quality.inst.cfg +++ /dev/null @@ -1,25 +0,0 @@ -[general] -version = 2 -name = High Quality -definition = builder_premium_small - -[metadata] -type = quality -quality_type = high -material = generic_pva_175 -setting_version = 3 -weight = 1 - -[values] -acceleration_print = 2000 -material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = =material_print_temperature -material_initial_print_temperature= =material_print_temperature -material_final_print_temperature= =material_print_temperature -material_bed_temperature = 45 -material_bed_temperature_layer_0= =material_bed_temperature -layer_height = 0.1 -top_thickness = =layer_height * 7 -bottom_thickness = =layer_height * 5 -speed_print = 40 -layer_height_0 = 0.2 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_PVA_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_PVA_Normal_Quality.inst.cfg deleted file mode 100644 index 5b16476b4b..0000000000 --- a/resources/quality/builder_premium/bp_PVA_Normal_Quality.inst.cfg +++ /dev/null @@ -1,23 +0,0 @@ -[general] -version = 2 -name = Normal -definition = builder_premium_small - -[metadata] -type = quality -quality_type = normal -material = generic_pva_175 -setting_version = 3 -weight = 0 - -[values] -material_print_temperature = =default_material_print_temperature + 10 -material_standby_temperature = =material_print_temperature -material_initial_print_temperature= =material_print_temperature -material_final_print_temperature= =material_print_temperature -material_bed_temperature = 45 -material_bed_temperature_layer_0= =material_bed_temperature -layer_height = 0.2 -top_thickness = =layer_height * 5 -bottom_thickness = =layer_height * 3 -speed_print = 40 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_global_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_global_Coarse_Quality.inst.cfg deleted file mode 100644 index 0edca57629..0000000000 --- a/resources/quality/builder_premium/bp_global_Coarse_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Coarse -definition = builder_premium_small - -[metadata] -type = quality -quality_type = coarse -setting_version = 3 -weight = -1 -global_quality = True - -[values] -layer_height = 0.3 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_global_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_global_High_Quality.inst.cfg deleted file mode 100644 index 193202cd6f..0000000000 --- a/resources/quality/builder_premium/bp_global_High_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = High Quality -definition = builder_premium_small - -[metadata] -type = quality -quality_type = high -setting_version = 3 -weight = 1 -global_quality = True - -[values] -layer_height = 0.1 \ No newline at end of file diff --git a/resources/quality/builder_premium/bp_global_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_global_Normal_Quality.inst.cfg deleted file mode 100644 index 60aa0a150c..0000000000 --- a/resources/quality/builder_premium/bp_global_Normal_Quality.inst.cfg +++ /dev/null @@ -1,14 +0,0 @@ -[general] -version = 2 -name = Normal -definition = builder_premium_small - -[metadata] -type = quality -quality_type = normal -setting_version = 3 -weight = 0 -global_quality = True - -[values] -layer_height = 0.2 \ No newline at end of file From fb88dd6326ae91731bef2d4a75ca1f79c996c10a Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Fri, 27 Oct 2017 13:32:51 +0200 Subject: [PATCH 150/218] CURA-4492 Postponed signals are now emitted even if we need user interaction when changing quality profiles --- cura/Settings/MachineManager.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index bbeafc9a06..f85acc164d 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -897,16 +897,12 @@ class MachineManager(QObject): if self.hasUserSettings and Preferences.getInstance().getValue("cura/active_mode") == 1: # Show the keep/discard user settings dialog has_user_interaction = Application.getInstance().discardOrKeepProfileChanges() - else: - # If the user doesn't have any of adjusted settings then slicing will be triggered by emit() - # Send emits that are postponed in replaceContainer. - # Here the stacks are finished replacing and every value can be resolved based on the current state. - for setting_info in new_quality_settings_list: - setting_info["stack"].sendPostponedEmits() + # If there is no interaction with the user (it means the dialog showing "keep" or "discard" was not shown) + # because either there are not user changes or because the used already decided to always keep or discard, + # then the quality instance container is replaced, in which case, the activeQualityChanged signal is emitted. if not has_user_interaction: self._executeDelayedActiveContainerStackChanges() - self.activeQualityChanged.emit() ## Used to update material and variant in the active container stack with a delay. # This delay prevents the stack from triggering a lot of signals (eventually resulting in slicing) @@ -929,6 +925,7 @@ class MachineManager(QObject): for new_quality in self._new_quality_containers: new_quality["stack"].nameChanged.connect(self._onQualityNameChanged) + new_quality["stack"].sendPostponedEmits() # Send the signals that were postponed in _replaceQualityOrQualityChangesInStack self._new_quality_containers.clear() From 6c04a8be5d625db9434174872d124ec24ff59bef Mon Sep 17 00:00:00 2001 From: Mark Date: Fri, 27 Oct 2017 13:48:55 +0200 Subject: [PATCH 151/218] same font for checkbox label and some layout anchors --- .../qml/AskOpenAsProjectOrModelsDialog.qml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/resources/qml/AskOpenAsProjectOrModelsDialog.qml b/resources/qml/AskOpenAsProjectOrModelsDialog.qml index 450ec0ea26..de2ab29873 100644 --- a/resources/qml/AskOpenAsProjectOrModelsDialog.qml +++ b/resources/qml/AskOpenAsProjectOrModelsDialog.qml @@ -63,11 +63,11 @@ UM.Dialog anchors.fill: parent anchors.leftMargin: 20 * screenScaleFactor anchors.rightMargin: 20 * screenScaleFactor - anchors.bottomMargin: 20 * screenScaleFactor - spacing: 10 * screenScaleFactor + anchors.bottomMargin: 10 * screenScaleFactor Label { + id: questionText text: catalog.i18nc("@text:window", "This is a Cura project file. Would you like to open it as a project or import the models from it?") anchors.left: parent.left anchors.right: parent.right @@ -78,15 +78,28 @@ UM.Dialog CheckBox { id: rememberChoiceCheckBox - text: catalog.i18nc("@text:window", "Remember my choice") + anchors.bottom: buttonBar.top + anchors.bottomMargin: UM.Theme.getSize("default_margin").heigth checked: UM.Preferences.getValue("cura/choice_on_open_project") != "always_ask" } + Label + { + id: checkboxTextWithNiceRendering + anchors.left: rememberChoiceCheckBox.right + anchors.bottom: rememberChoiceCheckBox.bottom + font: UM.Theme.getFont("default") + text: catalog.i18nc("@text:window", "Remember my choice") + } + + // Buttons Item { + id: buttonBar anchors.right: parent.right anchors.left: parent.left + anchors.bottom: parent.bottom height: childrenRect.height Button From 334283e893192306ddf820e91dd83e5621a9a9eb Mon Sep 17 00:00:00 2001 From: Mark Date: Fri, 27 Oct 2017 14:12:35 +0200 Subject: [PATCH 152/218] Found some more margins that wouldnt be fixed numbers and made the code more consistent --- plugins/LayerView/LayerSliderLabel.qml | 4 ++-- .../UM3NetworkPrinting/ClusterControlItem.qml | 3 +-- .../UM3NetworkPrinting/DiscoverUM3Action.qml | 18 ++++++++---------- plugins/UM3NetworkPrinting/MonitorItem.qml | 8 ++++---- .../PrintCoreConfiguration.qml | 2 +- .../UM3NetworkPrinting/PrinterInfoBlock.qml | 12 ++++++------ .../UM3NetworkPrinting/PrinterVideoStream.qml | 2 +- resources/qml/JobSpecs.qml | 2 +- 8 files changed, 24 insertions(+), 27 deletions(-) diff --git a/plugins/LayerView/LayerSliderLabel.qml b/plugins/LayerView/LayerSliderLabel.qml index 892f1775ea..c989679285 100644 --- a/plugins/LayerView/LayerSliderLabel.qml +++ b/plugins/LayerView/LayerSliderLabel.qml @@ -48,7 +48,7 @@ UM.PointingRectangle { anchors { left: parent.left - leftMargin: UM.Theme.getSize("default_margin").width / 2 + leftMargin: Math.floor(UM.Theme.getSize("default_margin").width / 2) verticalCenter: parent.verticalCenter } @@ -90,7 +90,7 @@ UM.PointingRectangle { anchors { left: parent.right - leftMargin: UM.Theme.getSize("default_margin").width / 2 + leftMargin: Math.floor(UM.Theme.getSize("default_margin").width / 2) verticalCenter: parent.verticalCenter } diff --git a/plugins/UM3NetworkPrinting/ClusterControlItem.qml b/plugins/UM3NetworkPrinting/ClusterControlItem.qml index 194337cca0..8ba7156da8 100644 --- a/plugins/UM3NetworkPrinting/ClusterControlItem.qml +++ b/plugins/UM3NetworkPrinting/ClusterControlItem.qml @@ -83,8 +83,7 @@ Component anchors.leftMargin: UM.Theme.getSize("default_margin").width anchors.right: parent.right anchors.rightMargin: UM.Theme.getSize("default_margin").width - //TODO; It's probably nicer to do this with a dynamic data model instead of hardcoding this. - //But you know the drill; time constraints don't result in elegant code. + Item { width: parent.width diff --git a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml index b20d17a6d4..eb1bf786b0 100644 --- a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +++ b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml @@ -114,7 +114,7 @@ Cura.MachineAction Column { - width: (parent.width * 0.5) | 0 + width: Math.floor(parent.width * 0.5) spacing: UM.Theme.getSize("default_margin").height ScrollView @@ -191,8 +191,6 @@ Cura.MachineAction anchors.left: parent.left anchors.right: parent.right wrapMode: Text.WordWrap - //: Tips label - //TODO: get actual link from webteam text: catalog.i18nc("@label", "If your printer is not listed, read the network printing troubleshooting guide").arg("https://ultimaker.com/en/troubleshooting"); onLinkActivated: Qt.openUrlExternally(link) } @@ -200,7 +198,7 @@ Cura.MachineAction } Column { - width: (parent.width * 0.5) | 0 + width: Math.floor(parent.width * 0.5) visible: base.selectedPrinter ? true : false spacing: UM.Theme.getSize("default_margin").height Label @@ -218,13 +216,13 @@ Cura.MachineAction columns: 2 Label { - width: (parent.width * 0.5) | 0 + width: Math.floor(parent.width * 0.5) wrapMode: Text.WordWrap text: catalog.i18nc("@label", "Type") } Label { - width: (parent.width * 0.5) | 0 + width: Math.floor(parent.width * 0.5) wrapMode: Text.WordWrap text: { @@ -249,25 +247,25 @@ Cura.MachineAction } Label { - width: (parent.width * 0.5) | 0 + width: Math.floor(parent.width * 0.5) wrapMode: Text.WordWrap text: catalog.i18nc("@label", "Firmware version") } Label { - width: (parent.width * 0.5) | 0 + width: Math.floor(parent.width * 0.5) wrapMode: Text.WordWrap text: base.selectedPrinter ? base.selectedPrinter.firmwareVersion : "" } Label { - width: (parent.width * 0.5) | 0 + width: Math.floor(parent.width * 0.5) wrapMode: Text.WordWrap text: catalog.i18nc("@label", "Address") } Label { - width: (parent.width * 0.5) | 0 + width: Math.floor(parent.width * 0.5) wrapMode: Text.WordWrap text: base.selectedPrinter ? base.selectedPrinter.ipAddress : "" } diff --git a/plugins/UM3NetworkPrinting/MonitorItem.qml b/plugins/UM3NetworkPrinting/MonitorItem.qml index ffa2e8c85d..f69df41dd4 100644 --- a/plugins/UM3NetworkPrinting/MonitorItem.qml +++ b/plugins/UM3NetworkPrinting/MonitorItem.qml @@ -17,10 +17,10 @@ Component } return (sourceSize.width / sourceSize.height) > (maximumWidth / maximumHeight); } - property real _width: Math.min(maximumWidth, sourceSize.width) - property real _height: Math.min(maximumHeight, sourceSize.height) - width: proportionalHeight ? _width : sourceSize.width * _height / sourceSize.height - height: !proportionalHeight ? _height : sourceSize.height * _width / sourceSize.width + property real _width: Math.floor(Math.min(maximumWidth, sourceSize.width)) + property real _height: Math.floor(Math.min(maximumHeight, sourceSize.height)) + width: proportionalHeight ? _width : Math.floor(sourceSize.width * _height / sourceSize.height) + height: !proportionalHeight ? _height : Math.floor(sourceSize.height * _width / sourceSize.width) anchors.horizontalCenter: parent.horizontalCenter onVisibleChanged: diff --git a/plugins/UM3NetworkPrinting/PrintCoreConfiguration.qml b/plugins/UM3NetworkPrinting/PrintCoreConfiguration.qml index 624c02f735..03ff4542e1 100644 --- a/plugins/UM3NetworkPrinting/PrintCoreConfiguration.qml +++ b/plugins/UM3NetworkPrinting/PrintCoreConfiguration.qml @@ -10,7 +10,7 @@ Item id: extruderInfo property var printCoreConfiguration - width: parent.width / 2 + width: Math.floor(parent.width / 2) height: childrenRect.height Label { diff --git a/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml b/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml index 1ced5e8233..7ae8520d19 100644 --- a/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml +++ b/plugins/UM3NetworkPrinting/PrinterInfoBlock.qml @@ -86,7 +86,7 @@ Rectangle Rectangle { - width: parent.width / 3 + width: Math.floor(parent.width / 3) height: parent.height Label // Print job name @@ -131,7 +131,7 @@ Rectangle Rectangle { - width: parent.width / 3 * 2 + width: Math.floor(parent.width / 3 * 2) height: parent.height Label // Friendly machine name @@ -139,7 +139,7 @@ Rectangle id: printerNameLabel anchors.top: parent.top anchors.left: parent.left - width: parent.width / 2 - UM.Theme.getSize("default_margin").width - showCameraIcon.width + width: Math.floor(parent.width / 2 - UM.Theme.getSize("default_margin").width - showCameraIcon.width) text: printer.friendly_name font: UM.Theme.getFont("default_bold") elide: Text.ElideRight @@ -149,7 +149,7 @@ Rectangle { id: printerTypeLabel anchors.top: printerNameLabel.bottom - width: parent.width / 2 - UM.Theme.getSize("default_margin").width + width: Math.floor(parent.width / 2 - UM.Theme.getSize("default_margin").width) text: printer.machine_variant anchors.left: parent.left elide: Text.ElideRight @@ -183,7 +183,7 @@ Rectangle id: extruderInfo anchors.bottom: parent.bottom - width: parent.width / 2 - UM.Theme.getSize("default_margin").width + width: Math.floor(parent.width / 2 - UM.Theme.getSize("default_margin").width) height: childrenRect.height spacing: UM.Theme.getSize("default_margin").width @@ -217,7 +217,7 @@ Rectangle anchors.right: parent.right anchors.top: parent.top height: showExtended ? parent.height: printProgressTitleBar.height - width: parent.width / 2 - UM.Theme.getSize("default_margin").width + width: Math.floor(parent.width / 2 - UM.Theme.getSize("default_margin").width) border.width: UM.Theme.getSize("default_lining").width border.color: lineColor radius: cornerRadius diff --git a/plugins/UM3NetworkPrinting/PrinterVideoStream.qml b/plugins/UM3NetworkPrinting/PrinterVideoStream.qml index fe60d30dd4..6793d74ac5 100644 --- a/plugins/UM3NetworkPrinting/PrinterVideoStream.qml +++ b/plugins/UM3NetworkPrinting/PrinterVideoStream.qml @@ -57,7 +57,7 @@ Item { id: cameraImage width: Math.min(sourceSize.width === 0 ? 800 * screenScaleFactor : sourceSize.width, maximumWidth) - height: (sourceSize.height === 0 ? 600 * screenScaleFactor : sourceSize.height) * width / sourceSize.width + height: Math.floor((sourceSize.height === 0 ? 600 * screenScaleFactor : sourceSize.height) * width / sourceSize.width) anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter z: 1 diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index 308316d3e9..426d9dd916 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -95,7 +95,7 @@ Item { { id: printJobTextfield anchors.right: printJobPencilIcon.left - anchors.rightMargin: UM.Theme.getSize("default_margin").width/2 + anchors.rightMargin: Math.floor(UM.Theme.getSize("default_margin").width/2) height: UM.Theme.getSize("jobspecs_line").height width: Math.max(__contentWidth + UM.Theme.getSize("default_margin").width, 50) maximumLength: 120 From 5db0fc7785ed731ca724efff5a3c35933935b93f Mon Sep 17 00:00:00 2001 From: Mark Date: Sat, 28 Oct 2017 15:43:01 +0200 Subject: [PATCH 153/218] Add useragreement screen on first run of Cura CURA-4501 --- cura/CuraApplication.py | 1 + plugins/UserAgreementPlugin/UserAgreement.py | 50 +++++++++++++++ plugins/UserAgreementPlugin/UserAgreement.qml | 61 +++++++++++++++++++ plugins/UserAgreementPlugin/__init__.py | 10 +++ plugins/UserAgreementPlugin/plugin.json | 8 +++ 5 files changed, 130 insertions(+) create mode 100644 plugins/UserAgreementPlugin/UserAgreement.py create mode 100644 plugins/UserAgreementPlugin/UserAgreement.qml create mode 100644 plugins/UserAgreementPlugin/__init__.py create mode 100644 plugins/UserAgreementPlugin/plugin.json diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 2d1c35aca7..09dfe430d9 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -215,6 +215,7 @@ class CuraApplication(QtApplication): self.setRequiredPlugins([ "CuraEngineBackend", + "UserAgreement", "SolidView", "LayerView", "STLReader", diff --git a/plugins/UserAgreementPlugin/UserAgreement.py b/plugins/UserAgreementPlugin/UserAgreement.py new file mode 100644 index 0000000000..148b1adecc --- /dev/null +++ b/plugins/UserAgreementPlugin/UserAgreement.py @@ -0,0 +1,50 @@ +# Copyright (c) 2015 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from UM.Extension import Extension +from UM.Preferences import Preferences +from UM.Application import Application +from UM.PluginRegistry import PluginRegistry +from UM.Logger import Logger + +from PyQt5.QtQml import QQmlComponent, QQmlContext +from PyQt5.QtCore import QUrl, QObject, pyqtSlot + +import os.path + +class UserAgreement(Extension, QObject): + def __init__(self, parent = None): + QObject.__init__(self, parent) + Extension.__init__(self) + self._user_agreement_window = None + self._user_agreement_context = None + Application.getInstance().engineCreatedSignal.connect(self._onEngineCreated) + Preferences.getInstance().addPreference("general/accepted_user_agreement", False) + + def _onEngineCreated(self): + if not Preferences.getInstance().getValue("general/accepted_user_agreement"): + self.showUserAgreement() + + def showUserAgreement(self): + if not self._user_agreement_window: + self.createUserAgreementWindow() + + self._user_agreement_window.show() + + @pyqtSlot() + def disagreed(self): + Logger.log("i", "User did NOT Accept the license") + + @pyqtSlot() + def agreed(self): + Logger.log("i", "User Accepted the license") + Preferences.getInstance().setValue("general/accepted_user_agreement", True) + self._user_agreement_window.hide() + + def createUserAgreementWindow(self): + path = QUrl.fromLocalFile(os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), "UserAgreement.qml")) + + component = QQmlComponent(Application.getInstance()._engine, path) + self._user_agreement_context = QQmlContext(Application.getInstance()._engine.rootContext()) + self._user_agreement_context.setContextProperty("manager", self) + self._user_agreement_window = component.create(self._user_agreement_context) diff --git a/plugins/UserAgreementPlugin/UserAgreement.qml b/plugins/UserAgreementPlugin/UserAgreement.qml new file mode 100644 index 0000000000..20b4350acf --- /dev/null +++ b/plugins/UserAgreementPlugin/UserAgreement.qml @@ -0,0 +1,61 @@ +// Copyright (c) 2015 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.1 +import QtQuick.Controls 1.3 +import QtQuick.Layouts 1.1 +import QtQuick.Window 2.1 + +import UM 1.1 as UM + +UM.Dialog +{ + id: baseDialog + minimumWidth: Math.floor(UM.Theme.getSize("modal_window_minimum").width * 0.75) + minimumHeight: Math.floor(UM.Theme.getSize("modal_window_minimum").height * 0.5) + width: minimumWidth + height: minimumHeight + title: "User Agreement" + + TextArea + { + anchors.top: parent.top + width: parent.width + anchors.bottom: buttonRow.top + text: '

DISCLAIMER BY ULTIMAKER

+

PLEASE READ THIS DISCLAIMER CAREFULLY.

+

EXCEPT WHEN OTHERWISE STATED IN WRITING, ULTIMAKER PROVIDES ANY ULTIMAKER SOFTWARE OR THIRD PARTY SOFTWARE “AS IS” WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF ULTIMAKER SOFTWARE IS WITH YOU.

+

UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, IN NO EVENT WILL ULTIMAKER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE ANY ULTIMAKER SOFTWARE OR THIRD PARTY SOFTWARE.

+ ' + readOnly: true; + textFormat: TextEdit.RichText + } + + Item + { + id: buttonRow + anchors.bottom: parent.bottom + width: parent.width + anchors.bottomMargin: UM.Theme.getSize("default_margin").height + + Button + { + anchors.right: parent.right + text: "I understand and agree" + onClicked: { + manager.agreed + } + } + + Button + { + anchors.left: parent.left + text: "I don't agree" + onClicked: { + manager.disagreed + } + } + + } + +} diff --git a/plugins/UserAgreementPlugin/__init__.py b/plugins/UserAgreementPlugin/__init__.py new file mode 100644 index 0000000000..635f8a6bc9 --- /dev/null +++ b/plugins/UserAgreementPlugin/__init__.py @@ -0,0 +1,10 @@ +# Copyright (c) 2015 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from . import UserAgreement + +def getMetaData(): + return {} + +def register(app): + return {"extension": UserAgreement.UserAgreement()} diff --git a/plugins/UserAgreementPlugin/plugin.json b/plugins/UserAgreementPlugin/plugin.json new file mode 100644 index 0000000000..aa5dbb1258 --- /dev/null +++ b/plugins/UserAgreementPlugin/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "UserAgreement", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Ask the user once if he/she agrees with our license", + "api": 4, + "i18n-catalog": "cura" +} From 910386eaf77b6936c3c2fce9f5682e9243db69cc Mon Sep 17 00:00:00 2001 From: Mark Date: Sat, 28 Oct 2017 15:43:26 +0200 Subject: [PATCH 154/218] remove unused import --- plugins/ChangeLogPlugin/ChangeLog.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/ChangeLogPlugin/ChangeLog.py b/plugins/ChangeLogPlugin/ChangeLog.py index 8d1e54f40c..a80779da50 100644 --- a/plugins/ChangeLogPlugin/ChangeLog.py +++ b/plugins/ChangeLogPlugin/ChangeLog.py @@ -8,7 +8,6 @@ from UM.Application import Application from UM.PluginRegistry import PluginRegistry from UM.Version import Version -from PyQt5.QtQuick import QQuickView from PyQt5.QtQml import QQmlComponent, QQmlContext from PyQt5.QtCore import QUrl, pyqtSlot, QObject From 8bfd10f9aad877d157b6e98654a1b64379c5d12d Mon Sep 17 00:00:00 2001 From: Mark Date: Sat, 28 Oct 2017 20:29:26 +0200 Subject: [PATCH 155/218] Refactor and cleanup CURA-4501 --- plugins/UserAgreementPlugin/UserAgreement.py | 22 +++++++++++-------- plugins/UserAgreementPlugin/UserAgreement.qml | 15 ++++++++----- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/plugins/UserAgreementPlugin/UserAgreement.py b/plugins/UserAgreementPlugin/UserAgreement.py index 148b1adecc..c565399735 100644 --- a/plugins/UserAgreementPlugin/UserAgreement.py +++ b/plugins/UserAgreementPlugin/UserAgreement.py @@ -7,6 +7,8 @@ from UM.Application import Application from UM.PluginRegistry import PluginRegistry from UM.Logger import Logger +from cura.CuraApplication import CuraApplication + from PyQt5.QtQml import QQmlComponent, QQmlContext from PyQt5.QtCore import QUrl, QObject, pyqtSlot @@ -31,15 +33,17 @@ class UserAgreement(Extension, QObject): self._user_agreement_window.show() - @pyqtSlot() - def disagreed(self): - Logger.log("i", "User did NOT Accept the license") + @pyqtSlot(bool) + def didAgree(self, userChoice): + if userChoice: + Logger.log("i", 'User agreed to the user agreement') + Preferences.getInstance().setValue("general/accepted_user_agreement", True) + self._user_agreement_window.hide() + else: + Logger.log("i", 'User did NOT agree to the user agreement') + Preferences.getInstance().setValue("general/accepted_user_agreement", False) + CuraApplication.getInstance().quit() - @pyqtSlot() - def agreed(self): - Logger.log("i", "User Accepted the license") - Preferences.getInstance().setValue("general/accepted_user_agreement", True) - self._user_agreement_window.hide() def createUserAgreementWindow(self): path = QUrl.fromLocalFile(os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), "UserAgreement.qml")) @@ -47,4 +51,4 @@ class UserAgreement(Extension, QObject): component = QQmlComponent(Application.getInstance()._engine, path) self._user_agreement_context = QQmlContext(Application.getInstance()._engine.rootContext()) self._user_agreement_context.setContextProperty("manager", self) - self._user_agreement_window = component.create(self._user_agreement_context) + self._user_agreement_window = component.create(self._user_agreement_context) \ No newline at end of file diff --git a/plugins/UserAgreementPlugin/UserAgreement.qml b/plugins/UserAgreementPlugin/UserAgreement.qml index 20b4350acf..a2dd34e23f 100644 --- a/plugins/UserAgreementPlugin/UserAgreement.qml +++ b/plugins/UserAgreementPlugin/UserAgreement.qml @@ -1,12 +1,10 @@ // Copyright (c) 2015 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.1 +import QtQuick 2.2 import QtQuick.Controls 1.3 -import QtQuick.Layouts 1.1 -import QtQuick.Window 2.1 -import UM 1.1 as UM +import UM 1.3 as UM UM.Dialog { @@ -43,7 +41,7 @@ UM.Dialog anchors.right: parent.right text: "I understand and agree" onClicked: { - manager.agreed + manager.didAgree(true) } } @@ -52,10 +50,15 @@ UM.Dialog anchors.left: parent.left text: "I don't agree" onClicked: { - manager.disagreed + manager.didAgree(false) } } } + onClosing: { + manager.didAgree(false) + } + + } From 0bdc1aad006a10cc764a9bd10e160e422b5f6c83 Mon Sep 17 00:00:00 2001 From: Mark Date: Sun, 29 Oct 2017 09:04:23 +0100 Subject: [PATCH 156/218] Fixed code comments CURA-4501 --- plugins/UserAgreementPlugin/UserAgreement.py | 11 +++++------ plugins/UserAgreementPlugin/UserAgreement.qml | 14 +++++++------- plugins/UserAgreementPlugin/__init__.py | 2 +- resources/i18n/cura.pot | 15 +++++++++++++++ 4 files changed, 28 insertions(+), 14 deletions(-) diff --git a/plugins/UserAgreementPlugin/UserAgreement.py b/plugins/UserAgreementPlugin/UserAgreement.py index c565399735..5b6b266444 100644 --- a/plugins/UserAgreementPlugin/UserAgreement.py +++ b/plugins/UserAgreementPlugin/UserAgreement.py @@ -1,4 +1,4 @@ -# Copyright (c) 2015 Ultimaker B.V. +# Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from UM.Extension import Extension @@ -14,10 +14,9 @@ from PyQt5.QtCore import QUrl, QObject, pyqtSlot import os.path -class UserAgreement(Extension, QObject): +class UserAgreement(QObject, Extension): def __init__(self, parent = None): - QObject.__init__(self, parent) - Extension.__init__(self) + super(UserAgreement, self).__init__() self._user_agreement_window = None self._user_agreement_context = None Application.getInstance().engineCreatedSignal.connect(self._onEngineCreated) @@ -36,11 +35,11 @@ class UserAgreement(Extension, QObject): @pyqtSlot(bool) def didAgree(self, userChoice): if userChoice: - Logger.log("i", 'User agreed to the user agreement') + Logger.log('i', 'User agreed to the user agreement') Preferences.getInstance().setValue("general/accepted_user_agreement", True) self._user_agreement_window.hide() else: - Logger.log("i", 'User did NOT agree to the user agreement') + Logger.log('i', 'User did NOT agree to the user agreement') Preferences.getInstance().setValue("general/accepted_user_agreement", False) CuraApplication.getInstance().quit() diff --git a/plugins/UserAgreementPlugin/UserAgreement.qml b/plugins/UserAgreementPlugin/UserAgreement.qml index a2dd34e23f..52d35a4f44 100644 --- a/plugins/UserAgreementPlugin/UserAgreement.qml +++ b/plugins/UserAgreementPlugin/UserAgreement.qml @@ -1,8 +1,8 @@ -// Copyright (c) 2015 Ultimaker B.V. +// Copyright (c) 2017 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 -import QtQuick.Controls 1.3 +import QtQuick.Controls 1.4 import UM 1.3 as UM @@ -13,7 +13,7 @@ UM.Dialog minimumHeight: Math.floor(UM.Theme.getSize("modal_window_minimum").height * 0.5) width: minimumWidth height: minimumHeight - title: "User Agreement" + title: catalog.i18nc("@title:window", "User Agreement") TextArea { @@ -36,10 +36,12 @@ UM.Dialog width: parent.width anchors.bottomMargin: UM.Theme.getSize("default_margin").height + UM.I18nCatalog { id: catalog; name:"cura" } + Button { anchors.right: parent.right - text: "I understand and agree" + text: catalog.i18nc("@action:button", "I understand and agree") onClicked: { manager.didAgree(true) } @@ -48,7 +50,7 @@ UM.Dialog Button { anchors.left: parent.left - text: "I don't agree" + text: catalog.i18nc("@action:button", "I don't agree") onClicked: { manager.didAgree(false) } @@ -59,6 +61,4 @@ UM.Dialog onClosing: { manager.didAgree(false) } - - } diff --git a/plugins/UserAgreementPlugin/__init__.py b/plugins/UserAgreementPlugin/__init__.py index 635f8a6bc9..88cb151f9e 100644 --- a/plugins/UserAgreementPlugin/__init__.py +++ b/plugins/UserAgreementPlugin/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2015 Ultimaker B.V. +# Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from . import UserAgreement diff --git a/resources/i18n/cura.pot b/resources/i18n/cura.pot index fb4b9ed0d6..99ccd7a459 100644 --- a/resources/i18n/cura.pot +++ b/resources/i18n/cura.pot @@ -18,6 +18,21 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" +#Manually added for plugins/UserAgreementPlugin/UserAgreement.qml +msgctxt "@title:window" +msgid "User Agreement" +msgstr "" + +#Manually added for plugins/UserAgreementPlugin/UserAgreement.qml +msgctxt "@action:button" +msgid "I understand and agree" +msgstr "" + +#Manually added for plugins/UserAgreementPlugin/UserAgreement.qml +msgctxt "@action:button" +msgid "I don't agree" +msgstr "" + #: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml msgctxt "@label:status" msgid "Print aborted" From 177295999b3e81e116442d0cc17eea8a76046a38 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sun, 29 Oct 2017 09:19:50 +0100 Subject: [PATCH 157/218] Allow richer markup in tooltips --- resources/qml/SidebarTooltip.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/SidebarTooltip.qml b/resources/qml/SidebarTooltip.qml index 60d01dd6f6..07b95777b5 100644 --- a/resources/qml/SidebarTooltip.qml +++ b/resources/qml/SidebarTooltip.qml @@ -54,6 +54,7 @@ UM.PointingRectangle { rightMargin: UM.Theme.getSize("tooltip_margins").width; } wrapMode: Text.Wrap; + textFormat: Text.RichText font: UM.Theme.getFont("default"); color: UM.Theme.getColor("tooltip_text"); } From 208d365d51b61b077a0f6a627ddca91f524a5707 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sun, 29 Oct 2017 09:20:59 +0100 Subject: [PATCH 158/218] Make sure saveRow does not extend sidebar --- resources/qml/SaveButton.qml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/resources/qml/SaveButton.qml b/resources/qml/SaveButton.qml index acc97ebf11..63c44a6720 100644 --- a/resources/qml/SaveButton.qml +++ b/resources/qml/SaveButton.qml @@ -18,6 +18,8 @@ Item { property var backend: CuraApplication.getBackend(); property bool activity: CuraApplication.platformActivity; + property alias buttonRowWidth: saveRow.width + property string fileBaseName property string statusText: { @@ -89,11 +91,12 @@ Item { Item { id: saveRow - width: base.width + width: Math.min(childrenRect.width + UM.Theme.getSize("sidebar_margin").width, base.width - UM.Theme.getSize("sidebar_margin").width) height: saveToButton.height anchors.bottom: parent.bottom anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height - anchors.left: parent.left + anchors.right: parent.right + clip: true Row { id: additionalComponentsRow From 6a0ba435084d9b5a2007183828fae1c70dfdf07f Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sun, 29 Oct 2017 10:07:42 +0100 Subject: [PATCH 159/218] Make sure monitor buttons do not extend sidebar --- resources/qml/MonitorButton.qml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 29b00f50e6..7a620c42ea 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -185,17 +185,20 @@ Item anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width; } - Row { + Item { id: buttonsRow height: abortButton.height + width: Math.min(childrenRect.width, base.width - 2 * UM.Theme.getSize("sidebar_margin").width) anchors.top: progressBar.bottom anchors.topMargin: UM.Theme.getSize("sidebar_margin").height anchors.right: parent.right anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width - spacing: UM.Theme.getSize("default_margin").width + clip: true Row { id: additionalComponentsRow + anchors.right: pauseResumeButton.left + anchors.rightMargin: UM.Theme.getSize("default_margin").width spacing: UM.Theme.getSize("default_margin").width } @@ -215,6 +218,8 @@ Item { id: pauseResumeButton + anchors.right: abortButton.left + anchors.rightMargin: UM.Theme.getSize("default_margin").width height: UM.Theme.getSize("save_button_save_to_button").height property bool userClicked: false @@ -261,6 +266,8 @@ Item { id: abortButton + anchors.right: parent.right + visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].canAbort enabled: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands && (["paused", "printing", "pre_print"].indexOf(Cura.MachineManager.printerOutputDevices[0].jobState) >= 0) From 03724755604a31f2adc6e9293645ea9586bbe149 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sun, 29 Oct 2017 10:09:52 +0100 Subject: [PATCH 160/218] Rearrange print specs area * remove superfluous "Print time" label * format print time tooltip * add elide to cost spec * add (empty) cost spec tooltip --- resources/qml/Sidebar.qml | 64 +++++++++++++++++++++++++++------------ 1 file changed, 45 insertions(+), 19 deletions(-) diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 403c18a4ff..ed6b07cc4e 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -313,31 +313,32 @@ Rectangle anchors.bottomMargin: Math.floor(UM.Theme.getSize("sidebar_margin").height * 2 + UM.Theme.getSize("progressbar").height + UM.Theme.getFont("default_bold").pixelSize) } - Rectangle + Item { id: printSpecs anchors.left: parent.left anchors.bottom: parent.bottom anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height - height: timeDetails.height + timeSpecDescription.height + lengthSpec.height + height: timeDetails.height + costSpec.height + width: base.width - (saveButton.buttonRowWidth + UM.Theme.getSize("sidebar_margin").width) visible: !monitoringPrint + clip: true Label { id: timeDetails anchors.left: parent.left - anchors.bottom: timeSpecDescription.top + anchors.bottom: costSpec.top font: UM.Theme.getFont("large") color: UM.Theme.getColor("text_subtext") text: (!base.printDuration || !base.printDuration.valid) ? catalog.i18nc("@label Hours and minutes", "00h 00min") : base.printDuration.getDisplayString(UM.DurationFormat.Short) MouseArea { - id: infillMouseArea + id: timeDetailsMouseArea anchors.fill: parent hoverEnabled: true - //enabled: base.settingsEnabled onEntered: { @@ -345,19 +346,24 @@ Rectangle if(base.printDuration.valid && !base.printDuration.isTotalDurationZero) { // All the time information for the different features is achieved - var print_time = PrintInformation.getFeaturePrintTimes() + var print_time = PrintInformation.getFeaturePrintTimes(); + var total_seconds = parseInt(base.printDuration.getDisplayString(UM.DurationFormat.Seconds)) // A message is created and displayed when the user hover the time label - var content = catalog.i18nc("@tooltip", "Time information") + var content = catalog.i18nc("@tooltip", "Time specification
"); for(var feature in print_time) { if(!print_time[feature].isTotalDurationZero) { - content += "
" + feature + ": " + print_time[feature].getDisplayString(UM.DurationFormat.Short) + content += ""; } } + content += "
" + feature + + "  " + print_time[feature].getDisplayString(UM.DurationFormat.Short) + + "  " + Math.round(100 * parseInt(print_time[feature].getDisplayString(UM.DurationFormat.Seconds)) / total_seconds) + "%" + + "
"; - base.showTooltip(parent, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), content) + base.showTooltip(parent, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), content); } } onExited: @@ -369,20 +375,13 @@ Rectangle Label { - id: timeSpecDescription - anchors.left: parent.left - anchors.bottom: lengthSpec.top - font: UM.Theme.getFont("very_small") - color: UM.Theme.getColor("text_subtext") - text: catalog.i18nc("@description", "Print time") - } - Label - { - id: lengthSpec + id: costSpec anchors.left: parent.left anchors.bottom: parent.bottom font: UM.Theme.getFont("very_small") color: UM.Theme.getColor("text_subtext") + elide: Text.ElideMiddle + width: parent.width text: { var lengths = []; @@ -421,6 +420,33 @@ Rectangle return catalog.i18nc("@label Print estimates: m for meters, g for grams", "%1m / ~ %2g").arg(lengths.join(" + ")).arg(weights.join(" + ")); } } + MouseArea + { + id: costSpecMouseArea + anchors.fill: parent + hoverEnabled: true + + onEntered: + { + + if(base.printDuration.valid && !base.printDuration.isTotalDurationZero) + { + // All the time information for the different features is achieved + var print_time = PrintInformation.getFeaturePrintTimes(); + var total_seconds = parseInt(base.printDuration.getDisplayString(UM.DurationFormat.Seconds)) + + // A message is created and displayed when the user hover the time label + var content = catalog.i18nc("@tooltip", "Cost specification
"); + content += "
"; + + base.showTooltip(parent, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), content); + } + } + onExited: + { + base.hideTooltip(); + } + } } } From 6d4ea381f0b9420b2ae89805915a985b743eb4c9 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Sun, 29 Oct 2017 11:44:36 +0100 Subject: [PATCH 161/218] Create cost specification tooltip --- resources/qml/Sidebar.qml | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index ed6b07cc4e..582fb346c5 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -355,7 +355,7 @@ Rectangle { if(!print_time[feature].isTotalDurationZero) { - content += "" + feature + + content += "" + feature + ":" + "  " + print_time[feature].getDisplayString(UM.DurationFormat.Short) + "  " + Math.round(100 * parseInt(print_time[feature].getDisplayString(UM.DurationFormat.Seconds)) / total_seconds) + "%" + ""; @@ -382,12 +382,16 @@ Rectangle color: UM.Theme.getColor("text_subtext") elide: Text.ElideMiddle width: parent.width + property string tooltipText: "test" text: { var lengths = []; + var total_length = 0; var weights = []; + var total_weight = 0; var costs = []; - var someCostsKnown = false; + var total_cost = 0; + var some_costs_known = false; if(base.printMaterialLengths) { for(var index = 0; index < base.printMaterialLengths.length; index++) { @@ -399,8 +403,12 @@ Rectangle costs.push(cost); if(cost > 0) { - someCostsKnown = true; + some_costs_known = true; } + + total_length += base.printMaterialLengths[index]; + total_weight += base.printMaterialWeights[index]; + total_cost += base.printMaterialCosts[index]; } } } @@ -410,10 +418,21 @@ Rectangle weights = ["0"]; costs = ["0.00"]; } - if(someCostsKnown) + + tooltipText = catalog.i18nc("@tooltip", "Cost specification
"); + for(var index = 0; index < lengths.length; index++) + { + tooltipText += catalog.i18nc("@label Print estimates: m for meters, g for grams, %4 is currency and %3 is print cost", "").arg(index + 1).arg(lengths[index]) + .arg(weights[index]).arg(costs[index]).arg(UM.Preferences.getValue("cura/currency")); + } + tooltipText += catalog.i18nc("@label Print totals: m for meters, g for grams, %4 is currency and %3 is print cost", "").arg(total_length.toFixed(2)) + .arg(Math.round(total_weight)).arg(total_cost.toFixed(2)).arg(UM.Preferences.getValue("cura/currency")); + tooltipText += "
Extruder %0:  %1m  %2g  %4 %3
Total:  %1m  %2g  %4 %3
"; + + if(some_costs_known) { return catalog.i18nc("@label Print estimates: m for meters, g for grams, %4 is currency and %3 is print cost", "%1m / ~ %2g / ~ %4 %3").arg(lengths.join(" + ")) - .arg(weights.join(" + ")).arg(costs.join(" + ")).arg(UM.Preferences.getValue("cura/currency")); + .arg(Math.round(total_weight)).arg(total_cost.toFixed(2)).arg(UM.Preferences.getValue("cura/currency")); } else { @@ -431,15 +450,7 @@ Rectangle if(base.printDuration.valid && !base.printDuration.isTotalDurationZero) { - // All the time information for the different features is achieved - var print_time = PrintInformation.getFeaturePrintTimes(); - var total_seconds = parseInt(base.printDuration.getDisplayString(UM.DurationFormat.Seconds)) - - // A message is created and displayed when the user hover the time label - var content = catalog.i18nc("@tooltip", "Cost specification
"); - content += "
"; - - base.showTooltip(parent, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), content); + base.showTooltip(parent, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), costSpec.tooltipText); } } onExited: From 85f7b1ac03786cd86838ac7020f15ce4ccdb00c5 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 30 Oct 2017 10:32:45 +0100 Subject: [PATCH 162/218] Fix code style CURA-4501 --- plugins/UserAgreementPlugin/UserAgreement.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/UserAgreementPlugin/UserAgreement.py b/plugins/UserAgreementPlugin/UserAgreement.py index 5b6b266444..cfad13dfae 100644 --- a/plugins/UserAgreementPlugin/UserAgreement.py +++ b/plugins/UserAgreementPlugin/UserAgreement.py @@ -35,11 +35,11 @@ class UserAgreement(QObject, Extension): @pyqtSlot(bool) def didAgree(self, userChoice): if userChoice: - Logger.log('i', 'User agreed to the user agreement') + Logger.log("i", "User agreed to the user agreement") Preferences.getInstance().setValue("general/accepted_user_agreement", True) self._user_agreement_window.hide() else: - Logger.log('i', 'User did NOT agree to the user agreement') + Logger.log("i", "User did NOT agree to the user agreement") Preferences.getInstance().setValue("general/accepted_user_agreement", False) CuraApplication.getInstance().quit() From c0f1af94ab6486def6030e7169f2948a0dda8312 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 30 Oct 2017 10:33:49 +0100 Subject: [PATCH 163/218] Show Add Machine dialog after User Agreement dialog is closed CURA-4501 --- cura/CuraApplication.py | 19 +++++++++++++++++++ plugins/UserAgreementPlugin/UserAgreement.py | 4 ++-- resources/qml/Cura.qml | 5 +++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 09dfe430d9..9da820c8a2 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -305,6 +305,9 @@ class CuraApplication(QtApplication): preferences.addPreference("view/invert_zoom", False) + self._need_to_show_user_agreement = not Preferences.getInstance().getValue("general/accepted_user_agreement") + self._has_user_agreement_shown = False + for key in [ "dialog_load_path", # dialog_save_path is in LocalFileOutputDevicePlugin "dialog_profile_path", @@ -377,6 +380,22 @@ class CuraApplication(QtApplication): def _onEngineCreated(self): self._engine.addImageProvider("camera", CameraImageProvider.CameraImageProvider()) + onHasUserAgreementShownChanged = pyqtSignal() + + @pyqtProperty(bool) + def needToShowUserAgreement(self): + return self._need_to_show_user_agreement + + @pyqtProperty(bool, notify = onHasUserAgreementShownChanged) + def hasUserAgreementShown(self): + return self._has_user_agreement_shown + + def setHasShownUserAgreement(self, shown = True): + emit_signal = self._has_user_agreement_shown != shown + self._has_user_agreement_shown = shown + if emit_signal: + self.onHasUserAgreementShownChanged.emit() + ## The "Quit" button click event handler. @pyqtSlot() def closeApplication(self): diff --git a/plugins/UserAgreementPlugin/UserAgreement.py b/plugins/UserAgreementPlugin/UserAgreement.py index cfad13dfae..01788f7b57 100644 --- a/plugins/UserAgreementPlugin/UserAgreement.py +++ b/plugins/UserAgreementPlugin/UserAgreement.py @@ -42,7 +42,7 @@ class UserAgreement(QObject, Extension): Logger.log("i", "User did NOT agree to the user agreement") Preferences.getInstance().setValue("general/accepted_user_agreement", False) CuraApplication.getInstance().quit() - + CuraApplication.getInstance().setHasShownUserAgreement(True) def createUserAgreementWindow(self): path = QUrl.fromLocalFile(os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), "UserAgreement.qml")) @@ -50,4 +50,4 @@ class UserAgreement(QObject, Extension): component = QQmlComponent(Application.getInstance()._engine, path) self._user_agreement_context = QQmlContext(Application.getInstance()._engine.rootContext()) self._user_agreement_context.setContextProperty("manager", self) - self._user_agreement_window = component.create(self._user_agreement_context) \ No newline at end of file + self._user_agreement_window = component.create(self._user_agreement_context) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index cb0211f29f..8439d79d21 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -894,6 +894,11 @@ UM.MainWindow if(!base.visible) { base.visible = true; + } + + // check later if the user agreement dialog has been closed + if (CuraApplication.needToShowUserAgreement && !CuraApplication.hasUserAgreementShown) + { restart(); } else if(Cura.MachineManager.activeMachineId == null || Cura.MachineManager.activeMachineId == "") From 84002a70d0462ff44d98b90fd9144b98a2e7e8f1 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 30 Oct 2017 11:50:57 +0100 Subject: [PATCH 164/218] Remove binding loop by cleaning up tooltipText creation --- resources/qml/Sidebar.qml | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 582fb346c5..14179d388d 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -382,7 +382,7 @@ Rectangle color: UM.Theme.getColor("text_subtext") elide: Text.ElideMiddle width: parent.width - property string tooltipText: "test" + property string tooltipText text: { var lengths = []; @@ -419,15 +419,32 @@ Rectangle costs = ["0.00"]; } - tooltipText = catalog.i18nc("@tooltip", "Cost specification
"); + var tooltip_html = "%1
".arg(catalog.i18nc("@label", "Cost specification")); for(var index = 0; index < lengths.length; index++) { - tooltipText += catalog.i18nc("@label Print estimates: m for meters, g for grams, %4 is currency and %3 is print cost", "").arg(index + 1).arg(lengths[index]) - .arg(weights[index]).arg(costs[index]).arg(UM.Preferences.getValue("cura/currency")); + var item_strings = [ + catalog.i18nc("@label", "Extruder %1:").arg(index + 1), + catalog.i18nc("@label m for meter", "%1m").arg(lengths[index]), + catalog.i18nc("@label g for grams", "%1g").arg(weights[index]), + "%1 %2".arg(UM.Preferences.getValue("cura/currency")).arg(costs[index]), + ]; + tooltip_html += ""; + for(var item = 0; item < item_strings.length; item++) { + tooltip_html += "".arg(item_strings[item]); + } } - tooltipText += catalog.i18nc("@label Print totals: m for meters, g for grams, %4 is currency and %3 is print cost", "").arg(total_length.toFixed(2)) - .arg(Math.round(total_weight)).arg(total_cost.toFixed(2)).arg(UM.Preferences.getValue("cura/currency")); - tooltipText += "
Extruder %0:  %1m  %2g  %4 %3
%1  
Total:  %1m  %2g  %4 %3
"; + var item_strings = [ + catalog.i18nc("@label", "Total:"), + catalog.i18nc("@label m for meter", "%1m").arg(total_length.toFixed(2)), + catalog.i18nc("@label g for grams", "%1g").arg(Math.round(total_weight)), + "%1 %2".arg(UM.Preferences.getValue("cura/currency")).arg(total_cost.toFixed(2)), + ]; + tooltip_html += ""; + for(var item = 0; item < item_strings.length; item++) { + tooltip_html += "%1  ".arg(item_strings[item]); + } + tooltip_html += ""; + tooltipText = tooltip_html; if(some_costs_known) { From 6fa4dd0a977634f5693c759ea87ae8411399c629 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 30 Oct 2017 12:26:02 +0100 Subject: [PATCH 165/218] Fix qml binding loops --- resources/qml/MonitorButton.qml | 6 +++++- resources/qml/SaveButton.qml | 16 ++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 7a620c42ea..67ca2e708e 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -188,7 +188,11 @@ Item Item { id: buttonsRow height: abortButton.height - width: Math.min(childrenRect.width, base.width - 2 * UM.Theme.getSize("sidebar_margin").width) + width: { + // using childrenRect.width directly causes a binding loop, because setting the width affects the childrenRect + var children_width = additionalComponentsRow.width + pauseResumeButton.width + abortButton.width + 3 * UM.Theme.getSize("default_margin").width; + return Math.min(children_width, base.width - 2 * UM.Theme.getSize("sidebar_margin").width); + } anchors.top: progressBar.bottom anchors.topMargin: UM.Theme.getSize("sidebar_margin").height anchors.right: parent.right diff --git a/resources/qml/SaveButton.qml b/resources/qml/SaveButton.qml index 63c44a6720..e2890a6b49 100644 --- a/resources/qml/SaveButton.qml +++ b/resources/qml/SaveButton.qml @@ -91,7 +91,19 @@ Item { Item { id: saveRow - width: Math.min(childrenRect.width + UM.Theme.getSize("sidebar_margin").width, base.width - UM.Theme.getSize("sidebar_margin").width) + width: { + // using childrenRect.width directly causes a binding loop, because setting the width affects the childrenRect + var children_width = UM.Theme.getSize("default_margin").width; + for (var index in children) + { + var child = children[index]; + if(child.visible) + { + children_width += child.width + child.anchors.rightMargin; + } + } + return Math.min(children_width, base.width - UM.Theme.getSize("sidebar_margin").width); + } height: saveToButton.height anchors.bottom: parent.bottom anchors.bottomMargin: UM.Theme.getSize("sidebar_margin").height @@ -102,7 +114,7 @@ Item { id: additionalComponentsRow anchors.top: parent.top anchors.right: saveToButton.visible ? saveToButton.left : parent.right - anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width + anchors.rightMargin: UM.Theme.getSize("default_margin").width spacing: UM.Theme.getSize("default_margin").width } From fc7d1210cf660147a4650a69df884e844f5f3fc8 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 30 Oct 2017 12:31:46 +0100 Subject: [PATCH 166/218] Fix qml binding loop --- resources/qml/JobSpecs.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml index 308316d3e9..5e892a34bc 100644 --- a/resources/qml/JobSpecs.qml +++ b/resources/qml/JobSpecs.qml @@ -18,7 +18,6 @@ Item { UM.I18nCatalog { id: catalog; name:"cura"} height: childrenRect.height - width: childrenRect.width Connections { From 2d109090bc29ab79af81322c3ac9f2fd92c4fa3a Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 30 Oct 2017 12:40:41 +0100 Subject: [PATCH 167/218] Show material name instead of extruder number --- cura/PrintInformation.py | 10 ++++++++++ resources/qml/Sidebar.qml | 5 ++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index f3b178c356..c709bec20a 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -56,6 +56,7 @@ class PrintInformation(QObject): self._material_lengths = [] self._material_weights = [] self._material_costs = [] + self._material_names = [] self._pre_sliced = False @@ -139,6 +140,12 @@ class PrintInformation(QObject): def materialCosts(self): return self._material_costs + materialNamesChanged = pyqtSignal() + + @pyqtProperty("QVariantList", notify = materialNamesChanged) + def materialNames(self): + return self._material_names + def _onPrintDurationMessage(self, print_time, material_amounts): self._updateTotalPrintTimePerFeature(print_time) @@ -170,6 +177,7 @@ class PrintInformation(QObject): self._material_lengths = [] self._material_weights = [] self._material_costs = [] + self._material_names = [] material_preference_values = json.loads(Preferences.getInstance().getValue("cura/material_settings")) @@ -208,10 +216,12 @@ class PrintInformation(QObject): self._material_weights.append(weight) self._material_lengths.append(length) self._material_costs.append(cost) + self._material_names.append(material.getName()) self.materialLengthsChanged.emit() self.materialWeightsChanged.emit() self.materialCostsChanged.emit() + self.materialNamesChanged.emit() def _onPreferencesChanged(self, preference): if preference != "cura/material_settings": diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 14179d388d..32dceb6078 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -30,6 +30,7 @@ Rectangle property variant printMaterialLengths: PrintInformation.materialLengths property variant printMaterialWeights: PrintInformation.materialWeights property variant printMaterialCosts: PrintInformation.materialCosts + property variant printMaterialNames: PrintInformation.materialNames color: UM.Theme.getColor("sidebar") UM.I18nCatalog { id: catalog; name:"cura"} @@ -392,11 +393,13 @@ Rectangle var costs = []; var total_cost = 0; var some_costs_known = false; + var names = []; if(base.printMaterialLengths) { for(var index = 0; index < base.printMaterialLengths.length; index++) { if(base.printMaterialLengths[index] > 0) { + names.push(base.printMaterialNames[index]); lengths.push(base.printMaterialLengths[index].toFixed(2)); weights.push(String(Math.floor(base.printMaterialWeights[index]))); var cost = base.printMaterialCosts[index] == undefined ? 0 : base.printMaterialCosts[index].toFixed(2); @@ -423,7 +426,7 @@ Rectangle for(var index = 0; index < lengths.length; index++) { var item_strings = [ - catalog.i18nc("@label", "Extruder %1:").arg(index + 1), + "%1:".arg(names[index]), catalog.i18nc("@label m for meter", "%1m").arg(lengths[index]), catalog.i18nc("@label g for grams", "%1g").arg(weights[index]), "%1 %2".arg(UM.Preferences.getValue("cura/currency")).arg(costs[index]), From b6dd87081cb143ca8101c7cf290ceb2989012555 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 30 Oct 2017 12:45:25 +0100 Subject: [PATCH 168/218] Add upgrade script for 3.0 to 3.1 CURA-4451 - Add upgrade script for 3.0. to 3.1 - Upgrade old stack files so they will use "empty_quality" as the "Not Supported" quality profile. - Increase SettingVersion to 4 --- cura/CuraApplication.py | 2 +- .../VersionUpgrade30to31.py | 141 ++++++++++++++++++ .../VersionUpgrade30to31/__init__.py | 56 +++++++ .../VersionUpgrade30to31/plugin.json | 8 + .../XmlMaterialProfile/XmlMaterialProfile.py | 2 +- .../quality/abax_pri3/apri3_pla_fast.inst.cfg | 2 +- .../quality/abax_pri3/apri3_pla_high.inst.cfg | 2 +- .../abax_pri3/apri3_pla_normal.inst.cfg | 2 +- .../quality/abax_pri5/apri5_pla_fast.inst.cfg | 2 +- .../quality/abax_pri5/apri5_pla_high.inst.cfg | 2 +- .../abax_pri5/apri5_pla_normal.inst.cfg | 2 +- .../abax_titan/atitan_pla_fast.inst.cfg | 2 +- .../abax_titan/atitan_pla_high.inst.cfg | 2 +- .../abax_titan/atitan_pla_normal.inst.cfg | 2 +- .../bp_PLA_Coarse_Quality.inst.cfg | 2 +- .../bp_PLA_High_Quality.inst.cfg | 2 +- .../bp_PLA_Normal_Quality.inst.cfg | 2 +- .../abs/cartesio_0.25_abs_high.inst.cfg | 2 +- .../abs/cartesio_0.25_abs_normal.inst.cfg | 2 +- .../abs/cartesio_0.4_abs_high.inst.cfg | 2 +- .../abs/cartesio_0.4_abs_normal.inst.cfg | 2 +- .../abs/cartesio_0.8_abs_coarse.inst.cfg | 2 +- .../cartesio_0.8_abs_extra_coarse.inst.cfg | 2 +- .../abs/cartesio_0.8_abs_high.inst.cfg | 2 +- .../abs/cartesio_0.8_abs_normal.inst.cfg | 2 +- .../cartesio_0.4_arnitel2045_high.inst.cfg | 2 +- .../cartesio_0.4_arnitel2045_normal.inst.cfg | 2 +- .../cartesio_global_Coarse_Quality.inst.cfg | 2 +- ...tesio_global_Extra_Coarse_Quality.inst.cfg | 2 +- .../cartesio_global_High_Quality.inst.cfg | 2 +- .../cartesio_global_Normal_Quality.inst.cfg | 2 +- .../hips/cartesio_0.25_hips_high.inst.cfg | 2 +- .../hips/cartesio_0.25_hips_normal.inst.cfg | 2 +- .../hips/cartesio_0.4_hips_high.inst.cfg | 2 +- .../hips/cartesio_0.4_hips_normal.inst.cfg | 2 +- .../hips/cartesio_0.8_hips_coarse.inst.cfg | 2 +- .../cartesio_0.8_hips_extra_coarse.inst.cfg | 2 +- .../hips/cartesio_0.8_hips_high.inst.cfg | 2 +- .../hips/cartesio_0.8_hips_normal.inst.cfg | 2 +- .../nylon/cartesio_0.25_nylon_high.inst.cfg | 2 +- .../nylon/cartesio_0.25_nylon_normal.inst.cfg | 2 +- .../nylon/cartesio_0.4_nylon_high.inst.cfg | 2 +- .../nylon/cartesio_0.4_nylon_normal.inst.cfg | 2 +- .../nylon/cartesio_0.8_nylon_coarse.inst.cfg | 2 +- .../cartesio_0.8_nylon_extra_coarse.inst.cfg | 2 +- .../nylon/cartesio_0.8_nylon_high.inst.cfg | 2 +- .../nylon/cartesio_0.8_nylon_normal.inst.cfg | 2 +- .../pc/cartesio_0.25_pc_high.inst.cfg | 2 +- .../pc/cartesio_0.25_pc_normal.inst.cfg | 2 +- .../cartesio/pc/cartesio_0.4_pc_high.inst.cfg | 2 +- .../pc/cartesio_0.4_pc_normal.inst.cfg | 2 +- .../pc/cartesio_0.8_pc_coarse.inst.cfg | 2 +- .../pc/cartesio_0.8_pc_extra_coarse.inst.cfg | 2 +- .../cartesio/pc/cartesio_0.8_pc_high.inst.cfg | 2 +- .../pc/cartesio_0.8_pc_normal.inst.cfg | 2 +- .../petg/cartesio_0.25_petg_high.inst.cfg | 2 +- .../petg/cartesio_0.25_petg_normal.inst.cfg | 2 +- .../petg/cartesio_0.4_petg_high.inst.cfg | 2 +- .../petg/cartesio_0.4_petg_normal.inst.cfg | 2 +- .../petg/cartesio_0.8_petg_coarse.inst.cfg | 2 +- .../cartesio_0.8_petg_extra_coarse.inst.cfg | 2 +- .../petg/cartesio_0.8_petg_high.inst.cfg | 2 +- .../petg/cartesio_0.8_petg_normal.inst.cfg | 2 +- .../pla/cartesio_0.25_pla_high.inst.cfg | 2 +- .../pla/cartesio_0.25_pla_normal.inst.cfg | 2 +- .../pla/cartesio_0.4_pla_high.inst.cfg | 2 +- .../pla/cartesio_0.4_pla_normal.inst.cfg | 2 +- .../pla/cartesio_0.8_pla_coarse.inst.cfg | 2 +- .../cartesio_0.8_pla_extra_coarse.inst.cfg | 2 +- .../pla/cartesio_0.8_pla_high.inst.cfg | 2 +- .../pla/cartesio_0.8_pla_normal.inst.cfg | 2 +- .../pva/cartesio_0.25_pva_high.inst.cfg | 2 +- .../pva/cartesio_0.25_pva_normal.inst.cfg | 2 +- .../pva/cartesio_0.4_pva_high.inst.cfg | 2 +- .../pva/cartesio_0.4_pva_normal.inst.cfg | 2 +- .../pva/cartesio_0.8_pva_coarse.inst.cfg | 2 +- .../cartesio_0.8_pva_extra_coarse.inst.cfg | 2 +- .../pva/cartesio_0.8_pva_high.inst.cfg | 2 +- .../pva/cartesio_0.8_pva_normal.inst.cfg | 2 +- resources/quality/coarse.inst.cfg | 2 +- resources/quality/draft.inst.cfg | 2 +- resources/quality/extra_coarse.inst.cfg | 2 +- .../fabtotum/fabtotum_abs_fast.inst.cfg | 2 +- .../fabtotum/fabtotum_abs_high.inst.cfg | 2 +- .../fabtotum/fabtotum_abs_normal.inst.cfg | 2 +- .../fabtotum/fabtotum_nylon_fast.inst.cfg | 2 +- .../fabtotum/fabtotum_nylon_high.inst.cfg | 2 +- .../fabtotum/fabtotum_nylon_normal.inst.cfg | 2 +- .../fabtotum/fabtotum_pla_fast.inst.cfg | 2 +- .../fabtotum/fabtotum_pla_high.inst.cfg | 2 +- .../fabtotum/fabtotum_pla_normal.inst.cfg | 2 +- resources/quality/high.inst.cfg | 2 +- .../generic_petg_0.4_coarse.inst.cfg | 2 +- .../generic_petg_0.4_coarse_2-fans.inst.cfg | 2 +- .../generic_petg_0.4_medium.inst.cfg | 2 +- .../generic_petg_0.4_medium_2-fans.inst.cfg | 2 +- .../generic_pla_0.4_coarse.inst.cfg | 2 +- .../generic_pla_0.4_coarse_2-fans.inst.cfg | 2 +- .../generic_pla_0.4_fine.inst.cfg | 2 +- .../generic_pla_0.4_fine_2-fans.inst.cfg | 2 +- .../generic_pla_0.4_medium.inst.cfg | 2 +- .../generic_pla_0.4_medium_2-fans.inst.cfg | 2 +- .../generic_pla_0.4_ultrafine.inst.cfg | 2 +- .../generic_pla_0.4_ultrafine_2-fans.inst.cfg | 2 +- .../kemiq_q2/kemiq_q2_beta_abs_draft.inst.cfg | 2 +- .../kemiq_q2_beta_abs_extra_fine.inst.cfg | 2 +- .../kemiq_q2/kemiq_q2_beta_abs_fine.inst.cfg | 2 +- .../kemiq_q2/kemiq_q2_beta_abs_low.inst.cfg | 2 +- .../kemiq_q2_beta_abs_normal.inst.cfg | 2 +- .../kemiq_q2/kemiq_q2_beta_pla_draft.inst.cfg | 2 +- .../kemiq_q2_beta_pla_extra_fine.inst.cfg | 2 +- .../kemiq_q2/kemiq_q2_beta_pla_fine.inst.cfg | 2 +- .../kemiq_q2/kemiq_q2_beta_pla_low.inst.cfg | 2 +- .../kemiq_q2_beta_pla_normal.inst.cfg | 2 +- .../kemiq_q2/kemiq_q2_gama_pla_draft.inst.cfg | 2 +- .../kemiq_q2_gama_pla_extra_fine.inst.cfg | 2 +- .../kemiq_q2/kemiq_q2_gama_pla_fine.inst.cfg | 2 +- .../kemiq_q2/kemiq_q2_gama_pla_low.inst.cfg | 2 +- .../kemiq_q2_gama_pla_normal.inst.cfg | 2 +- resources/quality/low.inst.cfg | 2 +- resources/quality/normal.inst.cfg | 2 +- .../peopoly_moai/peopoly_moai_high.inst.cfg | 2 +- .../peopoly_moai/peopoly_moai_max.inst.cfg | 2 +- .../peopoly_moai/peopoly_moai_normal.inst.cfg | 2 +- .../quality/ultimaker2/um2_draft.inst.cfg | 2 +- .../quality/ultimaker2/um2_high.inst.cfg | 2 +- resources/quality/ultimaker2/um2_low.inst.cfg | 2 +- .../quality/ultimaker2/um2_normal.inst.cfg | 2 +- .../ultimaker2_plus/pla_0.25_normal.inst.cfg | 2 +- .../ultimaker2_plus/pla_0.4_fast.inst.cfg | 2 +- .../ultimaker2_plus/pla_0.4_high.inst.cfg | 2 +- .../ultimaker2_plus/pla_0.4_normal.inst.cfg | 2 +- .../ultimaker2_plus/pla_0.6_normal.inst.cfg | 2 +- .../ultimaker2_plus/pla_0.8_normal.inst.cfg | 2 +- .../um2p_abs_0.25_normal.inst.cfg | 2 +- .../um2p_abs_0.4_fast.inst.cfg | 2 +- .../um2p_abs_0.4_high.inst.cfg | 2 +- .../um2p_abs_0.4_normal.inst.cfg | 2 +- .../um2p_abs_0.6_normal.inst.cfg | 2 +- .../um2p_abs_0.8_normal.inst.cfg | 2 +- .../um2p_cpe_0.25_normal.inst.cfg | 2 +- .../um2p_cpe_0.4_fast.inst.cfg | 2 +- .../um2p_cpe_0.4_high.inst.cfg | 2 +- .../um2p_cpe_0.4_normal.inst.cfg | 2 +- .../um2p_cpe_0.6_normal.inst.cfg | 2 +- .../um2p_cpe_0.8_normal.inst.cfg | 2 +- .../um2p_cpep_0.4_draft.inst.cfg | 2 +- .../um2p_cpep_0.4_normal.inst.cfg | 2 +- .../um2p_cpep_0.6_draft.inst.cfg | 2 +- .../um2p_cpep_0.6_normal.inst.cfg | 2 +- .../um2p_cpep_0.8_draft.inst.cfg | 2 +- .../um2p_cpep_0.8_normal.inst.cfg | 2 +- .../um2p_nylon_0.25_high.inst.cfg | 2 +- .../um2p_nylon_0.25_normal.inst.cfg | 2 +- .../um2p_nylon_0.4_fast.inst.cfg | 2 +- .../um2p_nylon_0.4_normal.inst.cfg | 2 +- .../um2p_nylon_0.6_fast.inst.cfg | 2 +- .../um2p_nylon_0.6_normal.inst.cfg | 2 +- .../um2p_nylon_0.8_draft.inst.cfg | 2 +- .../um2p_nylon_0.8_normal.inst.cfg | 2 +- .../um2p_pc_0.25_high.inst.cfg | 2 +- .../um2p_pc_0.25_normal.inst.cfg | 2 +- .../ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg | 2 +- .../um2p_pc_0.4_normal.inst.cfg | 2 +- .../ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg | 2 +- .../um2p_pc_0.6_normal.inst.cfg | 2 +- .../um2p_pc_0.8_draft.inst.cfg | 2 +- .../um2p_pc_0.8_normal.inst.cfg | 2 +- .../ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg | 2 +- .../um2p_pp_0.4_normal.inst.cfg | 2 +- .../um2p_pp_0.6_draft.inst.cfg | 2 +- .../ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg | 2 +- .../um2p_pp_0.8_draft.inst.cfg | 2 +- .../um2p_pp_0.8_verydraft.inst.cfg | 2 +- .../um2p_tpu_0.25_high.inst.cfg | 2 +- .../um2p_tpu_0.4_normal.inst.cfg | 2 +- .../um2p_tpu_0.6_fast.inst.cfg | 2 +- .../um3_aa0.4_ABS_Draft_Print.inst.cfg | 2 +- .../um3_aa0.4_ABS_Fast_Print.inst.cfg | 2 +- .../um3_aa0.4_ABS_High_Quality.inst.cfg | 2 +- .../um3_aa0.4_ABS_Normal_Quality.inst.cfg | 2 +- .../um3_aa0.4_CPEP_Draft_Print.inst.cfg | 2 +- .../um3_aa0.4_CPEP_Fast_Print.inst.cfg | 2 +- .../um3_aa0.4_CPEP_High_Quality.inst.cfg | 2 +- .../um3_aa0.4_CPEP_Normal_Quality.inst.cfg | 2 +- .../um3_aa0.4_CPE_Draft_Print.inst.cfg | 2 +- .../um3_aa0.4_CPE_Fast_Print.inst.cfg | 2 +- .../um3_aa0.4_CPE_High_Quality.inst.cfg | 2 +- .../um3_aa0.4_CPE_Normal_Quality.inst.cfg | 2 +- .../um3_aa0.4_Nylon_Draft_Print.inst.cfg | 2 +- .../um3_aa0.4_Nylon_Fast_Print.inst.cfg | 2 +- .../um3_aa0.4_Nylon_High_Quality.inst.cfg | 2 +- .../um3_aa0.4_Nylon_Normal_Quality.inst.cfg | 2 +- .../um3_aa0.4_PC_Draft_Print.inst.cfg | 2 +- .../um3_aa0.4_PC_Fast_Print.inst.cfg | 2 +- .../um3_aa0.4_PC_High_Quality.inst.cfg | 2 +- .../um3_aa0.4_PC_Normal_Quality.inst.cfg | 2 +- .../um3_aa0.4_PLA_Draft_Print.inst.cfg | 2 +- .../um3_aa0.4_PLA_Fast_Print.inst.cfg | 2 +- .../um3_aa0.4_PLA_High_Quality.inst.cfg | 2 +- .../um3_aa0.4_PLA_Normal_Quality.inst.cfg | 2 +- .../um3_aa0.4_PP_Draft_Print.inst.cfg | 2 +- .../um3_aa0.4_PP_Fast_Print.inst.cfg | 2 +- .../um3_aa0.4_PP_Normal_Quality.inst.cfg | 2 +- .../um3_aa0.4_TPU_Draft_Print.inst.cfg | 2 +- .../um3_aa0.4_TPU_Fast_Print.inst.cfg | 2 +- .../um3_aa0.4_TPU_Normal_Quality.inst.cfg | 2 +- .../um3_aa0.8_ABS_Draft_Print.inst.cfg | 2 +- .../um3_aa0.8_ABS_Superdraft_Print.inst.cfg | 2 +- .../um3_aa0.8_ABS_Verydraft_Print.inst.cfg | 2 +- .../um3_aa0.8_CPEP_Fast_Print.inst.cfg | 2 +- .../um3_aa0.8_CPEP_Superdraft_Print.inst.cfg | 2 +- .../um3_aa0.8_CPEP_Verydraft_Print.inst.cfg | 2 +- .../um3_aa0.8_CPE_Draft_Print.inst.cfg | 2 +- .../um3_aa0.8_CPE_Superdraft_Print.inst.cfg | 2 +- .../um3_aa0.8_CPE_Verydraft_Print.inst.cfg | 2 +- .../um3_aa0.8_Nylon_Draft_Print.inst.cfg | 2 +- .../um3_aa0.8_Nylon_Superdraft_Print.inst.cfg | 2 +- .../um3_aa0.8_Nylon_Verydraft_Print.inst.cfg | 2 +- .../um3_aa0.8_PC_Fast_Print.inst.cfg | 2 +- .../um3_aa0.8_PC_Superdraft_Print.inst.cfg | 2 +- .../um3_aa0.8_PC_Verydraft_Print.inst.cfg | 2 +- .../um3_aa0.8_PLA_Draft_Print.inst.cfg | 2 +- .../um3_aa0.8_PLA_Superdraft_Print.inst.cfg | 2 +- .../um3_aa0.8_PLA_Verydraft_Print.inst.cfg | 2 +- .../um3_aa0.8_PP_Draft_Print.inst.cfg | 2 +- .../um3_aa0.8_PP_Superdraft_Print.inst.cfg | 2 +- .../um3_aa0.8_PP_Verydraft_Print.inst.cfg | 2 +- .../um3_aa0.8_TPU_Draft_Print.inst.cfg | 2 +- .../um3_aa0.8_TPU_Superdraft_Print.inst.cfg | 2 +- .../um3_aa0.8_TPU_Verydraft_Print.inst.cfg | 2 +- .../um3_bb0.4_PVA_Draft_Print.inst.cfg | 2 +- .../um3_bb0.4_PVA_Fast_Print.inst.cfg | 2 +- .../um3_bb0.4_PVA_High_Quality.inst.cfg | 2 +- .../um3_bb0.4_PVA_Normal_Quality.inst.cfg | 2 +- .../um3_bb0.8_PVA_Draft_Print.inst.cfg | 2 +- .../um3_bb0.8_PVA_Superdraft_Print.inst.cfg | 2 +- .../um3_bb0.8_PVA_Verydraft_Print.inst.cfg | 2 +- .../um3_global_Draft_Quality.inst.cfg | 2 +- .../um3_global_Fast_Quality.inst.cfg | 2 +- .../um3_global_High_Quality.inst.cfg | 2 +- .../um3_global_Normal_Quality.inst.cfg | 2 +- .../um3_global_Superdraft_Quality.inst.cfg | 2 +- .../um3_global_Verydraft_Quality.inst.cfg | 2 +- resources/variants/cartesio_0.25.inst.cfg | 2 +- resources/variants/cartesio_0.4.inst.cfg | 2 +- resources/variants/cartesio_0.8.inst.cfg | 2 +- resources/variants/fabtotum_hyb35.inst.cfg | 2 +- resources/variants/fabtotum_lite04.inst.cfg | 2 +- resources/variants/fabtotum_lite06.inst.cfg | 2 +- resources/variants/fabtotum_pro02.inst.cfg | 2 +- resources/variants/fabtotum_pro04.inst.cfg | 2 +- resources/variants/fabtotum_pro06.inst.cfg | 2 +- resources/variants/fabtotum_pro08.inst.cfg | 2 +- .../variants/imade3d_jellybox_0.4.inst.cfg | 2 +- .../imade3d_jellybox_0.4_2-fans.inst.cfg | 2 +- resources/variants/ultimaker2_0.25.inst.cfg | 2 +- resources/variants/ultimaker2_0.4.inst.cfg | 2 +- resources/variants/ultimaker2_0.6.inst.cfg | 2 +- resources/variants/ultimaker2_0.8.inst.cfg | 2 +- .../ultimaker2_extended_0.25.inst.cfg | 2 +- .../variants/ultimaker2_extended_0.4.inst.cfg | 2 +- .../variants/ultimaker2_extended_0.6.inst.cfg | 2 +- .../variants/ultimaker2_extended_0.8.inst.cfg | 2 +- .../ultimaker2_extended_plus_0.25.inst.cfg | 2 +- .../ultimaker2_extended_plus_0.4.inst.cfg | 2 +- .../ultimaker2_extended_plus_0.6.inst.cfg | 2 +- .../ultimaker2_extended_plus_0.8.inst.cfg | 2 +- .../variants/ultimaker2_plus_0.25.inst.cfg | 2 +- .../variants/ultimaker2_plus_0.4.inst.cfg | 2 +- .../variants/ultimaker2_plus_0.6.inst.cfg | 2 +- .../variants/ultimaker2_plus_0.8.inst.cfg | 2 +- resources/variants/ultimaker3_aa0.8.inst.cfg | 2 +- resources/variants/ultimaker3_aa04.inst.cfg | 2 +- resources/variants/ultimaker3_bb0.8.inst.cfg | 2 +- resources/variants/ultimaker3_bb04.inst.cfg | 2 +- .../ultimaker3_extended_aa0.8.inst.cfg | 2 +- .../ultimaker3_extended_aa04.inst.cfg | 2 +- .../ultimaker3_extended_bb0.8.inst.cfg | 2 +- .../ultimaker3_extended_bb04.inst.cfg | 2 +- 280 files changed, 482 insertions(+), 277 deletions(-) create mode 100644 plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py create mode 100644 plugins/VersionUpgrade/VersionUpgrade30to31/__init__.py create mode 100644 plugins/VersionUpgrade/VersionUpgrade30to31/plugin.json diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 2d1c35aca7..eb802cf6f8 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -105,7 +105,7 @@ class CuraApplication(QtApplication): # SettingVersion represents the set of settings available in the machine/extruder definitions. # You need to make sure that this version number needs to be increased if there is any non-backwards-compatible # changes of the settings. - SettingVersion = 3 + SettingVersion = 4 class ResourceTypes: QmlFiles = Resources.UserType + 1 diff --git a/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py b/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py new file mode 100644 index 0000000000..d328b14367 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py @@ -0,0 +1,141 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +import configparser #To parse preference files. +import io #To serialise the preference files afterwards. + +from UM.VersionUpgrade import VersionUpgrade #We're inheriting from this. + + +# a list of all legacy "Not Supported" quality profiles +_OLD_NOT_SUPPORTED_PROFILES = [ + "um2p_pp_0.25_normal.inst.cfg", + "um2p_tpu_0.8_normal.inst.cfg", + "um3_bb0.4_ABS_Fast_Print.inst.cfg", + "um3_bb0.4_ABS_Superdraft_Print.inst.cfg", + "um3_bb0.4_CPEP_Fast_Print.inst.cfg", + "um3_bb0.4_CPEP_Superdraft_Print.inst.cfg", + "um3_bb0.4_CPE_Fast_Print.inst.cfg", + "um3_bb0.4_CPE_Superdraft_Print.inst.cfg", + "um3_bb0.4_Nylon_Fast_Print.inst.cfg", + "um3_bb0.4_Nylon_Superdraft_Print.inst.cfg", + "um3_bb0.4_PC_Fast_Print.inst.cfg", + "um3_bb0.4_PLA_Fast_Print.inst.cfg", + "um3_bb0.4_PLA_Superdraft_Print.inst.cfg", + "um3_bb0.4_PP_Fast_Print.inst.cfg", + "um3_bb0.4_PP_Superdraft_Print.inst.cfg", + "um3_bb0.4_TPU_Fast_Print.inst.cfg", + "um3_bb0.4_TPU_Superdraft_Print.inst.cfg", + "um3_bb0.8_ABS_Fast_Print.inst.cfg", + "um3_bb0.8_ABS_Superdraft_Print.inst.cfg", + "um3_bb0.8_CPEP_Fast_Print.inst.cfg", + "um3_bb0.8_CPEP_Superdraft_Print.inst.cfg", + "um3_bb0.8_CPE_Fast_Print.inst.cfg", + "um3_bb0.8_CPE_Superdraft_Print.inst.cfg", + "um3_bb0.8_Nylon_Fast_Print.inst.cfg", + "um3_bb0.8_Nylon_Superdraft_Print.inst.cfg", + "um3_bb0.8_PC_Fast_Print.inst.cfg", + "um3_bb0.8_PC_Superdraft_Print.inst.cfg", + "um3_bb0.8_PLA_Fast_Print.inst.cfg", + "um3_bb0.8_PLA_Superdraft_Print.inst.cfg", + "um3_bb0.8_PP_Fast_Print.inst.cfg", + "um3_bb0.8_PP_Superdraft_Print.inst.cfg", + "um3_bb0.8_TPU_Fast_print.inst.cfg", + "um3_bb0.8_TPU_Superdraft_Print.inst.cfg", +] + + +class VersionUpgrade30to31(VersionUpgrade): + ## Gets the version number from a CFG file in Uranium's 3.0 format. + # + # Since the format may change, this is implemented for the 3.0 format only + # and needs to be included in the version upgrade system rather than + # globally in Uranium. + # + # \param serialised The serialised form of a CFG file. + # \return The version number stored in the CFG file. + # \raises ValueError The format of the version number in the file is + # incorrect. + # \raises KeyError The format of the file is incorrect. + def getCfgVersion(self, serialised): + parser = configparser.ConfigParser(interpolation = None) + parser.read_string(serialised) + format_version = int(parser.get("general", "version")) #Explicitly give an exception when this fails. That means that the file format is not recognised. + setting_version = int(parser.get("metadata", "setting_version", fallback = 0)) + return format_version * 1000000 + setting_version + + ## Upgrades a preferences file from version 3.0 to 3.1. + # + # \param serialised The serialised form of a preferences file. + # \param filename The name of the file to upgrade. + def upgradePreferences(self, serialised, filename): + parser = configparser.ConfigParser(interpolation=None) + parser.read_string(serialised) + + # Update version numbers + if "general" not in parser: + parser["general"] = {} + parser["general"]["version"] = "5" + if "metadata" not in parser: + parser["metadata"] = {} + parser["metadata"]["setting_version"] = "4" + + # Re-serialise the file. + output = io.StringIO() + parser.write(output) + return [filename], [output.getvalue()] + + ## Upgrades the given instance container file from version 3.0 to 3.1. + # + # \param serialised The serialised form of the container file. + # \param filename The name of the file to upgrade. + def upgradeInstanceContainer(self, serialised, filename): + parser = configparser.ConfigParser(interpolation=None) + parser.read_string(serialised) + + for each_section in ("general", "metadata"): + if not parser.has_section(each_section): + parser.add_section(each_section) + + # Update version numbers + parser["general"]["version"] = "2" + parser["metadata"]["setting_version"] = "4" + + # Re-serialise the file. + output = io.StringIO() + parser.write(output) + return [filename], [output.getvalue()] + + + ## Upgrades a container stack from version 3.0 to 3.1. + # + # \param serialised The serialised form of a container stack. + # \param filename The name of the file to upgrade. + def upgradeStack(self, serialised, filename): + parser = configparser.ConfigParser(interpolation=None) + parser.read_string(serialised) + + for each_section in ("general", "metadata"): + if not parser.has_section(each_section): + parser.add_section(each_section) + + # change "not supported" quality profiles to empty because they no longer exist + if parser.has_section("containers"): + if parser.has_option("containers", "2"): + quality_profile_id = parser["containers"]["2"] + if quality_profile_id in _OLD_NOT_SUPPORTED_PROFILES: + parser["containers"]["2"] = "empty_quality" + + # Update version numbers + if "general" not in parser: + parser["general"] = {} + parser["general"]["version"] = "3" + + if "metadata" not in parser: + parser["metadata"] = {} + parser["metadata"]["setting_version"] = "4" + + # Re-serialise the file. + output = io.StringIO() + parser.write(output) + return [filename], [output.getvalue()] diff --git a/plugins/VersionUpgrade/VersionUpgrade30to31/__init__.py b/plugins/VersionUpgrade/VersionUpgrade30to31/__init__.py new file mode 100644 index 0000000000..b4b75dddf7 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade30to31/__init__.py @@ -0,0 +1,56 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from . import VersionUpgrade30to31 + +upgrade = VersionUpgrade30to31.VersionUpgrade30to31() + +def getMetaData(): + return { + "version_upgrade": { + # From To Upgrade function + ("preferences", 5000003): ("preferences", 5000004, upgrade.upgradePreferences), + + ("machine_stack", 3000003): ("machine_stack", 3000004, upgrade.upgradeStack), + ("extruder_train", 3000003): ("extruder_train", 3000004, upgrade.upgradeStack), + + ("quality_changes", 2000003): ("quality_changes", 2000004, upgrade.upgradeInstanceContainer), + ("user", 2000003): ("user", 2000004, upgrade.upgradeInstanceContainer), + ("quality", 2000003): ("quality", 2000004, upgrade.upgradeInstanceContainer), + ("definition_changes", 2000003): ("definition_changes", 2000004, upgrade.upgradeInstanceContainer), + ("variant", 2000003): ("variant", 2000004, upgrade.upgradeInstanceContainer) + }, + "sources": { + "preferences": { + "get_version": upgrade.getCfgVersion, + "location": {"."} + }, + "machine_stack": { + "get_version": upgrade.getCfgVersion, + "location": {"./machine_instances"} + }, + "extruder_train": { + "get_version": upgrade.getCfgVersion, + "location": {"./extruders"} + }, + "quality_changes": { + "get_version": upgrade.getCfgVersion, + "location": {"./quality"} + }, + "user": { + "get_version": upgrade.getCfgVersion, + "location": {"./user"} + }, + "definition_changes": { + "get_version": upgrade.getCfgVersion, + "location": {"./definition_changes"} + }, + "variant": { + "get_version": upgrade.getCfgVersion, + "location": {"./variants"} + } + } + } + +def register(app): + return { "version_upgrade": upgrade } diff --git a/plugins/VersionUpgrade/VersionUpgrade30to31/plugin.json b/plugins/VersionUpgrade/VersionUpgrade30to31/plugin.json new file mode 100644 index 0000000000..d80b820976 --- /dev/null +++ b/plugins/VersionUpgrade/VersionUpgrade30to31/plugin.json @@ -0,0 +1,8 @@ + { + "name": "Version Upgrade 3.0 to 3.1", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Upgrades configurations from Cura 3.0 to Cura 3.1.", + "api": 4, + "i18n-catalog": "cura" +} diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 86f3c87bb5..51a3c51a8b 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -35,7 +35,7 @@ class XmlMaterialProfile(InstanceContainer): # \return The corresponding setting_version. def xmlVersionToSettingVersion(self, xml_version: str) -> int: if xml_version == "1.3": - return 3 + return 4 return 0 #Older than 1.3. def getInheritedFiles(self): diff --git a/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg b/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg index 6be4578649..32550d86a5 100644 --- a/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg +++ b/resources/quality/abax_pri3/apri3_pla_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla weight = -1 quality_type = normal -setting_version = 3 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/abax_pri3/apri3_pla_high.inst.cfg b/resources/quality/abax_pri3/apri3_pla_high.inst.cfg index d3df991d53..2007785719 100644 --- a/resources/quality/abax_pri3/apri3_pla_high.inst.cfg +++ b/resources/quality/abax_pri3/apri3_pla_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla weight = 1 quality_type = high -setting_version = 3 +setting_version = 4 [values] layer_height = 0.1 diff --git a/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg b/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg index 326e35e251..dba0a0460f 100644 --- a/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg +++ b/resources/quality/abax_pri3/apri3_pla_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg b/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg index 140a59db3b..11892a6223 100644 --- a/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg +++ b/resources/quality/abax_pri5/apri5_pla_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla weight = -1 quality_type = normal -setting_version = 3 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/abax_pri5/apri5_pla_high.inst.cfg b/resources/quality/abax_pri5/apri5_pla_high.inst.cfg index dfa265d360..852efe699e 100644 --- a/resources/quality/abax_pri5/apri5_pla_high.inst.cfg +++ b/resources/quality/abax_pri5/apri5_pla_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla weight = 1 quality_type = high -setting_version = 3 +setting_version = 4 [values] layer_height = 0.1 diff --git a/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg b/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg index 81fbf2a42d..244d544c80 100644 --- a/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg +++ b/resources/quality/abax_pri5/apri5_pla_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/abax_titan/atitan_pla_fast.inst.cfg b/resources/quality/abax_titan/atitan_pla_fast.inst.cfg index b8d8f019cd..a2d802a3ba 100644 --- a/resources/quality/abax_titan/atitan_pla_fast.inst.cfg +++ b/resources/quality/abax_titan/atitan_pla_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla weight = -1 quality_type = normal -setting_version = 3 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/abax_titan/atitan_pla_high.inst.cfg b/resources/quality/abax_titan/atitan_pla_high.inst.cfg index 2cffe3ce8a..7ee8c35133 100644 --- a/resources/quality/abax_titan/atitan_pla_high.inst.cfg +++ b/resources/quality/abax_titan/atitan_pla_high.inst.cfg @@ -7,7 +7,7 @@ type = quality material = generic_pla weight = 1 quality_type = high -setting_version = 3 +setting_version = 4 [values] layer_height = 0.1 diff --git a/resources/quality/abax_titan/atitan_pla_normal.inst.cfg b/resources/quality/abax_titan/atitan_pla_normal.inst.cfg index f1b6237e07..6c40914566 100644 --- a/resources/quality/abax_titan/atitan_pla_normal.inst.cfg +++ b/resources/quality/abax_titan/atitan_pla_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg b/resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg index 2a7089f3fe..3454f8b3ad 100644 --- a/resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_PLA_Coarse_Quality.inst.cfg @@ -7,7 +7,7 @@ definition = builder_premium_small type = quality quality_type = coarse material = generic_pla_175 -setting_version = 3 +setting_version = 4 weight = -1 global_quality = True diff --git a/resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg b/resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg index d2b0dae2bb..b5ac4cb6a1 100644 --- a/resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_PLA_High_Quality.inst.cfg @@ -7,7 +7,7 @@ definition = builder_premium_small type = quality quality_type = high material = generic_pla_175 -setting_version = 3 +setting_version = 4 weight = 1 global_quality = True diff --git a/resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg b/resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg index ee5b771912..c5a93e65c1 100644 --- a/resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/builder_premium/bp_PLA_Normal_Quality.inst.cfg @@ -7,7 +7,7 @@ definition = builder_premium_small type = quality quality_type = normal material = generic_pla_175 -setting_version = 3 +setting_version = 4 weight = 0 global_quality = True diff --git a/resources/quality/cartesio/abs/cartesio_0.25_abs_high.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.25_abs_high.inst.cfg index 3abcc16f39..418855a9ba 100644 --- a/resources/quality/cartesio/abs/cartesio_0.25_abs_high.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.25_abs_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_abs_175_cartesio_0.25_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg index a47fc2b8bf..e95ef08e22 100644 --- a/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.25_abs_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_abs_175_cartesio_0.25_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/abs/cartesio_0.4_abs_high.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.4_abs_high.inst.cfg index c37b5c677c..524f5ba12a 100644 --- a/resources/quality/cartesio/abs/cartesio_0.4_abs_high.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.4_abs_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_abs_175_cartesio_0.4_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg index ec0fdfa07b..24ffb19d6f 100644 --- a/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.4_abs_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_abs_175_cartesio_0.4_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/abs/cartesio_0.8_abs_coarse.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.8_abs_coarse.inst.cfg index 211e78357b..1281a3afdd 100644 --- a/resources/quality/cartesio/abs/cartesio_0.8_abs_coarse.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.8_abs_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_abs_175_cartesio_0.8_mm weight = 3 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/abs/cartesio_0.8_abs_extra_coarse.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.8_abs_extra_coarse.inst.cfg index 319c0748af..a8d19deef7 100644 --- a/resources/quality/cartesio/abs/cartesio_0.8_abs_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.8_abs_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_abs_175_cartesio_0.8_mm weight = 4 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/abs/cartesio_0.8_abs_high.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.8_abs_high.inst.cfg index fc3b1e49f0..87cc855f44 100644 --- a/resources/quality/cartesio/abs/cartesio_0.8_abs_high.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.8_abs_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_abs_175_cartesio_0.8_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg b/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg index 0c453ed6b0..4ca2598051 100644 --- a/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg +++ b/resources/quality/cartesio/abs/cartesio_0.8_abs_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_abs_175_cartesio_0.8_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_high.inst.cfg b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_high.inst.cfg index 4052520597..42eb705f11 100644 --- a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_high.inst.cfg +++ b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = dsm_arnitel2045_175_cartesio_0.4_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg index a8a5e22a3b..538fe91b76 100644 --- a/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg +++ b/resources/quality/cartesio/arnitel/cartesio_0.4_arnitel2045_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = dsm_arnitel2045_175_cartesio_0.4_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg index 29c99bda49..11760b139f 100644 --- a/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_Coarse_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse global_quality = True weight = -3 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.4 diff --git a/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg index e5cb9712d2..c654dba598 100644 --- a/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_Extra_Coarse_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse global_quality = True weight = -4 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.6 diff --git a/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg index 16570b97bf..393a5f3b39 100644 --- a/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high global_quality = True weight = 1 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.1 diff --git a/resources/quality/cartesio/cartesio_global_Normal_Quality.inst.cfg b/resources/quality/cartesio/cartesio_global_Normal_Quality.inst.cfg index 182ae137e7..c09493ba10 100644 --- a/resources/quality/cartesio/cartesio_global_Normal_Quality.inst.cfg +++ b/resources/quality/cartesio/cartesio_global_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal global_quality = True weight = 0 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/cartesio/hips/cartesio_0.25_hips_high.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.25_hips_high.inst.cfg index 1a51725339..eae4e82cd3 100644 --- a/resources/quality/cartesio/hips/cartesio_0.25_hips_high.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.25_hips_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_hips_175_cartesio_0.25_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg index fa845592fa..0c47b18196 100644 --- a/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.25_hips_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_hips_175_cartesio_0.25_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/hips/cartesio_0.4_hips_high.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.4_hips_high.inst.cfg index 56b5e7ef38..14f1ea4662 100644 --- a/resources/quality/cartesio/hips/cartesio_0.4_hips_high.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.4_hips_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_hips_175_cartesio_0.4_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg index cad4b5255f..bd13b358ff 100644 --- a/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.4_hips_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_hips_175_cartesio_0.4_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/hips/cartesio_0.8_hips_coarse.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.8_hips_coarse.inst.cfg index b52f4df1fa..ca864692c3 100644 --- a/resources/quality/cartesio/hips/cartesio_0.8_hips_coarse.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.8_hips_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_hips_175_cartesio_0.8_mm weight = 3 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/hips/cartesio_0.8_hips_extra_coarse.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.8_hips_extra_coarse.inst.cfg index 7eba4c99c4..3cadef4fdd 100644 --- a/resources/quality/cartesio/hips/cartesio_0.8_hips_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.8_hips_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_hips_175_cartesio_0.8_mm weight = 4 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/hips/cartesio_0.8_hips_high.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.8_hips_high.inst.cfg index 06ddcc0959..07839c8a9a 100644 --- a/resources/quality/cartesio/hips/cartesio_0.8_hips_high.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.8_hips_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_hips_175_cartesio_0.8_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg b/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg index 534d63115b..acc9db0891 100644 --- a/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg +++ b/resources/quality/cartesio/hips/cartesio_0.8_hips_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_hips_175_cartesio_0.8_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_high.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_high.inst.cfg index ba2c95043c..b1f2f17d41 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_high.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_nylon_175_cartesio_0.25_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg index fb9393577f..bcfa1c2e30 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.25_nylon_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_nylon_175_cartesio_0.25_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_high.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_high.inst.cfg index 92c00bc5df..2cd50efeb2 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_high.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_nylon_175_cartesio_0.4_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg index 389a01fcb4..7a7d767ea3 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.4_nylon_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_nylon_175_cartesio_0.4_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_coarse.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_coarse.inst.cfg index f8ed2fbf41..5684c89e23 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_coarse.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_nylon_175_cartesio_0.8_mm weight = 3 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_extra_coarse.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_extra_coarse.inst.cfg index 607069e4db..8d97e9ac5f 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_nylon_175_cartesio_0.8_mm weight = 4 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_high.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_high.inst.cfg index 3c1bbffa83..946f8de34d 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_high.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_nylon_175_cartesio_0.8_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg index e964ab95b2..80f390c254 100644 --- a/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg +++ b/resources/quality/cartesio/nylon/cartesio_0.8_nylon_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_nylon_175_cartesio_0.8_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pc/cartesio_0.25_pc_high.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.25_pc_high.inst.cfg index 86f2dbf91f..2f401556d4 100644 --- a/resources/quality/cartesio/pc/cartesio_0.25_pc_high.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.25_pc_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pc_175_cartesio_0.25_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg index f24f3caed0..225b0ec5cf 100644 --- a/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.25_pc_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pc_175_cartesio_0.25_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/pc/cartesio_0.4_pc_high.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.4_pc_high.inst.cfg index 3d44cfd39f..53e61a81a2 100644 --- a/resources/quality/cartesio/pc/cartesio_0.4_pc_high.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.4_pc_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pc_175_cartesio_0.4_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg index fe873f537a..e7b179dfe1 100644 --- a/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.4_pc_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pc_175_cartesio_0.4_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/pc/cartesio_0.8_pc_coarse.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.8_pc_coarse.inst.cfg index 4e802a4e9b..baa3a1fdce 100644 --- a/resources/quality/cartesio/pc/cartesio_0.8_pc_coarse.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.8_pc_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_pc_175_cartesio_0.8_mm weight = 3 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pc/cartesio_0.8_pc_extra_coarse.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.8_pc_extra_coarse.inst.cfg index 21153fce38..81f939f800 100644 --- a/resources/quality/cartesio/pc/cartesio_0.8_pc_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.8_pc_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_pc_175_cartesio_0.8_mm weight = 4 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pc/cartesio_0.8_pc_high.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.8_pc_high.inst.cfg index a8cc757fbb..41b2cc70f0 100644 --- a/resources/quality/cartesio/pc/cartesio_0.8_pc_high.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.8_pc_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pc_175_cartesio_0.8_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg b/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg index 9574471b1c..e5ae6aff1d 100644 --- a/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg +++ b/resources/quality/cartesio/pc/cartesio_0.8_pc_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pc_175_cartesio_0.8_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/petg/cartesio_0.25_petg_high.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.25_petg_high.inst.cfg index 2efa3ca0da..c5c4be6f4a 100644 --- a/resources/quality/cartesio/petg/cartesio_0.25_petg_high.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.25_petg_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_petg_175_cartesio_0.25_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg index 377520f471..6d12bdc402 100644 --- a/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.25_petg_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_petg_175_cartesio_0.25_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/petg/cartesio_0.4_petg_high.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.4_petg_high.inst.cfg index c31c18b192..43dda5007c 100644 --- a/resources/quality/cartesio/petg/cartesio_0.4_petg_high.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.4_petg_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_petg_175_cartesio_0.4_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg index 1bf8c4a4d6..094dc33263 100644 --- a/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.4_petg_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_petg_175_cartesio_0.4_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/petg/cartesio_0.8_petg_coarse.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.8_petg_coarse.inst.cfg index 599ba08eaa..da9e4ad3dd 100644 --- a/resources/quality/cartesio/petg/cartesio_0.8_petg_coarse.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.8_petg_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_petg_175_cartesio_0.8_mm weight = 3 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/petg/cartesio_0.8_petg_extra_coarse.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.8_petg_extra_coarse.inst.cfg index 2f1a138115..607ba778a1 100644 --- a/resources/quality/cartesio/petg/cartesio_0.8_petg_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.8_petg_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_petg_175_cartesio_0.8_mm weight = 4 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/petg/cartesio_0.8_petg_high.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.8_petg_high.inst.cfg index 1a804307c9..3010d95dab 100644 --- a/resources/quality/cartesio/petg/cartesio_0.8_petg_high.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.8_petg_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_petg_175_cartesio_0.8_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg b/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg index 6eca142191..fbf8fac67f 100644 --- a/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg +++ b/resources/quality/cartesio/petg/cartesio_0.8_petg_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_petg_175_cartesio_0.8_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pla/cartesio_0.25_pla_high.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.25_pla_high.inst.cfg index 9cfa09aee7..9d8130602e 100644 --- a/resources/quality/cartesio/pla/cartesio_0.25_pla_high.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.25_pla_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pla_175_cartesio_0.25_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg index 359ca15f96..98401dbf42 100644 --- a/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.25_pla_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pla_175_cartesio_0.25_mm weight = 0 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/pla/cartesio_0.4_pla_high.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.4_pla_high.inst.cfg index 3d97fdbae8..2eda5103d7 100644 --- a/resources/quality/cartesio/pla/cartesio_0.4_pla_high.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.4_pla_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pla_175_cartesio_0.4_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg index fef8bb53d3..f3d3820ff7 100644 --- a/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.4_pla_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pla_175_cartesio_0.4_mm weight = 0 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg index 06cd974d26..d2cf708336 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_pla_175_cartesio_0.8_mm weight = -3 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg index d161befcc1..888d8f91a7 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_pla_175_cartesio_0.8_mm weight = -4 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_high.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_high.inst.cfg index b017fb9d5d..558514db98 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_high.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pla_175_cartesio_0.8_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg b/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg index 6075c2651f..9c508e4a1f 100644 --- a/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg +++ b/resources/quality/cartesio/pla/cartesio_0.8_pla_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pla_175_cartesio_0.8_mm weight = 0 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pva/cartesio_0.25_pva_high.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.25_pva_high.inst.cfg index bd170cfccc..fcbf4913de 100644 --- a/resources/quality/cartesio/pva/cartesio_0.25_pva_high.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.25_pva_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pva_175_cartesio_0.25_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg index 23ba53078b..3893421df0 100644 --- a/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.25_pva_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pva_175_cartesio_0.25_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.3 diff --git a/resources/quality/cartesio/pva/cartesio_0.4_pva_high.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.4_pva_high.inst.cfg index de12e2987d..5876db1e2e 100644 --- a/resources/quality/cartesio/pva/cartesio_0.4_pva_high.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.4_pva_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pva_175_cartesio_0.4_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg index 3418cce66c..c977e79a5c 100644 --- a/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.4_pva_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pva_175_cartesio_0.4_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.5 diff --git a/resources/quality/cartesio/pva/cartesio_0.8_pva_coarse.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.8_pva_coarse.inst.cfg index 17c9f81d2d..8c36d8e7ed 100644 --- a/resources/quality/cartesio/pva/cartesio_0.8_pva_coarse.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.8_pva_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse material = generic_pva_175_cartesio_0.8_mm weight = 3 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pva/cartesio_0.8_pva_extra_coarse.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.8_pva_extra_coarse.inst.cfg index ffd4e34204..c2b19868f6 100644 --- a/resources/quality/cartesio/pva/cartesio_0.8_pva_extra_coarse.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.8_pva_extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = extra coarse material = generic_pva_175_cartesio_0.8_mm weight = 4 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pva/cartesio_0.8_pva_high.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.8_pva_high.inst.cfg index bd32e91b20..5bd285285a 100644 --- a/resources/quality/cartesio/pva/cartesio_0.8_pva_high.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.8_pva_high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pva_175_cartesio_0.8_mm weight = 1 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg b/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg index 6d309464a6..a11bff95e1 100644 --- a/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg +++ b/resources/quality/cartesio/pva/cartesio_0.8_pva_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pva_175_cartesio_0.8_mm weight = 2 -setting_version = 3 +setting_version = 4 [values] infill_line_width = 0.9 diff --git a/resources/quality/coarse.inst.cfg b/resources/quality/coarse.inst.cfg index 3f197bb50c..133ffc8951 100644 --- a/resources/quality/coarse.inst.cfg +++ b/resources/quality/coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = coarse global_quality = True weight = -3 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.4 diff --git a/resources/quality/draft.inst.cfg b/resources/quality/draft.inst.cfg index 00932feb68..a155c8f2e1 100644 --- a/resources/quality/draft.inst.cfg +++ b/resources/quality/draft.inst.cfg @@ -9,7 +9,7 @@ type = quality quality_type = draft global_quality = True weight = -2 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/extra_coarse.inst.cfg b/resources/quality/extra_coarse.inst.cfg index 183fa825e8..ce28e54721 100644 --- a/resources/quality/extra_coarse.inst.cfg +++ b/resources/quality/extra_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = Extra coarse global_quality = True weight = -4 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.6 diff --git a/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg index d38323a180..245997a27e 100644 --- a/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg @@ -5,7 +5,7 @@ name = Fast Quality [metadata] type = quality -setting_version = 3 +setting_version = 4 material = fabtotum_abs quality_type = fast weight = -1 diff --git a/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg index 5333512e4c..26300eec7d 100644 --- a/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg @@ -5,7 +5,7 @@ name = High Quality [metadata] type = quality -setting_version = 3 +setting_version = 4 material = fabtotum_abs quality_type = high weight = 1 diff --git a/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg index fd0fca7887..53d20c8cbc 100644 --- a/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg @@ -5,7 +5,7 @@ name = Normal Quality [metadata] type = quality -setting_version = 3 +setting_version = 4 material = fabtotum_abs quality_type = normal weight = 0 diff --git a/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg index 1c9e384e77..22bbcbeaeb 100644 --- a/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = fabtotum_nylon quality_type = fast weight = -1 -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg index cffa1f0e86..a625bd715f 100644 --- a/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = fabtotum_nylon quality_type = high weight = 1 -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg index c2bec3396e..b05d30c5c6 100644 --- a/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = fabtotum_nylon quality_type = normal weight = 0 -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg index 4adda21b5a..1f1c93961b 100644 --- a/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg @@ -5,7 +5,7 @@ name = Fast Quality [metadata] type = quality -setting_version = 3 +setting_version = 4 material = fabtotum_pla quality_type = fast weight = -1 diff --git a/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg index e3aed0ab0e..9cd067703c 100644 --- a/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg @@ -5,7 +5,7 @@ name = High Quality [metadata] type = quality -setting_version = 3 +setting_version = 4 material = fabtotum_pla quality_type = high weight = 1 diff --git a/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg index 81a75283a5..5b5125c4e5 100644 --- a/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg +++ b/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg @@ -5,7 +5,7 @@ name = Normal Quality [metadata] type = quality -setting_version = 3 +setting_version = 4 material = fabtotum_pla quality_type = normal weight = 0 diff --git a/resources/quality/high.inst.cfg b/resources/quality/high.inst.cfg index 846dc58827..d4333c90da 100644 --- a/resources/quality/high.inst.cfg +++ b/resources/quality/high.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high global_quality = True weight = 1 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.06 diff --git a/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse.inst.cfg b/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse.inst.cfg index ad22aacc18..e36286c6ae 100644 --- a/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_petg_imade3d_jellybox_0.4_mm weight = -1 quality_type = fast -setting_version = 3 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse_2-fans.inst.cfg index 35268229b3..3240bad98b 100644 --- a/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_petg_0.4_coarse_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_petg_imade3d_jellybox_0.4_mm_2-fans weight = -1 quality_type = fast -setting_version = 3 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_petg_0.4_medium.inst.cfg b/resources/quality/imade3d_jellybox/generic_petg_0.4_medium.inst.cfg index ca5f8b5a28..2790a5a742 100644 --- a/resources/quality/imade3d_jellybox/generic_petg_0.4_medium.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_petg_0.4_medium.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_petg_imade3d_jellybox_0.4_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_petg_0.4_medium_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_petg_0.4_medium_2-fans.inst.cfg index a2b540dc7f..14f141f0bf 100644 --- a/resources/quality/imade3d_jellybox/generic_petg_0.4_medium_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_petg_0.4_medium_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_petg_imade3d_jellybox_0.4_mm_2-fans weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse.inst.cfg index b3472a0cf5..842ec618e0 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm weight = -1 quality_type = fast -setting_version = 3 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse_2-fans.inst.cfg index c7dd462a74..17e085d84d 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_coarse_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm_2-fans weight = -1 quality_type = fast -setting_version = 3 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_fine.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_fine.inst.cfg index 7035deab6e..a4b44f47f6 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_fine.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_fine.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm weight = 1 quality_type = high -setting_version = 3 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_fine_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_fine_2-fans.inst.cfg index 73e33a74fb..962b3c9ad4 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_fine_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_fine_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm_2-fans weight = 1 quality_type = high -setting_version = 3 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_medium.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_medium.inst.cfg index 8a14eab5c6..952b16ecf8 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_medium.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_medium.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_medium_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_medium_2-fans.inst.cfg index 64917bc37d..bd70d105a4 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_medium_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_medium_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm_2-fans weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine.inst.cfg index 15be25bb1b..a9d0679612 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm weight = 2 quality_type = ultrahigh -setting_version = 3 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine_2-fans.inst.cfg b/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine_2-fans.inst.cfg index b4f0db9cb6..097e1fc76a 100644 --- a/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine_2-fans.inst.cfg +++ b/resources/quality/imade3d_jellybox/generic_pla_0.4_ultrafine_2-fans.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_imade3d_jellybox_0.4_mm_2-fans weight = 2 quality_type = ultrahigh -setting_version = 3 +setting_version = 4 [values] adhesion_type = skirt diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_draft.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_draft.inst.cfg index 5d3bf86b90..5401ec7bd6 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_draft.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = -3 material = generic_abs quality_type = coarse -setting_version = 3 +setting_version = 4 [values] layer_height = 0.35 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_extra_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_extra_fine.inst.cfg index e29c38f225..aea8fc9535 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_extra_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_extra_fine.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = 1 material = generic_abs quality_type = high -setting_version = 3 +setting_version = 4 [values] layer_height = 0.06 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_fine.inst.cfg index 552ad8901e..24adbd9f6c 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_fine.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = 0 material = generic_abs quality_type = normal -setting_version = 3 +setting_version = 4 [values] layer_height = 0.1 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_low.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_low.inst.cfg index a63f9065ef..98d2475633 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_low.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_low.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = -2 material = generic_abs quality_type = draft -setting_version = 3 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_normal.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_normal.inst.cfg index 1449961b6c..ab2e9dabbc 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_abs_normal.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_abs_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = -1 material = generic_abs quality_type = low -setting_version = 3 +setting_version = 4 [values] layer_height = 0.15 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_draft.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_draft.inst.cfg index 2b3e64c67b..f868ab40fc 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_draft.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = -3 material = generic_pla quality_type = coarse -setting_version = 3 +setting_version = 4 [values] layer_height = 0.35 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_extra_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_extra_fine.inst.cfg index 2c14044484..e907f7ccaf 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_extra_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_extra_fine.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla weight = 1 quality_type = high -setting_version = 3 +setting_version = 4 [values] layer_height = 0.06 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_fine.inst.cfg index 48617d23df..841023d532 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_fine.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = 0 material = generic_pla quality_type = normal -setting_version = 3 +setting_version = 4 [values] layer_height = 0.1 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_low.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_low.inst.cfg index 724c52b40d..ca874c6bce 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_low.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_low.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = -2 material = generic_pla quality_type = draft -setting_version = 3 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_normal.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_normal.inst.cfg index 7c6f7d5e05..fcfbe72b24 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_beta_pla_normal.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_beta_pla_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = -1 material = generic_pla quality_type = low -setting_version = 3 +setting_version = 4 [values] layer_height = 0.15 diff --git a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_draft.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_draft.inst.cfg index 105cf0b199..009af9b87b 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_draft.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = -3 material = generic_pla quality_type = coarse -setting_version = 3 +setting_version = 4 [values] layer_height = 0.35 diff --git a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_extra_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_extra_fine.inst.cfg index 35aef2e19e..447e3b012d 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_extra_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_extra_fine.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla weight = 1 quality_type = high -setting_version = 3 +setting_version = 4 [values] layer_height = 0.06 diff --git a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_fine.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_fine.inst.cfg index 06ec265152..80b2375108 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_fine.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_fine.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = 0 material = generic_pla quality_type = normal -setting_version = 3 +setting_version = 4 [values] layer_height = 0.1 diff --git a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_low.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_low.inst.cfg index db47c47fc4..e30c52f4e6 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_low.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_low.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = -2 material = generic_pla quality_type = draft -setting_version = 3 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_normal.inst.cfg b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_normal.inst.cfg index 1ad63191a4..31bdaa51bc 100644 --- a/resources/quality/kemiq_q2/kemiq_q2_gama_pla_normal.inst.cfg +++ b/resources/quality/kemiq_q2/kemiq_q2_gama_pla_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality weight = -1 material = generic_pla quality_type = low -setting_version = 3 +setting_version = 4 [values] layer_height = 0.15 diff --git a/resources/quality/low.inst.cfg b/resources/quality/low.inst.cfg index 21e4d0d404..e92490722d 100644 --- a/resources/quality/low.inst.cfg +++ b/resources/quality/low.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = low global_quality = True weight = -1 -setting_version = 3 +setting_version = 4 [values] infill_sparse_density = 10 diff --git a/resources/quality/normal.inst.cfg b/resources/quality/normal.inst.cfg index acbdf1033e..9fb7b238cd 100644 --- a/resources/quality/normal.inst.cfg +++ b/resources/quality/normal.inst.cfg @@ -8,6 +8,6 @@ type = quality quality_type = normal global_quality = True weight = 0 -setting_version = 3 +setting_version = 4 [values] diff --git a/resources/quality/peopoly_moai/peopoly_moai_high.inst.cfg b/resources/quality/peopoly_moai/peopoly_moai_high.inst.cfg index deefea63dd..ae8a377116 100644 --- a/resources/quality/peopoly_moai/peopoly_moai_high.inst.cfg +++ b/resources/quality/peopoly_moai/peopoly_moai_high.inst.cfg @@ -7,7 +7,7 @@ definition = peopoly_moai type = quality weight = 1 quality_type = high -setting_version = 3 +setting_version = 4 [values] infill_sparse_density = 70 diff --git a/resources/quality/peopoly_moai/peopoly_moai_max.inst.cfg b/resources/quality/peopoly_moai/peopoly_moai_max.inst.cfg index f9ed09afca..07ab7e364b 100644 --- a/resources/quality/peopoly_moai/peopoly_moai_max.inst.cfg +++ b/resources/quality/peopoly_moai/peopoly_moai_max.inst.cfg @@ -7,7 +7,7 @@ definition = peopoly_moai type = quality weight = 2 quality_type = extra_high -setting_version = 3 +setting_version = 4 [values] infill_sparse_density = 70 diff --git a/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg b/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg index 7cbd9a84fe..e0d2f7d818 100644 --- a/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg +++ b/resources/quality/peopoly_moai/peopoly_moai_normal.inst.cfg @@ -7,7 +7,7 @@ definition = peopoly_moai type = quality weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] infill_sparse_density = 70 diff --git a/resources/quality/ultimaker2/um2_draft.inst.cfg b/resources/quality/ultimaker2/um2_draft.inst.cfg index 11bdf03e92..4fe3f51e20 100644 --- a/resources/quality/ultimaker2/um2_draft.inst.cfg +++ b/resources/quality/ultimaker2/um2_draft.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker2 type = quality quality_type = draft weight = -2 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/ultimaker2/um2_high.inst.cfg b/resources/quality/ultimaker2/um2_high.inst.cfg index 63b820479a..96941beed2 100644 --- a/resources/quality/ultimaker2/um2_high.inst.cfg +++ b/resources/quality/ultimaker2/um2_high.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker2 type = quality quality_type = high weight = 1 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.06 diff --git a/resources/quality/ultimaker2/um2_low.inst.cfg b/resources/quality/ultimaker2/um2_low.inst.cfg index bb8ef2fa87..832962984c 100644 --- a/resources/quality/ultimaker2/um2_low.inst.cfg +++ b/resources/quality/ultimaker2/um2_low.inst.cfg @@ -7,7 +7,7 @@ definition = ultimaker2 type = quality quality_type = low weight = -1 -setting_version = 3 +setting_version = 4 [values] infill_sparse_density = 10 diff --git a/resources/quality/ultimaker2/um2_normal.inst.cfg b/resources/quality/ultimaker2/um2_normal.inst.cfg index 0673ba9eb4..ea804feb80 100644 --- a/resources/quality/ultimaker2/um2_normal.inst.cfg +++ b/resources/quality/ultimaker2/um2_normal.inst.cfg @@ -7,6 +7,6 @@ definition = ultimaker2 type = quality quality_type = normal weight = 0 -setting_version = 3 +setting_version = 4 [values] diff --git a/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg index ba94d1a008..638a1a9384 100644 --- a/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.25_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_ultimaker2_plus_0.25_mm weight = 1 quality_type = high -setting_version = 3 +setting_version = 4 [values] cool_min_layer_time = 5 diff --git a/resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg index fa91cb12e5..9f4dfc0b5d 100644 --- a/resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast -setting_version = 3 +setting_version = 4 [values] cool_min_layer_time = 5 diff --git a/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg index 97253fb753..7bf51b0211 100644 --- a/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_ultimaker2_plus_0.4_mm weight = 1 quality_type = high -setting_version = 3 +setting_version = 4 [values] cool_min_layer_time = 5 diff --git a/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg index 2b63b8e8be..3c6f40e0bc 100644 --- a/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pla_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] cool_min_layer_time = 5 diff --git a/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg index 6d4dc257bf..ef79e30b74 100644 --- a/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg @@ -8,7 +8,7 @@ material = generic_pla_ultimaker2_plus_0.6_mm type = quality weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] cool_min_layer_time = 5 diff --git a/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg index 88d95ebc3f..42418ea392 100644 --- a/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg @@ -8,7 +8,7 @@ material = generic_pla_ultimaker2_plus_0.8_mm type = quality weight = -1 quality_type = fast -setting_version = 3 +setting_version = 4 [values] cool_min_layer_time = 5 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg index e2b7f34549..50a4076de2 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.25_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_abs_ultimaker2_plus_0.25_mm weight = 1 quality_type = high -setting_version = 3 +setting_version = 4 [values] cool_fan_speed_min = =cool_fan_speed * 0.2 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.4_fast.inst.cfg index aa4918b0c7..9d1bcf6ff5 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.4_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_abs_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast -setting_version = 3 +setting_version = 4 [values] cool_fan_speed_min = =cool_fan_speed * 0.2 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg index 0c8b8233fb..84a5557434 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.4_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_abs_ultimaker2_plus_0.4_mm weight = 1 quality_type = high -setting_version = 3 +setting_version = 4 [values] cool_fan_speed_min = =cool_fan_speed * 0.2 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg index de5ddb9726..efc749ad8c 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.4_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_abs_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] cool_fan_speed_min = =cool_fan_speed * 0.2 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg index bff307740a..eb706c5762 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.6_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_abs_ultimaker2_plus_0.6_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] cool_fan_speed_min = =cool_fan_speed * 0.5 diff --git a/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg index 510494c0c6..2dba5a9304 100644 --- a/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_abs_0.8_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_abs_ultimaker2_plus_0.8_mm weight = -1 quality_type = fast -setting_version = 3 +setting_version = 4 [values] cool_fan_speed_min = =cool_fan_speed * 0.5 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg index f47437eb58..8e87e0e7b6 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.25_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_ultimaker2_plus_0.25_mm weight = -1 quality_type = high -setting_version = 3 +setting_version = 4 [values] cool_fan_speed_min = =cool_fan_speed * 0.2 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_fast.inst.cfg index 7e3dc1a39e..e311df00a8 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast -setting_version = 3 +setting_version = 4 [values] cool_fan_speed_min = =cool_fan_speed * 0.8 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg index 4be015ce35..685b7798fc 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_ultimaker2_plus_0.4_mm weight = 1 quality_type = high -setting_version = 3 +setting_version = 4 [values] cool_fan_speed_min = =cool_fan_speed * 0.8 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg index 9b5ac3c163..aadb4195f3 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.4_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] cool_fan_speed_min = =cool_fan_speed * 0.8 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg index acac263691..332033368f 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.6_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_ultimaker2_plus_0.6_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] cool_fan_speed_min = =cool_fan_speed * 0.8 diff --git a/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg index a3b15628dd..e4fcae8aa1 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpe_0.8_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_ultimaker2_plus_0.8_mm weight = -1 quality_type = fast -setting_version = 3 +setting_version = 4 [values] cool_fan_speed_min = =cool_fan_speed * 0.8 diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg index 4c81178592..55af936a89 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.4_mm weight = -2 quality_type = draft -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_normal.inst.cfg index 216c8568d1..eb0ca5e81f 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.4_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg index b718af40d9..b324d867bc 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.6_mm weight = -2 quality_type = draft -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_normal.inst.cfg index 4e8de61ad6..c8c7576d30 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.6_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.6_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg index 1e9f1029c6..28353f729d 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.8_mm weight = -2 quality_type = draft -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_normal.inst.cfg index f64cd2cf1a..f74db21b91 100644 --- a/resources/quality/ultimaker2_plus/um2p_cpep_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_cpep_0.8_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_cpe_plus_ultimaker2_plus_0.8_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg index e136dad3b8..b8924423e2 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_ultimaker2_plus_0.25_mm weight = 1 quality_type = high -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_normal.inst.cfg index e963f8b438..323fa51a8d 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.25_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_ultimaker2_plus_0.25_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg index 134c1d033b..7628cd0be1 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_normal.inst.cfg index 04469385a0..a97a4c4e8f 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.4_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg index 20662c3e21..0cd7bbdbfd 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_ultimaker2_plus_0.6_mm weight = -1 quality_type = fast -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_normal.inst.cfg index b8cd3a1a3a..d5e0025913 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.6_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_ultimaker2_plus_0.6_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg index c615480917..f653a90f95 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_ultimaker2_plus_0.8_mm weight = -2 quality_type = draft -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_normal.inst.cfg index af20b564e4..144c8e74ac 100644 --- a/resources/quality/ultimaker2_plus/um2p_nylon_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_nylon_0.8_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_ultimaker2_plus_0.8_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg index 0498e5a81f..d38f2af4d3 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.25_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pc_ultimaker2_plus_0.25_mm weight = 1 quality_type = high -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.25_normal.inst.cfg index e4a08a5bb1..aa176f67a2 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.25_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pc_ultimaker2_plus_0.25_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg index c3d3626380..0408ead05e 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.4_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pc_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.4_normal.inst.cfg index 705dfb175a..ed430f10c0 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.4_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pc_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg index 5eb29eba57..b6c3a66c0b 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.6_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pc_ultimaker2_plus_0.6_mm weight = -1 quality_type = fast -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.6_normal.inst.cfg index 82a3e56013..0dfb533f56 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.6_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pc_ultimaker2_plus_0.6_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg index 890a08608c..3eee23006f 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.8_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pc_ultimaker2_plus_0.8_mm weight = -2 quality_type = draft -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_pc_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pc_0.8_normal.inst.cfg index 0456166d70..40da82e6bf 100644 --- a/resources/quality/ultimaker2_plus/um2p_pc_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pc_0.8_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pc_ultimaker2_plus_0.8_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg index d471e39853..6f4e366209 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.4_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pp_ultimaker2_plus_0.4_mm weight = -1 quality_type = fast -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg index e313b04ac2..c7224f475f 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.4_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pp_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg index 901a23ba08..203db9883e 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.6_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pp_ultimaker2_plus_0.6_mm weight = -2 quality_type = draft -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg index 3adebf1fc6..64dfbc9281 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.6_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pp_ultimaker2_plus_0.6_mm weight = -1 quality_type = fast -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg index 55567d2c4e..f6d56242dd 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_draft.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pp_ultimaker2_plus_0.8_mm weight = -2 quality_type = fast -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg b/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg index 8653faea13..ecb3e3da4a 100644 --- a/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_pp_0.8_verydraft.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_pp_ultimaker2_plus_0.8_mm weight = -3 quality_type = draft -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg b/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg index bbb4002d0b..b1cb56a543 100644 --- a/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_tpu_0.25_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_tpu_ultimaker2_plus_0.25_mm weight = 1 quality_type = high -setting_version = 3 +setting_version = 4 [values] adhesion_type = brim diff --git a/resources/quality/ultimaker2_plus/um2p_tpu_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus/um2p_tpu_0.4_normal.inst.cfg index 22fe2566f9..80cc92fe64 100644 --- a/resources/quality/ultimaker2_plus/um2p_tpu_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_tpu_0.4_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_tpu_ultimaker2_plus_0.4_mm weight = 0 quality_type = normal -setting_version = 3 +setting_version = 4 [values] adhesion_type = brim diff --git a/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg b/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg index 12a8f6521b..9796adada9 100644 --- a/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus/um2p_tpu_0.6_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_tpu_ultimaker2_plus_0.6_mm weight = -1 quality_type = fast -setting_version = 3 +setting_version = 4 [values] adhesion_type = brim diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg index ea95ac161b..13dca72c27 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_abs_ultimaker3_AA_0.4 weight = -2 -setting_version = 3 +setting_version = 4 [values] machine_nozzle_cool_down_speed = 0.85 diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg index 6db50fe270..10fa10c726 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_abs_ultimaker3_AA_0.4 weight = -1 -setting_version = 3 +setting_version = 4 [values] cool_min_speed = 7 diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg index 305de52ea6..02f2327468 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_abs_ultimaker3_AA_0.4 weight = 1 -setting_version = 3 +setting_version = 4 [values] cool_min_speed = 12 diff --git a/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg index fc23b25e3e..fccb6a35f5 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_ABS_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_abs_ultimaker3_AA_0.4 weight = 0 -setting_version = 3 +setting_version = 4 [values] machine_nozzle_cool_down_speed = 0.85 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg index bbbfd3b6a1..dfdb1ca8a7 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_cpe_plus_ultimaker3_AA_0.4 weight = -2 -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg index f39da90dc6..93b371a627 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_cpe_plus_ultimaker3_AA_0.4 weight = -1 -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg index 6641e0f4ed..93647f9f44 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_cpe_plus_ultimaker3_AA_0.4 weight = 1 -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg index c22d6eda31..2886ef2229 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPEP_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_cpe_plus_ultimaker3_AA_0.4 weight = 0 -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg index 96065673d6..5e3daf5a9e 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_cpe_ultimaker3_AA_0.4 weight = -2 -setting_version = 3 +setting_version = 4 [values] material_print_temperature = =default_material_print_temperature + 10 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg index e866877b0e..e48f83994d 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_cpe_ultimaker3_AA_0.4 weight = -1 -setting_version = 3 +setting_version = 4 [values] cool_min_speed = 7 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg index 971c222ef7..fd0a8cd18d 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_cpe_ultimaker3_AA_0.4 weight = 1 -setting_version = 3 +setting_version = 4 [values] cool_min_speed = 12 diff --git a/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg index d77b673721..56c997eb15 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_CPE_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_cpe_ultimaker3_AA_0.4 weight = 0 -setting_version = 3 +setting_version = 4 [values] machine_nozzle_cool_down_speed = 0.85 diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg index 5f3680c391..15283a3242 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_nylon_ultimaker3_AA_0.4 weight = -2 -setting_version = 3 +setting_version = 4 [values] adhesion_type = brim diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg index c5dc2c37f9..c063725e82 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_nylon_ultimaker3_AA_0.4 weight = -1 -setting_version = 3 +setting_version = 4 [values] adhesion_type = brim diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg index cb39a20918..218e1e50e1 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_nylon_ultimaker3_AA_0.4 weight = 1 -setting_version = 3 +setting_version = 4 [values] adhesion_type = brim diff --git a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg index 0e3467d901..3b96939ac9 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_Nylon_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_nylon_ultimaker3_AA_0.4 weight = 0 -setting_version = 3 +setting_version = 4 [values] adhesion_type = brim diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg index 2a2e7a1010..f8b4dd067c 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_pc_ultimaker3_AA_0.4 weight = -2 -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg index 8887895e46..1db3935180 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_pc_ultimaker3_AA_0.4 weight = -1 -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg index 07c372f9dc..0f9e9b15b0 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pc_ultimaker3_AA_0.4 weight = 1 -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg index 9a7daeed93..26a3136069 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PC_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pc_ultimaker3_AA_0.4 weight = 0 -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg index f2d76753b0..8c6e7bd782 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_pla_ultimaker3_AA_0.4 weight = -2 -setting_version = 3 +setting_version = 4 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg index b78d1598cd..db441015a8 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_pla_ultimaker3_AA_0.4 weight = -1 -setting_version = 3 +setting_version = 4 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg index 0fa518546f..61807490e9 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high material = generic_pla_ultimaker3_AA_0.4 weight = 1 -setting_version = 3 +setting_version = 4 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg index ca4a3bf27b..d7254b854d 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PLA_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pla_ultimaker3_AA_0.4 weight = 0 -setting_version = 3 +setting_version = 4 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg index 7be9425947..3fe25e563a 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_pp_ultimaker3_AA_0.4 weight = -2 -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg index 132a4e6303..4c92c7a14b 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_pp_ultimaker3_AA_0.4 weight = -1 -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg index 780ad8b2a1..db55956497 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PP_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_pp_ultimaker3_AA_0.4 weight = 0 -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg index f1825240cf..6116dc1bda 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_tpu_ultimaker3_AA_0.4 weight = -2 -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg index d223a83554..1da5d0fec8 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast material = generic_tpu_ultimaker3_AA_0.4 weight = -1 -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg index c0b5065f53..1938e1c26c 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_TPU_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal material = generic_tpu_ultimaker3_AA_0.4 weight = 0 -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg index b55678643d..7c16e6e8ee 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_ABS_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_abs_ultimaker3_AA_0.8 weight = -2 -setting_version = 3 +setting_version = 4 [values] line_width = =machine_nozzle_size * 0.875 diff --git a/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg index 3c21c74d8e..728b4c868f 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_ABS_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft material = generic_abs_ultimaker3_AA_0.8 weight = -4 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.4 diff --git a/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg index 9c4352043b..98ae70c568 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_ABS_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft material = generic_abs_ultimaker3_AA_0.8 weight = -3 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.3 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg index 795d224a65..0a05e9aafd 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_cpe_plus_ultimaker3_AA_0.8 weight = -2 -setting_version = 3 +setting_version = 4 [values] brim_width = 14 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg index 58723d05fe..82efb6a57b 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft material = generic_cpe_plus_ultimaker3_AA_0.8 weight = -4 -setting_version = 3 +setting_version = 4 [values] brim_width = 14 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg index e125ec9f0b..ff375b6e49 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft material = generic_cpe_plus_ultimaker3_AA_0.8 weight = -3 -setting_version = 3 +setting_version = 4 [values] brim_width = 14 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg index 3c303fc9c2..b4d7035b8d 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_cpe_ultimaker3_AA_0.8 weight = -2 -setting_version = 3 +setting_version = 4 [values] brim_width = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg index 6525e0452f..b5ccc38534 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft material = generic_cpe_ultimaker3_AA_0.8 weight = -4 -setting_version = 3 +setting_version = 4 [values] brim_width = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg index 195598e0f9..33ae223526 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_CPE_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft material = generic_cpe_ultimaker3_AA_0.8 weight = -3 -setting_version = 3 +setting_version = 4 [values] brim_width = 15 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg index fec8232b59..43ec77453c 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_nylon_ultimaker3_AA_0.8 weight = -2 -setting_version = 3 +setting_version = 4 [values] brim_width = 5.6 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg index 8a0004309d..5b8626e8c2 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft material = generic_nylon_ultimaker3_AA_0.8 weight = -4 -setting_version = 3 +setting_version = 4 [values] brim_width = 5.6 diff --git a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg index d3729b22d9..0b115ada4b 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_Nylon_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft material = generic_nylon_ultimaker3_AA_0.8 weight = -3 -setting_version = 3 +setting_version = 4 [values] brim_width = 5.6 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg index dfc3d3ce72..0b666d2e0b 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_pc_ultimaker3_AA_0.8 weight = 0 -setting_version = 3 +setting_version = 4 [values] brim_width = 14 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg index 3f9864b72e..de212df4af 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft material = generic_pc_ultimaker3_AA_0.8 weight = -2 -setting_version = 3 +setting_version = 4 [values] brim_width = 14 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg index 2fe51a392e..3e0c669eeb 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PC_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft material = generic_pc_ultimaker3_AA_0.8 weight = -1 -setting_version = 3 +setting_version = 4 [values] brim_width = 14 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg index eebe1a8e38..3c4303e017 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_pla_ultimaker3_AA_0.8 weight = -2 -setting_version = 3 +setting_version = 4 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg index c35bf05908..5509f42aae 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft material = generic_pla_ultimaker3_AA_0.8 weight = -4 -setting_version = 3 +setting_version = 4 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg index 984a825085..645c3fe3ef 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PLA_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft material = generic_pla_ultimaker3_AA_0.8 weight = -3 -setting_version = 3 +setting_version = 4 [values] cool_fan_full_at_height = =layer_height_0 + 2 * layer_height diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg index 0eb264a9db..f46c3cfb8f 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_pp_ultimaker3_AA_0.8 weight = -2 -setting_version = 3 +setting_version = 4 [values] brim_width = 25 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg index cb12f4aedc..ac8087d0c4 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft material = generic_pp_ultimaker3_AA_0.8 weight = -4 -setting_version = 3 +setting_version = 4 [values] brim_width = 25 diff --git a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg index 3ceb547378..daf60f24e6 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PP_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft material = generic_pp_ultimaker3_AA_0.8 weight = -3 -setting_version = 3 +setting_version = 4 [values] brim_width = 25 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg index 0514a22b95..726ab82867 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft material = generic_tpu_ultimaker3_AA_0.8 weight = -2 -setting_version = 3 +setting_version = 4 [values] brim_width = 8.75 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg index 805f12ef81..269725daa9 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft material = generic_tpu_ultimaker3_AA_0.8 weight = -4 -setting_version = 3 +setting_version = 4 [values] brim_width = 8.75 diff --git a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg index 3d1f29ee21..dd1737433a 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_TPU_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft material = generic_tpu_ultimaker3_AA_0.8 weight = -3 -setting_version = 3 +setting_version = 4 [values] brim_width = 8.75 diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg index ee57d2b177..c87f744932 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft weight = -2 material = generic_pva_ultimaker3_BB_0.4 -setting_version = 3 +setting_version = 4 [values] material_print_temperature = =default_material_print_temperature + 10 diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg index 90280ed2ee..23fa6d61d8 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Fast_Print.inst.cfg @@ -8,7 +8,7 @@ weight = -1 type = quality quality_type = fast material = generic_pva_ultimaker3_BB_0.4 -setting_version = 3 +setting_version = 4 [values] material_print_temperature = =default_material_print_temperature + 5 diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg index b8d7dd3ada..3ba82d65c6 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_High_Quality.inst.cfg @@ -8,7 +8,7 @@ weight = 1 type = quality quality_type = high material = generic_pva_ultimaker3_BB_0.4 -setting_version = 3 +setting_version = 4 [values] material_standby_temperature = 100 diff --git a/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg index 32591a38b7..a709d5613b 100644 --- a/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.4_PVA_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ weight = 0 type = quality quality_type = normal material = generic_pva_ultimaker3_BB_0.4 -setting_version = 3 +setting_version = 4 [values] material_standby_temperature = 100 diff --git a/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg index a46218f31f..4cb296b4c7 100644 --- a/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PVA_Draft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft weight = -2 material = generic_pva_ultimaker3_BB_0.8 -setting_version = 3 +setting_version = 4 [values] material_print_temperature = =default_material_print_temperature + 5 diff --git a/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg index 4e2f13af07..5249517844 100644 --- a/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PVA_Superdraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft weight = -4 material = generic_pva_ultimaker3_BB_0.8 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.4 diff --git a/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg index c2d66f59bb..c34e19b134 100644 --- a/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_bb0.8_PVA_Verydraft_Print.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft weight = -3 material = generic_pva_ultimaker3_BB_0.8 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.3 diff --git a/resources/quality/ultimaker3/um3_global_Draft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Draft_Quality.inst.cfg index f9976d0fbc..b56775a987 100644 --- a/resources/quality/ultimaker3/um3_global_Draft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Draft_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = draft global_quality = True weight = -2 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.2 diff --git a/resources/quality/ultimaker3/um3_global_Fast_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Fast_Quality.inst.cfg index 0a30227322..12f1183364 100644 --- a/resources/quality/ultimaker3/um3_global_Fast_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Fast_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = fast global_quality = True weight = -1 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.15 diff --git a/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg index a7028590af..cf6e6c45e0 100644 --- a/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_High_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = high global_quality = True weight = 0 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.06 diff --git a/resources/quality/ultimaker3/um3_global_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Normal_Quality.inst.cfg index c8bf165b55..fef2328923 100644 --- a/resources/quality/ultimaker3/um3_global_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Normal_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = normal global_quality = True weight = 0 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.1 diff --git a/resources/quality/ultimaker3/um3_global_Superdraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Superdraft_Quality.inst.cfg index f3ab433e92..be9acd4394 100644 --- a/resources/quality/ultimaker3/um3_global_Superdraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Superdraft_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = superdraft global_quality = True weight = -4 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.4 diff --git a/resources/quality/ultimaker3/um3_global_Verydraft_Quality.inst.cfg b/resources/quality/ultimaker3/um3_global_Verydraft_Quality.inst.cfg index 46199fcece..e2c828fc2d 100644 --- a/resources/quality/ultimaker3/um3_global_Verydraft_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_global_Verydraft_Quality.inst.cfg @@ -8,7 +8,7 @@ type = quality quality_type = verydraft global_quality = True weight = -3 -setting_version = 3 +setting_version = 4 [values] layer_height = 0.3 diff --git a/resources/variants/cartesio_0.25.inst.cfg b/resources/variants/cartesio_0.25.inst.cfg index a266b10b24..0e082e5afa 100644 --- a/resources/variants/cartesio_0.25.inst.cfg +++ b/resources/variants/cartesio_0.25.inst.cfg @@ -6,7 +6,7 @@ definition = cartesio [metadata] author = Cartesio type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.25 diff --git a/resources/variants/cartesio_0.4.inst.cfg b/resources/variants/cartesio_0.4.inst.cfg index fe52e83622..27d07c0328 100644 --- a/resources/variants/cartesio_0.4.inst.cfg +++ b/resources/variants/cartesio_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = cartesio [metadata] author = Cartesio type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/cartesio_0.8.inst.cfg b/resources/variants/cartesio_0.8.inst.cfg index 8a260c1e17..e96c78d922 100644 --- a/resources/variants/cartesio_0.8.inst.cfg +++ b/resources/variants/cartesio_0.8.inst.cfg @@ -6,7 +6,7 @@ definition = cartesio [metadata] author = Cartesio type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.8 diff --git a/resources/variants/fabtotum_hyb35.inst.cfg b/resources/variants/fabtotum_hyb35.inst.cfg index 9d46205941..01e94728da 100644 --- a/resources/variants/fabtotum_hyb35.inst.cfg +++ b/resources/variants/fabtotum_hyb35.inst.cfg @@ -6,7 +6,7 @@ definition = fabtotum [metadata] author = FABtotum type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.35 diff --git a/resources/variants/fabtotum_lite04.inst.cfg b/resources/variants/fabtotum_lite04.inst.cfg index 9209b2fffc..ee270a9ead 100644 --- a/resources/variants/fabtotum_lite04.inst.cfg +++ b/resources/variants/fabtotum_lite04.inst.cfg @@ -6,7 +6,7 @@ definition = fabtotum [metadata] author = FABtotum type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/fabtotum_lite06.inst.cfg b/resources/variants/fabtotum_lite06.inst.cfg index 8c03f33794..49722a50d1 100644 --- a/resources/variants/fabtotum_lite06.inst.cfg +++ b/resources/variants/fabtotum_lite06.inst.cfg @@ -6,7 +6,7 @@ definition = fabtotum [metadata] author = FABtotum type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.6 diff --git a/resources/variants/fabtotum_pro02.inst.cfg b/resources/variants/fabtotum_pro02.inst.cfg index 84e1583701..376588fe71 100644 --- a/resources/variants/fabtotum_pro02.inst.cfg +++ b/resources/variants/fabtotum_pro02.inst.cfg @@ -6,7 +6,7 @@ definition = fabtotum [metadata] author = FABtotum type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.2 diff --git a/resources/variants/fabtotum_pro04.inst.cfg b/resources/variants/fabtotum_pro04.inst.cfg index 3e136e951a..54294c572c 100644 --- a/resources/variants/fabtotum_pro04.inst.cfg +++ b/resources/variants/fabtotum_pro04.inst.cfg @@ -6,7 +6,7 @@ definition = fabtotum [metadata] author = FABtotum type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/fabtotum_pro06.inst.cfg b/resources/variants/fabtotum_pro06.inst.cfg index 7aa789fd17..f1055b6ade 100644 --- a/resources/variants/fabtotum_pro06.inst.cfg +++ b/resources/variants/fabtotum_pro06.inst.cfg @@ -6,7 +6,7 @@ definition = fabtotum [metadata] author = FABtotum type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.6 diff --git a/resources/variants/fabtotum_pro08.inst.cfg b/resources/variants/fabtotum_pro08.inst.cfg index f1b9d195e7..ef7eb172be 100644 --- a/resources/variants/fabtotum_pro08.inst.cfg +++ b/resources/variants/fabtotum_pro08.inst.cfg @@ -6,7 +6,7 @@ definition = fabtotum [metadata] author = FABtotum type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.8 diff --git a/resources/variants/imade3d_jellybox_0.4.inst.cfg b/resources/variants/imade3d_jellybox_0.4.inst.cfg index e487b6abdc..ce9e82e59a 100644 --- a/resources/variants/imade3d_jellybox_0.4.inst.cfg +++ b/resources/variants/imade3d_jellybox_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = imade3d_jellybox [metadata] author = IMADE3D type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/imade3d_jellybox_0.4_2-fans.inst.cfg b/resources/variants/imade3d_jellybox_0.4_2-fans.inst.cfg index 2db00fa0e3..60f9793b2a 100644 --- a/resources/variants/imade3d_jellybox_0.4_2-fans.inst.cfg +++ b/resources/variants/imade3d_jellybox_0.4_2-fans.inst.cfg @@ -6,7 +6,7 @@ definition = imade3d_jellybox [metadata] author = IMADE3D type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/ultimaker2_0.25.inst.cfg b/resources/variants/ultimaker2_0.25.inst.cfg index 1637f0ceaa..04084867dd 100644 --- a/resources/variants/ultimaker2_0.25.inst.cfg +++ b/resources/variants/ultimaker2_0.25.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2 [metadata] author = Ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.25 diff --git a/resources/variants/ultimaker2_0.4.inst.cfg b/resources/variants/ultimaker2_0.4.inst.cfg index b074214138..f21d85e258 100644 --- a/resources/variants/ultimaker2_0.4.inst.cfg +++ b/resources/variants/ultimaker2_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2 [metadata] author = Ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/ultimaker2_0.6.inst.cfg b/resources/variants/ultimaker2_0.6.inst.cfg index 6bd3b06d22..04128cc297 100644 --- a/resources/variants/ultimaker2_0.6.inst.cfg +++ b/resources/variants/ultimaker2_0.6.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2 [metadata] author = Ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.6 diff --git a/resources/variants/ultimaker2_0.8.inst.cfg b/resources/variants/ultimaker2_0.8.inst.cfg index 66d05219b1..400069d60b 100644 --- a/resources/variants/ultimaker2_0.8.inst.cfg +++ b/resources/variants/ultimaker2_0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2 [metadata] author = Ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.8 diff --git a/resources/variants/ultimaker2_extended_0.25.inst.cfg b/resources/variants/ultimaker2_extended_0.25.inst.cfg index 6496025820..bdff9a5795 100644 --- a/resources/variants/ultimaker2_extended_0.25.inst.cfg +++ b/resources/variants/ultimaker2_extended_0.25.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended [metadata] author = Ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.25 diff --git a/resources/variants/ultimaker2_extended_0.4.inst.cfg b/resources/variants/ultimaker2_extended_0.4.inst.cfg index 47be42efd7..2af9a75024 100644 --- a/resources/variants/ultimaker2_extended_0.4.inst.cfg +++ b/resources/variants/ultimaker2_extended_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended [metadata] author = Ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/ultimaker2_extended_0.6.inst.cfg b/resources/variants/ultimaker2_extended_0.6.inst.cfg index cac05731e8..e0753f1c28 100644 --- a/resources/variants/ultimaker2_extended_0.6.inst.cfg +++ b/resources/variants/ultimaker2_extended_0.6.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended [metadata] author = Ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.6 diff --git a/resources/variants/ultimaker2_extended_0.8.inst.cfg b/resources/variants/ultimaker2_extended_0.8.inst.cfg index 5baaf53163..43c033b799 100644 --- a/resources/variants/ultimaker2_extended_0.8.inst.cfg +++ b/resources/variants/ultimaker2_extended_0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended [metadata] author = Ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.8 diff --git a/resources/variants/ultimaker2_extended_plus_0.25.inst.cfg b/resources/variants/ultimaker2_extended_plus_0.25.inst.cfg index 173e69d893..7f1bff4b0c 100644 --- a/resources/variants/ultimaker2_extended_plus_0.25.inst.cfg +++ b/resources/variants/ultimaker2_extended_plus_0.25.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended_plus [metadata] author = Ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.25 diff --git a/resources/variants/ultimaker2_extended_plus_0.4.inst.cfg b/resources/variants/ultimaker2_extended_plus_0.4.inst.cfg index 88e3d291d6..f6747d059d 100644 --- a/resources/variants/ultimaker2_extended_plus_0.4.inst.cfg +++ b/resources/variants/ultimaker2_extended_plus_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended_plus [metadata] author = Ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/ultimaker2_extended_plus_0.6.inst.cfg b/resources/variants/ultimaker2_extended_plus_0.6.inst.cfg index 54b6b90b62..706e4b8aa6 100644 --- a/resources/variants/ultimaker2_extended_plus_0.6.inst.cfg +++ b/resources/variants/ultimaker2_extended_plus_0.6.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended_plus [metadata] author = Ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.6 diff --git a/resources/variants/ultimaker2_extended_plus_0.8.inst.cfg b/resources/variants/ultimaker2_extended_plus_0.8.inst.cfg index 5616f01699..287c3155b8 100644 --- a/resources/variants/ultimaker2_extended_plus_0.8.inst.cfg +++ b/resources/variants/ultimaker2_extended_plus_0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_extended_plus [metadata] author = Ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.8 diff --git a/resources/variants/ultimaker2_plus_0.25.inst.cfg b/resources/variants/ultimaker2_plus_0.25.inst.cfg index 4394090fa4..1d4617c86b 100644 --- a/resources/variants/ultimaker2_plus_0.25.inst.cfg +++ b/resources/variants/ultimaker2_plus_0.25.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] author = Ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] coasting_min_volume = 0.17 diff --git a/resources/variants/ultimaker2_plus_0.4.inst.cfg b/resources/variants/ultimaker2_plus_0.4.inst.cfg index ab3dd807ab..75a665ad95 100644 --- a/resources/variants/ultimaker2_plus_0.4.inst.cfg +++ b/resources/variants/ultimaker2_plus_0.4.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] author = Ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.4 diff --git a/resources/variants/ultimaker2_plus_0.6.inst.cfg b/resources/variants/ultimaker2_plus_0.6.inst.cfg index c3324bd7a8..60bbbaa049 100644 --- a/resources/variants/ultimaker2_plus_0.6.inst.cfg +++ b/resources/variants/ultimaker2_plus_0.6.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] author = Ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.6 diff --git a/resources/variants/ultimaker2_plus_0.8.inst.cfg b/resources/variants/ultimaker2_plus_0.8.inst.cfg index d0cd2424bd..339b320af3 100644 --- a/resources/variants/ultimaker2_plus_0.8.inst.cfg +++ b/resources/variants/ultimaker2_plus_0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker2_plus [metadata] author = Ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] machine_nozzle_size = 0.8 diff --git a/resources/variants/ultimaker3_aa0.8.inst.cfg b/resources/variants/ultimaker3_aa0.8.inst.cfg index 980cfd1a59..de7dfcc364 100644 --- a/resources/variants/ultimaker3_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_aa0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3 [metadata] author = ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/variants/ultimaker3_aa04.inst.cfg b/resources/variants/ultimaker3_aa04.inst.cfg index 01299f0853..289ae185b0 100644 --- a/resources/variants/ultimaker3_aa04.inst.cfg +++ b/resources/variants/ultimaker3_aa04.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3 [metadata] author = ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] brim_width = 7 diff --git a/resources/variants/ultimaker3_bb0.8.inst.cfg b/resources/variants/ultimaker3_bb0.8.inst.cfg index 24c175c2b8..2cb3103dcf 100644 --- a/resources/variants/ultimaker3_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_bb0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3 [metadata] author = ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/variants/ultimaker3_bb04.inst.cfg b/resources/variants/ultimaker3_bb04.inst.cfg index 39d33b10f8..5dc0b2832a 100644 --- a/resources/variants/ultimaker3_bb04.inst.cfg +++ b/resources/variants/ultimaker3_bb04.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3 [metadata] author = ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) diff --git a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg index 6bd491032e..b2ad86ff01 100644 --- a/resources/variants/ultimaker3_extended_aa0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_aa0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3_extended [metadata] author = ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/variants/ultimaker3_extended_aa04.inst.cfg b/resources/variants/ultimaker3_extended_aa04.inst.cfg index 15c53b5930..fdea4de08c 100644 --- a/resources/variants/ultimaker3_extended_aa04.inst.cfg +++ b/resources/variants/ultimaker3_extended_aa04.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3_extended [metadata] author = ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] brim_width = 7 diff --git a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg index e75545b7f9..6ab16c4f10 100644 --- a/resources/variants/ultimaker3_extended_bb0.8.inst.cfg +++ b/resources/variants/ultimaker3_extended_bb0.8.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3_extended [metadata] author = ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] acceleration_enabled = True diff --git a/resources/variants/ultimaker3_extended_bb04.inst.cfg b/resources/variants/ultimaker3_extended_bb04.inst.cfg index a62480bd75..ee2f138754 100644 --- a/resources/variants/ultimaker3_extended_bb04.inst.cfg +++ b/resources/variants/ultimaker3_extended_bb04.inst.cfg @@ -6,7 +6,7 @@ definition = ultimaker3_extended [metadata] author = ultimaker type = variant -setting_version = 3 +setting_version = 4 [values] acceleration_support = =math.ceil(acceleration_print * 2000 / 4000) From 0096fe0de3960238be4de56699e429e9b327ed21 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 30 Oct 2017 12:54:21 +0100 Subject: [PATCH 169/218] Fix project loading to handle "Not Supported" quality profiles CURA-4451 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 28 ++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 5b1e084262..28d12bf2d5 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -21,6 +21,8 @@ from cura.Settings.CuraStackBuilder import CuraStackBuilder from cura.Settings.ExtruderManager import ExtruderManager from cura.Settings.ExtruderStack import ExtruderStack from cura.Settings.GlobalStack import GlobalStack +from cura.Settings.CuraContainerStack import _ContainerIndexes +from cura.QualityManager import QualityManager from configparser import ConfigParser import zipfile @@ -757,13 +759,37 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._container_registry.removeContainer(container.getId()) return + # Check quality profiles to make sure that if one stack has the "not supported" quality profile, + # all others should have the same. + # + # This block code tries to fix the following problems in Cura 3.0 and earlier: + # 1. The upgrade script can rename all "Not Supported" quality profiles to "empty_quality", but it cannot fix + # the problem that the global stack the extruder stacks may have different quality profiles. The code + # below loops over all stacks and make sure that if there is one stack with "Not Supported" profile, the + # rest should also use the "Not Supported" profile. + # 2. In earlier versions (at least 2.7 and 3.0), a wrong quality profile could be assigned to a stack. For + # example, a UM3 can have a BB 0.8 variant with "aa04_pla_fast" quality profile enabled. To fix this, + # in the code below we also check the actual available quality profiles for the machine. + # + has_not_supported = False + for stack in [global_stack] + extruder_stacks: + if stack.quality.getId() == "empty_quality": + has_not_supported = True + break + if not has_not_supported: + available_quality = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_stack, extruder_stacks) + has_not_supported = not available_quality + if has_not_supported: + empty_quality_container = self._container_registry.findInstanceContainers(id = "empty_quality")[0] + for stack in [global_stack] + extruder_stacks: + stack.replaceContainer(_ContainerIndexes.Quality, empty_quality_container) + # # Replacing the old containers if resolve is "new". # When resolve is "new", some containers will get renamed, so all the other containers that reference to those # MUST get updated too. # if self._resolve_strategies["machine"] == "new": - # A new machine was made, but it was serialized with the wrong user container. Fix that now. for container in user_instance_containers: # replacing the container ID for user instance containers for the extruders From 69cd00d1c730784e3e1c03db73e2b093b865a4f1 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 30 Oct 2017 13:13:54 +0100 Subject: [PATCH 170/218] Do not take into account the active materials when importing a quality profile CURA-4451 When importing a quality profile, it should not fail/succeed based on which materials are activated at the moment. The imported quality profile will be available when the user switches to a compatible settings. --- cura/Settings/CuraContainerRegistry.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cura/Settings/CuraContainerRegistry.py b/cura/Settings/CuraContainerRegistry.py index 12f27e8156..e623bd860b 100644 --- a/cura/Settings/CuraContainerRegistry.py +++ b/cura/Settings/CuraContainerRegistry.py @@ -303,6 +303,9 @@ class CuraContainerRegistry(ContainerRegistry): if "material" in quality_type_criteria: materials = ContainerRegistry.getInstance().findInstanceContainers(id = quality_type_criteria["material"]) del quality_type_criteria["material"] + # Do not filter quality containers here with materials because we are trying to import a profile, so it should + # NOT be restricted by the active materials on the current machine. + materials = None # Check to make sure the imported profile actually makes sense in context of the current configuration. # This prevents issues where importing a "draft" profile for a machine without "draft" qualities would report as From 22aaf64b637d44f108f66c01837b35880cd02c68 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Mon, 30 Oct 2017 14:42:46 +0100 Subject: [PATCH 171/218] Simplified version for validation need to show user agreement CURA-4501 --- cura/CuraApplication.py | 13 ++----------- plugins/UserAgreementPlugin/UserAgreement.py | 2 +- resources/qml/Cura.qml | 2 +- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 9da820c8a2..161660c0a4 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -306,7 +306,6 @@ class CuraApplication(QtApplication): preferences.addPreference("view/invert_zoom", False) self._need_to_show_user_agreement = not Preferences.getInstance().getValue("general/accepted_user_agreement") - self._has_user_agreement_shown = False for key in [ "dialog_load_path", # dialog_save_path is in LocalFileOutputDevicePlugin @@ -380,21 +379,13 @@ class CuraApplication(QtApplication): def _onEngineCreated(self): self._engine.addImageProvider("camera", CameraImageProvider.CameraImageProvider()) - onHasUserAgreementShownChanged = pyqtSignal() - @pyqtProperty(bool) def needToShowUserAgreement(self): return self._need_to_show_user_agreement - @pyqtProperty(bool, notify = onHasUserAgreementShownChanged) - def hasUserAgreementShown(self): - return self._has_user_agreement_shown - def setHasShownUserAgreement(self, shown = True): - emit_signal = self._has_user_agreement_shown != shown - self._has_user_agreement_shown = shown - if emit_signal: - self.onHasUserAgreementShownChanged.emit() + def setNeedToShowUserAgreement(self, set_value = True): + self._need_to_show_user_agreement = set_value ## The "Quit" button click event handler. @pyqtSlot() diff --git a/plugins/UserAgreementPlugin/UserAgreement.py b/plugins/UserAgreementPlugin/UserAgreement.py index 01788f7b57..f472b6fb13 100644 --- a/plugins/UserAgreementPlugin/UserAgreement.py +++ b/plugins/UserAgreementPlugin/UserAgreement.py @@ -42,7 +42,7 @@ class UserAgreement(QObject, Extension): Logger.log("i", "User did NOT agree to the user agreement") Preferences.getInstance().setValue("general/accepted_user_agreement", False) CuraApplication.getInstance().quit() - CuraApplication.getInstance().setHasShownUserAgreement(True) + CuraApplication.getInstance().setNeedToShowUserAgreement(False) def createUserAgreementWindow(self): path = QUrl.fromLocalFile(os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), "UserAgreement.qml")) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 8439d79d21..2fd19a8a03 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -897,7 +897,7 @@ UM.MainWindow } // check later if the user agreement dialog has been closed - if (CuraApplication.needToShowUserAgreement && !CuraApplication.hasUserAgreementShown) + if (CuraApplication.needToShowUserAgreement) { restart(); } From 7a9dda4022eb82acf4b100b46ad13839e396235d Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 30 Oct 2017 14:46:31 +0100 Subject: [PATCH 172/218] Disable jogging for UM3 NetworkPrinterOutputDevice does not have the API to control jogging --- plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py index 9dedc87df4..d8dd780ed5 100755 --- a/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/NetworkPrinterOutputDevice.py @@ -102,6 +102,8 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice): self._target_bed_temperature = 0 self._processing_preheat_requests = True + self._can_control_manually = False + self.setPriority(3) # Make sure the output device gets selected above local file output self.setName(key) self.setShortDescription(i18n_catalog.i18nc("@action:button Preceded by 'Ready to'.", "Print over network")) From 8dfba9a31841b349d27f5c8eb892ec179c03b0e9 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Mon, 30 Oct 2017 15:31:14 +0100 Subject: [PATCH 173/218] Stop SettingTextField from setting values when getting/losing the focus Fixes #2694 --- resources/qml/Settings/SettingTextField.qml | 22 +++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index 7c2317af63..cdc0588940 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -11,6 +11,14 @@ SettingItem id: base property var focusItem: input + property string textBeforeEdit + property bool textHasChanged + onFocusReceived: + { + textHasChanged = false; + textBeforeEdit = focusItem.text; + } + contents: Rectangle { id: control @@ -115,12 +123,22 @@ SettingItem Keys.onReleased: { - propertyProvider.setPropertyValue("value", text) + if (text != textBeforeEdit) + { + textHasChanged = true; + } + if (textHasChanged) + { + propertyProvider.setPropertyValue("value", text) + } } onEditingFinished: { - propertyProvider.setPropertyValue("value", text) + if (textHasChanged) + { + propertyProvider.setPropertyValue("value", text) + } } onActiveFocusChanged: From b45e44b3880c9cbc085eaa224fd620970f345966 Mon Sep 17 00:00:00 2001 From: Mark Date: Sat, 28 Oct 2017 15:43:01 +0200 Subject: [PATCH 174/218] Add useragreement screen on first run of Cura CURA-4501 --- cura/CuraApplication.py | 1 + plugins/UserAgreementPlugin/UserAgreement.py | 50 +++++++++++++++ plugins/UserAgreementPlugin/UserAgreement.qml | 61 +++++++++++++++++++ plugins/UserAgreementPlugin/__init__.py | 10 +++ plugins/UserAgreementPlugin/plugin.json | 8 +++ 5 files changed, 130 insertions(+) create mode 100644 plugins/UserAgreementPlugin/UserAgreement.py create mode 100644 plugins/UserAgreementPlugin/UserAgreement.qml create mode 100644 plugins/UserAgreementPlugin/__init__.py create mode 100644 plugins/UserAgreementPlugin/plugin.json diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 7d3e851b70..4a54f5b0ba 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -211,6 +211,7 @@ class CuraApplication(QtApplication): self.setRequiredPlugins([ "CuraEngineBackend", + "UserAgreement", "SolidView", "LayerView", "STLReader", diff --git a/plugins/UserAgreementPlugin/UserAgreement.py b/plugins/UserAgreementPlugin/UserAgreement.py new file mode 100644 index 0000000000..148b1adecc --- /dev/null +++ b/plugins/UserAgreementPlugin/UserAgreement.py @@ -0,0 +1,50 @@ +# Copyright (c) 2015 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from UM.Extension import Extension +from UM.Preferences import Preferences +from UM.Application import Application +from UM.PluginRegistry import PluginRegistry +from UM.Logger import Logger + +from PyQt5.QtQml import QQmlComponent, QQmlContext +from PyQt5.QtCore import QUrl, QObject, pyqtSlot + +import os.path + +class UserAgreement(Extension, QObject): + def __init__(self, parent = None): + QObject.__init__(self, parent) + Extension.__init__(self) + self._user_agreement_window = None + self._user_agreement_context = None + Application.getInstance().engineCreatedSignal.connect(self._onEngineCreated) + Preferences.getInstance().addPreference("general/accepted_user_agreement", False) + + def _onEngineCreated(self): + if not Preferences.getInstance().getValue("general/accepted_user_agreement"): + self.showUserAgreement() + + def showUserAgreement(self): + if not self._user_agreement_window: + self.createUserAgreementWindow() + + self._user_agreement_window.show() + + @pyqtSlot() + def disagreed(self): + Logger.log("i", "User did NOT Accept the license") + + @pyqtSlot() + def agreed(self): + Logger.log("i", "User Accepted the license") + Preferences.getInstance().setValue("general/accepted_user_agreement", True) + self._user_agreement_window.hide() + + def createUserAgreementWindow(self): + path = QUrl.fromLocalFile(os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), "UserAgreement.qml")) + + component = QQmlComponent(Application.getInstance()._engine, path) + self._user_agreement_context = QQmlContext(Application.getInstance()._engine.rootContext()) + self._user_agreement_context.setContextProperty("manager", self) + self._user_agreement_window = component.create(self._user_agreement_context) diff --git a/plugins/UserAgreementPlugin/UserAgreement.qml b/plugins/UserAgreementPlugin/UserAgreement.qml new file mode 100644 index 0000000000..20b4350acf --- /dev/null +++ b/plugins/UserAgreementPlugin/UserAgreement.qml @@ -0,0 +1,61 @@ +// Copyright (c) 2015 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.1 +import QtQuick.Controls 1.3 +import QtQuick.Layouts 1.1 +import QtQuick.Window 2.1 + +import UM 1.1 as UM + +UM.Dialog +{ + id: baseDialog + minimumWidth: Math.floor(UM.Theme.getSize("modal_window_minimum").width * 0.75) + minimumHeight: Math.floor(UM.Theme.getSize("modal_window_minimum").height * 0.5) + width: minimumWidth + height: minimumHeight + title: "User Agreement" + + TextArea + { + anchors.top: parent.top + width: parent.width + anchors.bottom: buttonRow.top + text: '

DISCLAIMER BY ULTIMAKER

+

PLEASE READ THIS DISCLAIMER CAREFULLY.

+

EXCEPT WHEN OTHERWISE STATED IN WRITING, ULTIMAKER PROVIDES ANY ULTIMAKER SOFTWARE OR THIRD PARTY SOFTWARE “AS IS” WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF ULTIMAKER SOFTWARE IS WITH YOU.

+

UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, IN NO EVENT WILL ULTIMAKER BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE ANY ULTIMAKER SOFTWARE OR THIRD PARTY SOFTWARE.

+ ' + readOnly: true; + textFormat: TextEdit.RichText + } + + Item + { + id: buttonRow + anchors.bottom: parent.bottom + width: parent.width + anchors.bottomMargin: UM.Theme.getSize("default_margin").height + + Button + { + anchors.right: parent.right + text: "I understand and agree" + onClicked: { + manager.agreed + } + } + + Button + { + anchors.left: parent.left + text: "I don't agree" + onClicked: { + manager.disagreed + } + } + + } + +} diff --git a/plugins/UserAgreementPlugin/__init__.py b/plugins/UserAgreementPlugin/__init__.py new file mode 100644 index 0000000000..635f8a6bc9 --- /dev/null +++ b/plugins/UserAgreementPlugin/__init__.py @@ -0,0 +1,10 @@ +# Copyright (c) 2015 Ultimaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. + +from . import UserAgreement + +def getMetaData(): + return {} + +def register(app): + return {"extension": UserAgreement.UserAgreement()} diff --git a/plugins/UserAgreementPlugin/plugin.json b/plugins/UserAgreementPlugin/plugin.json new file mode 100644 index 0000000000..aa5dbb1258 --- /dev/null +++ b/plugins/UserAgreementPlugin/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "UserAgreement", + "author": "Ultimaker B.V.", + "version": "1.0.0", + "description": "Ask the user once if he/she agrees with our license", + "api": 4, + "i18n-catalog": "cura" +} From 9aebb395ab60ae41a870ab71cbf71b7a4f7f4f93 Mon Sep 17 00:00:00 2001 From: Mark Date: Sat, 28 Oct 2017 20:29:26 +0200 Subject: [PATCH 175/218] Refactor and cleanup CURA-4501 --- plugins/UserAgreementPlugin/UserAgreement.py | 22 +++++++++++-------- plugins/UserAgreementPlugin/UserAgreement.qml | 15 ++++++++----- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/plugins/UserAgreementPlugin/UserAgreement.py b/plugins/UserAgreementPlugin/UserAgreement.py index 148b1adecc..c565399735 100644 --- a/plugins/UserAgreementPlugin/UserAgreement.py +++ b/plugins/UserAgreementPlugin/UserAgreement.py @@ -7,6 +7,8 @@ from UM.Application import Application from UM.PluginRegistry import PluginRegistry from UM.Logger import Logger +from cura.CuraApplication import CuraApplication + from PyQt5.QtQml import QQmlComponent, QQmlContext from PyQt5.QtCore import QUrl, QObject, pyqtSlot @@ -31,15 +33,17 @@ class UserAgreement(Extension, QObject): self._user_agreement_window.show() - @pyqtSlot() - def disagreed(self): - Logger.log("i", "User did NOT Accept the license") + @pyqtSlot(bool) + def didAgree(self, userChoice): + if userChoice: + Logger.log("i", 'User agreed to the user agreement') + Preferences.getInstance().setValue("general/accepted_user_agreement", True) + self._user_agreement_window.hide() + else: + Logger.log("i", 'User did NOT agree to the user agreement') + Preferences.getInstance().setValue("general/accepted_user_agreement", False) + CuraApplication.getInstance().quit() - @pyqtSlot() - def agreed(self): - Logger.log("i", "User Accepted the license") - Preferences.getInstance().setValue("general/accepted_user_agreement", True) - self._user_agreement_window.hide() def createUserAgreementWindow(self): path = QUrl.fromLocalFile(os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), "UserAgreement.qml")) @@ -47,4 +51,4 @@ class UserAgreement(Extension, QObject): component = QQmlComponent(Application.getInstance()._engine, path) self._user_agreement_context = QQmlContext(Application.getInstance()._engine.rootContext()) self._user_agreement_context.setContextProperty("manager", self) - self._user_agreement_window = component.create(self._user_agreement_context) + self._user_agreement_window = component.create(self._user_agreement_context) \ No newline at end of file diff --git a/plugins/UserAgreementPlugin/UserAgreement.qml b/plugins/UserAgreementPlugin/UserAgreement.qml index 20b4350acf..a2dd34e23f 100644 --- a/plugins/UserAgreementPlugin/UserAgreement.qml +++ b/plugins/UserAgreementPlugin/UserAgreement.qml @@ -1,12 +1,10 @@ // Copyright (c) 2015 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.1 +import QtQuick 2.2 import QtQuick.Controls 1.3 -import QtQuick.Layouts 1.1 -import QtQuick.Window 2.1 -import UM 1.1 as UM +import UM 1.3 as UM UM.Dialog { @@ -43,7 +41,7 @@ UM.Dialog anchors.right: parent.right text: "I understand and agree" onClicked: { - manager.agreed + manager.didAgree(true) } } @@ -52,10 +50,15 @@ UM.Dialog anchors.left: parent.left text: "I don't agree" onClicked: { - manager.disagreed + manager.didAgree(false) } } } + onClosing: { + manager.didAgree(false) + } + + } From ca8127c047205fd3ed6fc4d3bc214cfc5ed81151 Mon Sep 17 00:00:00 2001 From: Mark Date: Sun, 29 Oct 2017 09:04:23 +0100 Subject: [PATCH 176/218] Fixed code comments CURA-4501 --- plugins/UserAgreementPlugin/UserAgreement.py | 11 +++++------ plugins/UserAgreementPlugin/UserAgreement.qml | 14 +++++++------- plugins/UserAgreementPlugin/__init__.py | 2 +- resources/i18n/cura.pot | 15 +++++++++++++++ 4 files changed, 28 insertions(+), 14 deletions(-) diff --git a/plugins/UserAgreementPlugin/UserAgreement.py b/plugins/UserAgreementPlugin/UserAgreement.py index c565399735..5b6b266444 100644 --- a/plugins/UserAgreementPlugin/UserAgreement.py +++ b/plugins/UserAgreementPlugin/UserAgreement.py @@ -1,4 +1,4 @@ -# Copyright (c) 2015 Ultimaker B.V. +# Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from UM.Extension import Extension @@ -14,10 +14,9 @@ from PyQt5.QtCore import QUrl, QObject, pyqtSlot import os.path -class UserAgreement(Extension, QObject): +class UserAgreement(QObject, Extension): def __init__(self, parent = None): - QObject.__init__(self, parent) - Extension.__init__(self) + super(UserAgreement, self).__init__() self._user_agreement_window = None self._user_agreement_context = None Application.getInstance().engineCreatedSignal.connect(self._onEngineCreated) @@ -36,11 +35,11 @@ class UserAgreement(Extension, QObject): @pyqtSlot(bool) def didAgree(self, userChoice): if userChoice: - Logger.log("i", 'User agreed to the user agreement') + Logger.log('i', 'User agreed to the user agreement') Preferences.getInstance().setValue("general/accepted_user_agreement", True) self._user_agreement_window.hide() else: - Logger.log("i", 'User did NOT agree to the user agreement') + Logger.log('i', 'User did NOT agree to the user agreement') Preferences.getInstance().setValue("general/accepted_user_agreement", False) CuraApplication.getInstance().quit() diff --git a/plugins/UserAgreementPlugin/UserAgreement.qml b/plugins/UserAgreementPlugin/UserAgreement.qml index a2dd34e23f..52d35a4f44 100644 --- a/plugins/UserAgreementPlugin/UserAgreement.qml +++ b/plugins/UserAgreementPlugin/UserAgreement.qml @@ -1,8 +1,8 @@ -// Copyright (c) 2015 Ultimaker B.V. +// Copyright (c) 2017 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 -import QtQuick.Controls 1.3 +import QtQuick.Controls 1.4 import UM 1.3 as UM @@ -13,7 +13,7 @@ UM.Dialog minimumHeight: Math.floor(UM.Theme.getSize("modal_window_minimum").height * 0.5) width: minimumWidth height: minimumHeight - title: "User Agreement" + title: catalog.i18nc("@title:window", "User Agreement") TextArea { @@ -36,10 +36,12 @@ UM.Dialog width: parent.width anchors.bottomMargin: UM.Theme.getSize("default_margin").height + UM.I18nCatalog { id: catalog; name:"cura" } + Button { anchors.right: parent.right - text: "I understand and agree" + text: catalog.i18nc("@action:button", "I understand and agree") onClicked: { manager.didAgree(true) } @@ -48,7 +50,7 @@ UM.Dialog Button { anchors.left: parent.left - text: "I don't agree" + text: catalog.i18nc("@action:button", "I don't agree") onClicked: { manager.didAgree(false) } @@ -59,6 +61,4 @@ UM.Dialog onClosing: { manager.didAgree(false) } - - } diff --git a/plugins/UserAgreementPlugin/__init__.py b/plugins/UserAgreementPlugin/__init__.py index 635f8a6bc9..88cb151f9e 100644 --- a/plugins/UserAgreementPlugin/__init__.py +++ b/plugins/UserAgreementPlugin/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2015 Ultimaker B.V. +# Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from . import UserAgreement diff --git a/resources/i18n/cura.pot b/resources/i18n/cura.pot index fb4b9ed0d6..99ccd7a459 100644 --- a/resources/i18n/cura.pot +++ b/resources/i18n/cura.pot @@ -18,6 +18,21 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" +#Manually added for plugins/UserAgreementPlugin/UserAgreement.qml +msgctxt "@title:window" +msgid "User Agreement" +msgstr "" + +#Manually added for plugins/UserAgreementPlugin/UserAgreement.qml +msgctxt "@action:button" +msgid "I understand and agree" +msgstr "" + +#Manually added for plugins/UserAgreementPlugin/UserAgreement.qml +msgctxt "@action:button" +msgid "I don't agree" +msgstr "" + #: Manually added for plugins/UM3NetworkPrinting/PrinterInfoBlock.qml msgctxt "@label:status" msgid "Print aborted" From b5904cd2396e698dcd318c33d63db759bb111c35 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 30 Oct 2017 10:32:45 +0100 Subject: [PATCH 177/218] Fix code style CURA-4501 --- plugins/UserAgreementPlugin/UserAgreement.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/UserAgreementPlugin/UserAgreement.py b/plugins/UserAgreementPlugin/UserAgreement.py index 5b6b266444..cfad13dfae 100644 --- a/plugins/UserAgreementPlugin/UserAgreement.py +++ b/plugins/UserAgreementPlugin/UserAgreement.py @@ -35,11 +35,11 @@ class UserAgreement(QObject, Extension): @pyqtSlot(bool) def didAgree(self, userChoice): if userChoice: - Logger.log('i', 'User agreed to the user agreement') + Logger.log("i", "User agreed to the user agreement") Preferences.getInstance().setValue("general/accepted_user_agreement", True) self._user_agreement_window.hide() else: - Logger.log('i', 'User did NOT agree to the user agreement') + Logger.log("i", "User did NOT agree to the user agreement") Preferences.getInstance().setValue("general/accepted_user_agreement", False) CuraApplication.getInstance().quit() From aab601927c605b15c61beaf3c377ed19360f1d2b Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 30 Oct 2017 10:33:49 +0100 Subject: [PATCH 178/218] Show Add Machine dialog after User Agreement dialog is closed CURA-4501 --- cura/CuraApplication.py | 19 +++++++++++++++++++ plugins/UserAgreementPlugin/UserAgreement.py | 4 ++-- resources/qml/Cura.qml | 5 +++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 4a54f5b0ba..96d8ced7a6 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -300,6 +300,9 @@ class CuraApplication(QtApplication): preferences.addPreference("view/invert_zoom", False) + self._need_to_show_user_agreement = not Preferences.getInstance().getValue("general/accepted_user_agreement") + self._has_user_agreement_shown = False + for key in [ "dialog_load_path", # dialog_save_path is in LocalFileOutputDevicePlugin "dialog_profile_path", @@ -372,6 +375,22 @@ class CuraApplication(QtApplication): def _onEngineCreated(self): self._engine.addImageProvider("camera", CameraImageProvider.CameraImageProvider()) + onHasUserAgreementShownChanged = pyqtSignal() + + @pyqtProperty(bool) + def needToShowUserAgreement(self): + return self._need_to_show_user_agreement + + @pyqtProperty(bool, notify = onHasUserAgreementShownChanged) + def hasUserAgreementShown(self): + return self._has_user_agreement_shown + + def setHasShownUserAgreement(self, shown = True): + emit_signal = self._has_user_agreement_shown != shown + self._has_user_agreement_shown = shown + if emit_signal: + self.onHasUserAgreementShownChanged.emit() + ## The "Quit" button click event handler. @pyqtSlot() def closeApplication(self): diff --git a/plugins/UserAgreementPlugin/UserAgreement.py b/plugins/UserAgreementPlugin/UserAgreement.py index cfad13dfae..01788f7b57 100644 --- a/plugins/UserAgreementPlugin/UserAgreement.py +++ b/plugins/UserAgreementPlugin/UserAgreement.py @@ -42,7 +42,7 @@ class UserAgreement(QObject, Extension): Logger.log("i", "User did NOT agree to the user agreement") Preferences.getInstance().setValue("general/accepted_user_agreement", False) CuraApplication.getInstance().quit() - + CuraApplication.getInstance().setHasShownUserAgreement(True) def createUserAgreementWindow(self): path = QUrl.fromLocalFile(os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), "UserAgreement.qml")) @@ -50,4 +50,4 @@ class UserAgreement(QObject, Extension): component = QQmlComponent(Application.getInstance()._engine, path) self._user_agreement_context = QQmlContext(Application.getInstance()._engine.rootContext()) self._user_agreement_context.setContextProperty("manager", self) - self._user_agreement_window = component.create(self._user_agreement_context) \ No newline at end of file + self._user_agreement_window = component.create(self._user_agreement_context) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index cb0211f29f..8439d79d21 100755 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -894,6 +894,11 @@ UM.MainWindow if(!base.visible) { base.visible = true; + } + + // check later if the user agreement dialog has been closed + if (CuraApplication.needToShowUserAgreement && !CuraApplication.hasUserAgreementShown) + { restart(); } else if(Cura.MachineManager.activeMachineId == null || Cura.MachineManager.activeMachineId == "") From 7f02ddd6e9bab1e1db3230eaafc75ca484bf8883 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Mon, 30 Oct 2017 14:42:46 +0100 Subject: [PATCH 179/218] Simplified version for validation need to show user agreement CURA-4501 --- cura/CuraApplication.py | 13 ++----------- plugins/UserAgreementPlugin/UserAgreement.py | 2 +- resources/qml/Cura.qml | 2 +- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 96d8ced7a6..6c90e704e9 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -301,7 +301,6 @@ class CuraApplication(QtApplication): preferences.addPreference("view/invert_zoom", False) self._need_to_show_user_agreement = not Preferences.getInstance().getValue("general/accepted_user_agreement") - self._has_user_agreement_shown = False for key in [ "dialog_load_path", # dialog_save_path is in LocalFileOutputDevicePlugin @@ -375,21 +374,13 @@ class CuraApplication(QtApplication): def _onEngineCreated(self): self._engine.addImageProvider("camera", CameraImageProvider.CameraImageProvider()) - onHasUserAgreementShownChanged = pyqtSignal() - @pyqtProperty(bool) def needToShowUserAgreement(self): return self._need_to_show_user_agreement - @pyqtProperty(bool, notify = onHasUserAgreementShownChanged) - def hasUserAgreementShown(self): - return self._has_user_agreement_shown - def setHasShownUserAgreement(self, shown = True): - emit_signal = self._has_user_agreement_shown != shown - self._has_user_agreement_shown = shown - if emit_signal: - self.onHasUserAgreementShownChanged.emit() + def setNeedToShowUserAgreement(self, set_value = True): + self._need_to_show_user_agreement = set_value ## The "Quit" button click event handler. @pyqtSlot() diff --git a/plugins/UserAgreementPlugin/UserAgreement.py b/plugins/UserAgreementPlugin/UserAgreement.py index 01788f7b57..f472b6fb13 100644 --- a/plugins/UserAgreementPlugin/UserAgreement.py +++ b/plugins/UserAgreementPlugin/UserAgreement.py @@ -42,7 +42,7 @@ class UserAgreement(QObject, Extension): Logger.log("i", "User did NOT agree to the user agreement") Preferences.getInstance().setValue("general/accepted_user_agreement", False) CuraApplication.getInstance().quit() - CuraApplication.getInstance().setHasShownUserAgreement(True) + CuraApplication.getInstance().setNeedToShowUserAgreement(False) def createUserAgreementWindow(self): path = QUrl.fromLocalFile(os.path.join(PluginRegistry.getInstance().getPluginPath(self.getPluginId()), "UserAgreement.qml")) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 8439d79d21..2fd19a8a03 100755 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -897,7 +897,7 @@ UM.MainWindow } // check later if the user agreement dialog has been closed - if (CuraApplication.needToShowUserAgreement && !CuraApplication.hasUserAgreementShown) + if (CuraApplication.needToShowUserAgreement) { restart(); } From 93e746b1b3fcbe7f8c12e17908a475b86e67ae14 Mon Sep 17 00:00:00 2001 From: Ruben D Date: Tue, 31 Oct 2017 00:23:05 +0100 Subject: [PATCH 180/218] Warm up to layer_0 temperatures in start g-code Thanks to nounours2099 for the correction. Fixes #2631. --- resources/definitions/prusa_i3_mk2.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/prusa_i3_mk2.def.json b/resources/definitions/prusa_i3_mk2.def.json index ef3ef8159e..c8c2cc1363 100644 --- a/resources/definitions/prusa_i3_mk2.def.json +++ b/resources/definitions/prusa_i3_mk2.def.json @@ -5,7 +5,7 @@ "inherits": "fdmprinter", "metadata": { "visible": true, - "author": "Apsu", + "author": "Apsu, Nounours2099", "manufacturer": "Prusa Research", "file_formats": "text/x-gcode", "icon": "icon_ultimaker2", @@ -41,7 +41,7 @@ "machine_max_jerk_e": { "default_value": 2.5 }, "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, "machine_start_gcode": { - "default_value": "G21 ; set units to millimeters\nG90 ; use absolute positioning\nM82 ; absolute extrusion mode\nM104 S{material_print_temperature} ; set extruder temp\nM140 S{material_bed_temperature} ; set bed temp\nM190 S{material_bed_temperature} ; wait for bed temp\nM109 S{material_print_temperature} ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG92 E0.0 ; reset extruder distance position\nG1 Y-3.0 F1000.0 ; go outside print area\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E21.5 F1000.0 ; intro line\nG92 E0.0 ; reset extruder distance position" + "default_value": "G21 ; set units to millimeters\nG90 ; use absolute positioning\nM82 ; absolute extrusion mode\nM104 S{material_print_temperature_layer_0} ; set extruder temp\nM140 S{material_bed_temperature_layer_0} ; set bed temp\nM190 S{material_bed_temperature_layer_0} ; wait for bed temp\nM109 S{material_print_temperature_layer_0} ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG92 E0.0 ; reset extruder distance position\nG1 Y-3.0 F1000.0 ; go outside print area\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E21.5 F1000.0 ; intro line\nG92 E0.0 ; reset extruder distance position" }, "machine_end_gcode": { "default_value": "M104 S0 ; turn off extruder\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y210; home X axis and push Y forward\nM84 ; disable motors" From 67c11b8cdf257b6c523e45f70ed67b51ea0a32bd Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 31 Oct 2017 09:24:32 +0100 Subject: [PATCH 181/218] Fix code style CURA-4503 --- resources/qml/AskOpenAsProjectOrModelsDialog.qml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/resources/qml/AskOpenAsProjectOrModelsDialog.qml b/resources/qml/AskOpenAsProjectOrModelsDialog.qml index de2ab29873..954e1a5433 100644 --- a/resources/qml/AskOpenAsProjectOrModelsDialog.qml +++ b/resources/qml/AskOpenAsProjectOrModelsDialog.qml @@ -85,11 +85,11 @@ UM.Dialog Label { - id: checkboxTextWithNiceRendering - anchors.left: rememberChoiceCheckBox.right - anchors.bottom: rememberChoiceCheckBox.bottom - font: UM.Theme.getFont("default") - text: catalog.i18nc("@text:window", "Remember my choice") + id: checkboxTextWithNiceRendering + anchors.left: rememberChoiceCheckBox.right + anchors.bottom: rememberChoiceCheckBox.bottom + font: UM.Theme.getFont("default") + text: catalog.i18nc("@text:window", "Remember my choice") } From d7b05836403ac79f890f0c3525d3089dd51631c8 Mon Sep 17 00:00:00 2001 From: Andreea Scorojitu Date: Tue, 31 Oct 2017 09:52:30 +0100 Subject: [PATCH 182/218] Update changelog to the current 3.0.4 version --- plugins/ChangeLogPlugin/ChangeLog.txt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins/ChangeLogPlugin/ChangeLog.txt b/plugins/ChangeLogPlugin/ChangeLog.txt index 25880a66e4..63d9b83495 100755 --- a/plugins/ChangeLogPlugin/ChangeLog.txt +++ b/plugins/ChangeLogPlugin/ChangeLog.txt @@ -1,3 +1,12 @@ +[3.0.4] +*Bug fixes +- Fixed OpenGL issue that prevent Cura from starting. + +*License agreement on the first startup has been added + +[3.0.3] +*Bug fixes for the MakePrintable plugin. + [3.0.0] *Faster start-up Start-up speed has been cut in half compared to the previous version. From e0c1afe01fd2cee9206797dae4733b9979f101e1 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Tue, 31 Oct 2017 10:26:42 +0100 Subject: [PATCH 183/218] Added Request package information to AboutDialog.qml CURA-4415 --- resources/qml/AboutDialog.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/qml/AboutDialog.qml b/resources/qml/AboutDialog.qml index 534f0d016c..36cebe594a 100644 --- a/resources/qml/AboutDialog.qml +++ b/resources/qml/AboutDialog.qml @@ -132,6 +132,7 @@ UM.Dialog projectsModel.append({ name:"PySerial", description: catalog.i18nc("@label", "Serial communication library"), license: "Python", url: "http://pyserial.sourceforge.net/" }); projectsModel.append({ name:"python-zeroconf", description: catalog.i18nc("@label", "ZeroConf discovery library"), license: "LGPL", url: "https://github.com/jstasiak/python-zeroconf" }); projectsModel.append({ name:"Clipper", description: catalog.i18nc("@label", "Polygon clipping library"), license: "Boost", url: "http://www.angusj.com/delphi/clipper.php" }); + projectsModel.append({ name:"Requests", description: catalog.i18nc("@Label", "Python HTTP library"), license: "GPL", url: "http://docs.python-requests.org" }); projectsModel.append({ name:"Open Sans", description: catalog.i18nc("@label", "Font"), license: "Apache 2.0", url: "https://fonts.google.com/specimen/Open+Sans" }); projectsModel.append({ name:"Font-Awesome-SVG-PNG", description: catalog.i18nc("@label", "SVG icons"), license: "SIL OFL 1.1", url: "https://github.com/encharm/Font-Awesome-SVG-PNG" }); From e36cefedf6b44c6da76f743aba3e0c6f1c6ef3e4 Mon Sep 17 00:00:00 2001 From: Andreea Scorojitu Date: Tue, 31 Oct 2017 10:47:57 +0100 Subject: [PATCH 184/218] Update ChangeLog.txt --- plugins/ChangeLogPlugin/ChangeLog.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ChangeLogPlugin/ChangeLog.txt b/plugins/ChangeLogPlugin/ChangeLog.txt index 63d9b83495..13b735794b 100755 --- a/plugins/ChangeLogPlugin/ChangeLog.txt +++ b/plugins/ChangeLogPlugin/ChangeLog.txt @@ -1,6 +1,6 @@ [3.0.4] *Bug fixes -- Fixed OpenGL issue that prevent Cura from starting. +- Fixed OpenGL issue that prevents Cura from starting. *License agreement on the first startup has been added From f1db8ed00163811664170dee768e94d5f2668281 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Tue, 31 Oct 2017 11:07:45 +0100 Subject: [PATCH 185/218] Show message (hover slieder) if user selected custom quality profile in recomended mode CURA-4466 --- resources/qml/SidebarSimple.qml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 65a3d612dc..549d203c4d 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -310,6 +310,24 @@ Item } } } + + MouseArea + { + id: speedSliderMouseArea + anchors.fill: parent + hoverEnabled: true + enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated + + onEntered: + { + var content = catalog.i18nc("@tooltip","A custom profile is currently active. To enable the quality slider, choose a default quality profile in Custom tab") + base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("sidebar_margin").width, customisedSettings.height), content) + } + onExited: + { + base.hideTooltip(); + } + } } Label From 22e36ff3af4cd5c8db27d9e05487af9754450f7d Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 31 Oct 2017 11:20:39 +0100 Subject: [PATCH 186/218] Fix not supported quality profile list CURA-4451 --- .../VersionUpgrade30to31.py | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py b/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py index d328b14367..4672cb1488 100644 --- a/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py +++ b/plugins/VersionUpgrade/VersionUpgrade30to31/VersionUpgrade30to31.py @@ -9,39 +9,39 @@ from UM.VersionUpgrade import VersionUpgrade #We're inheriting from this. # a list of all legacy "Not Supported" quality profiles _OLD_NOT_SUPPORTED_PROFILES = [ - "um2p_pp_0.25_normal.inst.cfg", - "um2p_tpu_0.8_normal.inst.cfg", - "um3_bb0.4_ABS_Fast_Print.inst.cfg", - "um3_bb0.4_ABS_Superdraft_Print.inst.cfg", - "um3_bb0.4_CPEP_Fast_Print.inst.cfg", - "um3_bb0.4_CPEP_Superdraft_Print.inst.cfg", - "um3_bb0.4_CPE_Fast_Print.inst.cfg", - "um3_bb0.4_CPE_Superdraft_Print.inst.cfg", - "um3_bb0.4_Nylon_Fast_Print.inst.cfg", - "um3_bb0.4_Nylon_Superdraft_Print.inst.cfg", - "um3_bb0.4_PC_Fast_Print.inst.cfg", - "um3_bb0.4_PLA_Fast_Print.inst.cfg", - "um3_bb0.4_PLA_Superdraft_Print.inst.cfg", - "um3_bb0.4_PP_Fast_Print.inst.cfg", - "um3_bb0.4_PP_Superdraft_Print.inst.cfg", - "um3_bb0.4_TPU_Fast_Print.inst.cfg", - "um3_bb0.4_TPU_Superdraft_Print.inst.cfg", - "um3_bb0.8_ABS_Fast_Print.inst.cfg", - "um3_bb0.8_ABS_Superdraft_Print.inst.cfg", - "um3_bb0.8_CPEP_Fast_Print.inst.cfg", - "um3_bb0.8_CPEP_Superdraft_Print.inst.cfg", - "um3_bb0.8_CPE_Fast_Print.inst.cfg", - "um3_bb0.8_CPE_Superdraft_Print.inst.cfg", - "um3_bb0.8_Nylon_Fast_Print.inst.cfg", - "um3_bb0.8_Nylon_Superdraft_Print.inst.cfg", - "um3_bb0.8_PC_Fast_Print.inst.cfg", - "um3_bb0.8_PC_Superdraft_Print.inst.cfg", - "um3_bb0.8_PLA_Fast_Print.inst.cfg", - "um3_bb0.8_PLA_Superdraft_Print.inst.cfg", - "um3_bb0.8_PP_Fast_Print.inst.cfg", - "um3_bb0.8_PP_Superdraft_Print.inst.cfg", - "um3_bb0.8_TPU_Fast_print.inst.cfg", - "um3_bb0.8_TPU_Superdraft_Print.inst.cfg", + "um2p_pp_0.25_normal", + "um2p_tpu_0.8_normal", + "um3_bb0.4_ABS_Fast_Print", + "um3_bb0.4_ABS_Superdraft_Print", + "um3_bb0.4_CPEP_Fast_Print", + "um3_bb0.4_CPEP_Superdraft_Print", + "um3_bb0.4_CPE_Fast_Print", + "um3_bb0.4_CPE_Superdraft_Print", + "um3_bb0.4_Nylon_Fast_Print", + "um3_bb0.4_Nylon_Superdraft_Print", + "um3_bb0.4_PC_Fast_Print", + "um3_bb0.4_PLA_Fast_Print", + "um3_bb0.4_PLA_Superdraft_Print", + "um3_bb0.4_PP_Fast_Print", + "um3_bb0.4_PP_Superdraft_Print", + "um3_bb0.4_TPU_Fast_Print", + "um3_bb0.4_TPU_Superdraft_Print", + "um3_bb0.8_ABS_Fast_Print", + "um3_bb0.8_ABS_Superdraft_Print", + "um3_bb0.8_CPEP_Fast_Print", + "um3_bb0.8_CPEP_Superdraft_Print", + "um3_bb0.8_CPE_Fast_Print", + "um3_bb0.8_CPE_Superdraft_Print", + "um3_bb0.8_Nylon_Fast_Print", + "um3_bb0.8_Nylon_Superdraft_Print", + "um3_bb0.8_PC_Fast_Print", + "um3_bb0.8_PC_Superdraft_Print", + "um3_bb0.8_PLA_Fast_Print", + "um3_bb0.8_PLA_Superdraft_Print", + "um3_bb0.8_PP_Fast_Print", + "um3_bb0.8_PP_Superdraft_Print", + "um3_bb0.8_TPU_Fast_print", + "um3_bb0.8_TPU_Superdraft_Print", ] From d7b75cab2e9410df47f2ab5be035797a37d38a3f Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Tue, 31 Oct 2017 11:42:46 +0100 Subject: [PATCH 187/218] CURA-4502 Minor changes --- plugins/ChangeLogPlugin/ChangeLog.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/ChangeLogPlugin/ChangeLog.txt b/plugins/ChangeLogPlugin/ChangeLog.txt index 13b735794b..d7d68e04a2 100755 --- a/plugins/ChangeLogPlugin/ChangeLog.txt +++ b/plugins/ChangeLogPlugin/ChangeLog.txt @@ -5,7 +5,8 @@ *License agreement on the first startup has been added [3.0.3] -*Bug fixes for the MakePrintable plugin. +*Bug fixes +- Add missing libraries for the MakePrintable plugin. [3.0.0] *Faster start-up From 324b39fc39119f28a06e345cc83b27a3d1078fe3 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 31 Oct 2017 16:19:17 +0100 Subject: [PATCH 188/218] Fix layout for open project dialog CURA-4503 --- resources/qml/AskOpenAsProjectOrModelsDialog.qml | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/resources/qml/AskOpenAsProjectOrModelsDialog.qml b/resources/qml/AskOpenAsProjectOrModelsDialog.qml index 954e1a5433..affef33fb1 100644 --- a/resources/qml/AskOpenAsProjectOrModelsDialog.qml +++ b/resources/qml/AskOpenAsProjectOrModelsDialog.qml @@ -64,6 +64,7 @@ UM.Dialog anchors.leftMargin: 20 * screenScaleFactor anchors.rightMargin: 20 * screenScaleFactor anchors.bottomMargin: 10 * screenScaleFactor + spacing: 10 * screenScaleFactor Label { @@ -78,28 +79,16 @@ UM.Dialog CheckBox { id: rememberChoiceCheckBox - anchors.bottom: buttonBar.top - anchors.bottomMargin: UM.Theme.getSize("default_margin").heigth + text: catalog.i18nc("@text:window", "Remember my choice") checked: UM.Preferences.getValue("cura/choice_on_open_project") != "always_ask" } - Label - { - id: checkboxTextWithNiceRendering - anchors.left: rememberChoiceCheckBox.right - anchors.bottom: rememberChoiceCheckBox.bottom - font: UM.Theme.getFont("default") - text: catalog.i18nc("@text:window", "Remember my choice") - } - - // Buttons Item { id: buttonBar anchors.right: parent.right anchors.left: parent.left - anchors.bottom: parent.bottom height: childrenRect.height Button From 512541be08709488601f6771bb4361ec611c29f9 Mon Sep 17 00:00:00 2001 From: Mark Date: Wed, 1 Nov 2017 10:44:46 +0100 Subject: [PATCH 189/218] Change the font of the checkbox CURA-4503 --- resources/qml/AskOpenAsProjectOrModelsDialog.qml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/resources/qml/AskOpenAsProjectOrModelsDialog.qml b/resources/qml/AskOpenAsProjectOrModelsDialog.qml index affef33fb1..a53c711f9d 100644 --- a/resources/qml/AskOpenAsProjectOrModelsDialog.qml +++ b/resources/qml/AskOpenAsProjectOrModelsDialog.qml @@ -81,6 +81,12 @@ UM.Dialog id: rememberChoiceCheckBox text: catalog.i18nc("@text:window", "Remember my choice") checked: UM.Preferences.getValue("cura/choice_on_open_project") != "always_ask" + style: CheckBoxStyle { + label: Label { + text: control.text + font: UM.Theme.getFont("default") + } + } } // Buttons From 1de61600a71e5dd04ed11716f88d5a96e7054840 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Wed, 1 Nov 2017 10:45:09 +0100 Subject: [PATCH 190/218] Checkbox position and warning in log file CURA-4503 --- .../qml/AskOpenAsProjectOrModelsDialog.qml | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/resources/qml/AskOpenAsProjectOrModelsDialog.qml b/resources/qml/AskOpenAsProjectOrModelsDialog.qml index affef33fb1..a6e818557f 100644 --- a/resources/qml/AskOpenAsProjectOrModelsDialog.qml +++ b/resources/qml/AskOpenAsProjectOrModelsDialog.qml @@ -1,5 +1,5 @@ // Copyright (c) 2015 Ultimaker B.V. -// Cura is released under the terms of the LGPLv3 or higher. +// Cura is released under the terms of the AGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 1.1 @@ -58,13 +58,12 @@ UM.Dialog } } - Column + Item { anchors.fill: parent anchors.leftMargin: 20 * screenScaleFactor anchors.rightMargin: 20 * screenScaleFactor anchors.bottomMargin: 10 * screenScaleFactor - spacing: 10 * screenScaleFactor Label { @@ -76,11 +75,30 @@ UM.Dialog wrapMode: Text.WordWrap } - CheckBox + + + Item { - id: rememberChoiceCheckBox - text: catalog.i18nc("@text:window", "Remember my choice") - checked: UM.Preferences.getValue("cura/choice_on_open_project") != "always_ask" + + anchors.left: parent.left + anchors.right: parent.right + anchors.top: questionText.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height * 2 + + CheckBox + { + id: rememberChoiceCheckBox + checked: UM.Preferences.getValue("cura/choice_on_open_project") != "always_ask" + } + + Label + { + id: checkboxTextWithNiceRendering + anchors.left: rememberChoiceCheckBox.right + anchors.bottom: rememberChoiceCheckBox.bottom + font: UM.Theme.getFont("default") + text: catalog.i18nc("@text:window", "Remember my choice") + } } // Buttons @@ -89,6 +107,7 @@ UM.Dialog id: buttonBar anchors.right: parent.right anchors.left: parent.left + anchors.bottom: parent.bottom height: childrenRect.height Button From c85e10f4c5b124767002fafd8666c3236437960f Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 1 Nov 2017 13:31:17 +0100 Subject: [PATCH 191/218] CURA-4062 Minor changes --- plugins/LayerView/LayerView.py | 1 - plugins/XRayView/XRayView.py | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/LayerView/LayerView.py b/plugins/LayerView/LayerView.py index a7dbb88209..04be97b747 100755 --- a/plugins/LayerView/LayerView.py +++ b/plugins/LayerView/LayerView.py @@ -112,7 +112,6 @@ class LayerView(View): self._layer_pass = LayerPass.LayerPass(1, 1) self._compatibility_mode = OpenGLContext.isLegacyOpenGL() or bool(Preferences.getInstance().getValue("view/force_layer_view_compatibility_mode")) self._layer_pass.setLayerView(self) - #self.getRenderer().addRenderPass(self._layer_pass) return self._layer_pass def getCurrentLayer(self): diff --git a/plugins/XRayView/XRayView.py b/plugins/XRayView/XRayView.py index 2983772647..35509a9715 100644 --- a/plugins/XRayView/XRayView.py +++ b/plugins/XRayView/XRayView.py @@ -57,8 +57,7 @@ class XRayView(View): # This should be fixed in RenderPass's constructor. self._xray_pass = XRayPass.XRayPass(1, 1) - if self._xray_pass: - self.getRenderer().addRenderPass(self._xray_pass) + self.getRenderer().addRenderPass(self._xray_pass) if not self._xray_composite_shader: self._xray_composite_shader = OpenGL.getInstance().createShaderProgram(os.path.join(PluginRegistry.getInstance().getPluginPath("XRayView"), "xray_composite.shader")) From e2c62a460902b2f32c7f9abcde95a90f740155c9 Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 1 Nov 2017 15:50:23 +0100 Subject: [PATCH 192/218] Revert "Remove unnecessary properties which after update triggered view rendering" This reverts commit ee228155af1677f3f375fb0b28b53ecef744d4d2. --- resources/qml/Cura.qml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index fdb1380950..2fd19a8a03 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -344,6 +344,9 @@ UM.MainWindow { id: toolbar; + property int mouseX: base.mouseX + property int mouseY: base.mouseY + anchors { top: openFileButton.bottom; topMargin: UM.Theme.getSize("window_margin").height; From 87a7bf72a8a7c4d9e3eaf5c93b91edb551cd8036 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Wed, 1 Nov 2017 15:57:30 +0100 Subject: [PATCH 193/218] Monitor view, "connect" button position CURA-4509 --- resources/qml/MonitorButton.qml | 15 +------ resources/qml/Sidebar.qml | 74 ++++++++++++++++++++++++++------- 2 files changed, 62 insertions(+), 27 deletions(-) diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 67ca2e708e..29b00f50e6 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -185,24 +185,17 @@ Item anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width; } - Item { + Row { id: buttonsRow height: abortButton.height - width: { - // using childrenRect.width directly causes a binding loop, because setting the width affects the childrenRect - var children_width = additionalComponentsRow.width + pauseResumeButton.width + abortButton.width + 3 * UM.Theme.getSize("default_margin").width; - return Math.min(children_width, base.width - 2 * UM.Theme.getSize("sidebar_margin").width); - } anchors.top: progressBar.bottom anchors.topMargin: UM.Theme.getSize("sidebar_margin").height anchors.right: parent.right anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width - clip: true + spacing: UM.Theme.getSize("default_margin").width Row { id: additionalComponentsRow - anchors.right: pauseResumeButton.left - anchors.rightMargin: UM.Theme.getSize("default_margin").width spacing: UM.Theme.getSize("default_margin").width } @@ -222,8 +215,6 @@ Item { id: pauseResumeButton - anchors.right: abortButton.left - anchors.rightMargin: UM.Theme.getSize("default_margin").width height: UM.Theme.getSize("save_button_save_to_button").height property bool userClicked: false @@ -270,8 +261,6 @@ Item { id: abortButton - anchors.right: parent.right - visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].canAbort enabled: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands && (["paused", "printing", "pre_print"].indexOf(Cura.MachineManager.printerOutputDevices[0].jobState) >= 0) diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 32dceb6078..383c599da8 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -356,7 +356,18 @@ Rectangle { if(!print_time[feature].isTotalDurationZero) { - content += "" + feature + ":" + + var feature_name = ""; + + if (feature.length <= 11) + { + feature_name = feature + } + else{ + feature_name = feature.substring(0, 8) + "..." + } + + + content += "" + feature_name + ":" + "  " + print_time[feature].getDisplayString(UM.DurationFormat.Short) + "  " + Math.round(100 * parseInt(print_time[feature].getDisplayString(UM.DurationFormat.Seconds)) / total_seconds) + "%" + ""; @@ -376,16 +387,9 @@ Rectangle Label { - id: costSpec - anchors.left: parent.left - anchors.bottom: parent.bottom - font: UM.Theme.getFont("very_small") - color: UM.Theme.getColor("text_subtext") - elide: Text.ElideMiddle - width: parent.width - property string tooltipText - text: - { + + function getSpecsData(){ + var lengths = []; var total_length = 0; var weights = []; @@ -449,10 +453,50 @@ Rectangle tooltip_html += ""; tooltipText = tooltip_html; - if(some_costs_known) + + return tooltipText + } + + id: costSpec + anchors.left: parent.left + anchors.bottom: parent.bottom + font: UM.Theme.getFont("very_small") + color: UM.Theme.getColor("text_subtext") + elide: Text.ElideMiddle + width: parent.width + property string tooltipText + text: + { + var lengths = []; + var weights = []; + var costs = []; + var someCostsKnown = false; + if(base.printMaterialLengths) { + for(var index = 0; index < base.printMaterialLengths.length; index++) + { + if(base.printMaterialLengths[index] > 0) + { + lengths.push(base.printMaterialLengths[index].toFixed(2)); + weights.push(String(Math.floor(base.printMaterialWeights[index]))); + var cost = base.printMaterialCosts[index] == undefined ? 0 : base.printMaterialCosts[index].toFixed(2); + costs.push(cost); + if(cost > 0) + { + someCostsKnown = true; + } + } + } + } + if(lengths.length == 0) + { + lengths = ["0.00"]; + weights = ["0"]; + costs = ["0.00"]; + } + if(someCostsKnown) { return catalog.i18nc("@label Print estimates: m for meters, g for grams, %4 is currency and %3 is print cost", "%1m / ~ %2g / ~ %4 %3").arg(lengths.join(" + ")) - .arg(Math.round(total_weight)).arg(total_cost.toFixed(2)).arg(UM.Preferences.getValue("cura/currency")); + .arg(weights.join(" + ")).arg(costs.join(" + ")).arg(UM.Preferences.getValue("cura/currency")); } else { @@ -470,7 +514,9 @@ Rectangle if(base.printDuration.valid && !base.printDuration.isTotalDurationZero) { - base.showTooltip(parent, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), costSpec.tooltipText); + var show_data = costSpec.getSpecsData() + + base.showTooltip(parent, Qt.point(-UM.Theme.getSize("sidebar_margin").width, 0), show_data); } } onExited: From d503283089d44e2a1c9a6798b8399e750f87edc5 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 2 Nov 2017 09:51:57 +0100 Subject: [PATCH 194/218] CURA-4509 Minor fix that avoids crashes when there is no specified material (such as in UM2) --- cura/PrintInformation.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cura/PrintInformation.py b/cura/PrintInformation.py index c709bec20a..d3bcc10781 100644 --- a/cura/PrintInformation.py +++ b/cura/PrintInformation.py @@ -196,8 +196,10 @@ class PrintInformation(QObject): weight = float(amount) * float(density) / 1000 cost = 0 + material_name = catalog.i18nc("@label unknown material", "Unknown") if material: material_guid = material.getMetaDataEntry("GUID") + material_name = material.getName() if material_guid in material_preference_values: material_values = material_preference_values[material_guid] @@ -216,7 +218,7 @@ class PrintInformation(QObject): self._material_weights.append(weight) self._material_lengths.append(length) self._material_costs.append(cost) - self._material_names.append(material.getName()) + self._material_names.append(material_name) self.materialLengthsChanged.emit() self.materialWeightsChanged.emit() From 25c41062e10a4871afe29ddbf69151222aa9e5e6 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 2 Nov 2017 12:58:52 +0100 Subject: [PATCH 195/218] Fix material upgrade and version checking CURA-4519 Less duplicated code, but it's still one of the worst parts... --- .../XmlMaterialProfile/XmlMaterialProfile.py | 14 ++++++++------ .../XmlMaterialProfile/XmlMaterialUpgrader.py | 18 +++++------------- plugins/XmlMaterialProfile/__init__.py | 2 +- 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 51a3c51a8b..86f90e8970 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -33,9 +33,10 @@ class XmlMaterialProfile(InstanceContainer): # # \param xml_version: The version number found in an XML file. # \return The corresponding setting_version. - def xmlVersionToSettingVersion(self, xml_version: str) -> int: + @classmethod + def xmlVersionToSettingVersion(cls, xml_version: str) -> int: if xml_version == "1.3": - return 4 + return CuraApplication.SettingVersion return 0 #Older than 1.3. def getInheritedFiles(self): @@ -407,15 +408,16 @@ class XmlMaterialProfile(InstanceContainer): def getConfigurationTypeFromSerialized(self, serialized: str) -> Optional[str]: return "materials" - def getVersionFromSerialized(self, serialized: str) -> Optional[int]: + @classmethod + def getVersionFromSerialized(cls, serialized: str) -> Optional[int]: data = ET.fromstring(serialized) - version = 1 + version = XmlMaterialProfile.Version # get setting version if "version" in data.attrib: - setting_version = self.xmlVersionToSettingVersion(data.attrib["version"]) + setting_version = XmlMaterialProfile.xmlVersionToSettingVersion(data.attrib["version"]) else: - setting_version = self.xmlVersionToSettingVersion("1.2") + setting_version = XmlMaterialProfile.xmlVersionToSettingVersion("1.2") return version * 1000000 + setting_version diff --git a/plugins/XmlMaterialProfile/XmlMaterialUpgrader.py b/plugins/XmlMaterialProfile/XmlMaterialUpgrader.py index c882239dba..167a9f2849 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialUpgrader.py +++ b/plugins/XmlMaterialProfile/XmlMaterialUpgrader.py @@ -5,24 +5,16 @@ import xml.etree.ElementTree as ET from UM.VersionUpgrade import VersionUpgrade +from cura.CuraApplication import CuraApplication +from .XmlMaterialProfile import XmlMaterialProfile + class XmlMaterialUpgrader(VersionUpgrade): def getXmlVersion(self, serialized): - data = ET.fromstring(serialized) - - version = 1 - # get setting version - if "version" in data.attrib: - setting_version = self._xmlVersionToSettingVersion(data.attrib["version"]) - else: - setting_version = self._xmlVersionToSettingVersion("1.2") - - return version * 1000000 + setting_version + return XmlMaterialProfile.getVersionFromSerialized(serialized) def _xmlVersionToSettingVersion(self, xml_version: str) -> int: - if xml_version == "1.3": - return 2 - return 0 #Older than 1.3. + return XmlMaterialProfile.xmlVersionToSettingVersion(xml_version) def upgradeMaterial(self, serialised, filename): data = ET.fromstring(serialised) diff --git a/plugins/XmlMaterialProfile/__init__.py b/plugins/XmlMaterialProfile/__init__.py index 8173e9dd04..70a359ee76 100644 --- a/plugins/XmlMaterialProfile/__init__.py +++ b/plugins/XmlMaterialProfile/__init__.py @@ -19,7 +19,7 @@ def getMetaData(): "mimetype": "application/x-ultimaker-material-profile" }, "version_upgrade": { - ("materials", 1000000): ("materials", 1000003, upgrader.upgradeMaterial), + ("materials", 1000000): ("materials", 1000004, upgrader.upgradeMaterial), }, "sources": { "materials": { From a4441e2bdbe2b6d86c46e17efd23a7f373b28fd1 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Thu, 2 Nov 2017 13:20:25 +0100 Subject: [PATCH 196/218] CURA-4481 Setting description improved --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 4afc184e18..cffaa1df3d 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3978,7 +3978,7 @@ "remove_empty_first_layers": { "label": "Remove Empty First Layers", - "description": "Remove empty layers beneath the first printed layer if they are present.", + "description": "Remove empty layers beneath the first printed layer if they are present. Disabling this setting can cause empty first layers if the Slicing Tolerance setting is set to Exclusive or Middle.", "type": "bool", "default_value": true, "enabled": "not support_enable", From 1d5d8c5ac07f07f406bb99695ba2da55637775a5 Mon Sep 17 00:00:00 2001 From: Andreea Scorojitu Date: Fri, 3 Nov 2017 15:02:03 +0100 Subject: [PATCH 197/218] Add_tri-hexagon_and_cross_to_pattern_description --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index cffaa1df3d..0a0bb5546b 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1394,7 +1394,7 @@ "infill_pattern": { "label": "Infill Pattern", - "description": "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, cubic, octet, quarter cubic and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction.", + "description": "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction.", "type": "enum", "options": { From 0d71443bd29ba43290f11eec3e0443f0711413e0 Mon Sep 17 00:00:00 2001 From: Ruben D Date: Sun, 5 Nov 2017 23:24:07 +0100 Subject: [PATCH 198/218] Move 'Remove Empty First Layers' setting to mesh fixes category It used to be in 'support' since it's something you may want to decide on depending on whether you have support or not. It could also go in 'Special Modes', but I think this is more specified. --- resources/definitions/fdmprinter.def.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index cffaa1df3d..88e02fc1c6 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3974,16 +3974,6 @@ "limit_to_extruder": "support_infill_extruder_nr", "enabled": "support_enable and support_use_towers", "settable_per_mesh": true - }, - "remove_empty_first_layers": - { - "label": "Remove Empty First Layers", - "description": "Remove empty layers beneath the first printed layer if they are present. Disabling this setting can cause empty first layers if the Slicing Tolerance setting is set to Exclusive or Middle.", - "type": "bool", - "default_value": true, - "enabled": "not support_enable", - "settable_per_mesh": false, - "settable_per_extruder": false } } }, @@ -4894,6 +4884,16 @@ "settable_per_mesh": false, "settable_per_extruder": false, "settable_per_meshgroup": true + }, + "remove_empty_first_layers": + { + "label": "Remove Empty First Layers", + "description": "Remove empty layers beneath the first printed layer if they are present. Disabling this setting can cause empty first layers if the Slicing Tolerance setting is set to Exclusive or Middle.", + "type": "bool", + "default_value": true, + "enabled": "not support_enable", + "settable_per_mesh": false, + "settable_per_extruder": false } } }, From c61b9c41ab03e7b0a723cd1f70a4cfd5bbf88b81 Mon Sep 17 00:00:00 2001 From: Ruben D Date: Mon, 6 Nov 2017 03:55:49 +0100 Subject: [PATCH 199/218] Fix translation of Unable to slice message Previously the {0} would be filled in at runtime, causing the translation to no longer be found in the catalogue. Contributes to issue CURA-4091. --- plugins/CuraEngineBackend/CuraEngineBackend.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 914aa1dee0..0c1fc6f4ad 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -293,7 +293,7 @@ class CuraEngineBackend(QObject, Backend): error_labels.add(definitions[0].label) error_labels = ", ".join(error_labels) - self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice with the current settings. The following settings have errors: {0}".format(error_labels)), + self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice with the current settings. The following settings have errors: {0}").format(error_labels), title = catalog.i18nc("@info:title", "Unable to slice")) self._error_message.show() self.backendStateChange.emit(BackendState.Error) From 5008d63cfef2c643bfe7631779f6e99d0013d79d Mon Sep 17 00:00:00 2001 From: kaleidoscopeit Date: Mon, 6 Nov 2017 10:01:57 +0100 Subject: [PATCH 200/218] New machine definition : Deltacomb 3D --- resources/definitions/deltacomb.def.json | 66 ++++++++++++++++++ resources/meshes/deltacomb.stl | Bin 0 -> 1352284 bytes .../deltacomb/deltacomb_abs_fast.inst.cfg | 25 +++++++ .../deltacomb/deltacomb_abs_high.inst.cfg | 25 +++++++ .../deltacomb/deltacomb_abs_normal.inst.cfg | 24 +++++++ .../deltacomb/deltacomb_nylon_fast.inst.cfg | 57 +++++++++++++++ .../deltacomb/deltacomb_nylon_high.inst.cfg | 57 +++++++++++++++ .../deltacomb/deltacomb_nylon_normal.inst.cfg | 58 +++++++++++++++ .../deltacomb/deltacomb_pla_fast.inst.cfg | 24 +++++++ .../deltacomb/deltacomb_pla_high.inst.cfg | 25 +++++++ .../deltacomb/deltacomb_pla_normal.inst.cfg | 23 ++++++ 11 files changed, 384 insertions(+) create mode 100644 resources/definitions/deltacomb.def.json create mode 100644 resources/meshes/deltacomb.stl create mode 100644 resources/quality/deltacomb/deltacomb_abs_fast.inst.cfg create mode 100644 resources/quality/deltacomb/deltacomb_abs_high.inst.cfg create mode 100644 resources/quality/deltacomb/deltacomb_abs_normal.inst.cfg create mode 100644 resources/quality/deltacomb/deltacomb_nylon_fast.inst.cfg create mode 100644 resources/quality/deltacomb/deltacomb_nylon_high.inst.cfg create mode 100644 resources/quality/deltacomb/deltacomb_nylon_normal.inst.cfg create mode 100644 resources/quality/deltacomb/deltacomb_pla_fast.inst.cfg create mode 100644 resources/quality/deltacomb/deltacomb_pla_high.inst.cfg create mode 100644 resources/quality/deltacomb/deltacomb_pla_normal.inst.cfg diff --git a/resources/definitions/deltacomb.def.json b/resources/definitions/deltacomb.def.json new file mode 100644 index 0000000000..031bd12156 --- /dev/null +++ b/resources/definitions/deltacomb.def.json @@ -0,0 +1,66 @@ +{ + "id": "deltacomb", + "version": 2, + "name": "Deltacomb 3D", + "inherits": "fdmprinter", + "metadata": { + "author": "Gabriele Rossetti", + "visible": true, + "manufacturer": "Deltacomb 3D", + "category": "Other", + "file_formats": "text/x-gcode", + "icon": "icon_ultimaker2", + "platform": "deltacomb.stl", + "has_machine_quality": true + }, + + "overrides": { + "machine_heated_bed": { "default_value": false }, + "machine_width": { "default_value": 190 }, + "machine_height": { "default_value": 250 }, + "machine_depth": { "default_value": 190 }, + "machine_center_is_zero": { "default_value": true }, + "machine_nozzle_size": { "default_value": 0.4 }, + "material_diameter": { "default_value": 1.75 }, + "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, + "machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 ;Home all axes (max endstops)\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..."}, + "machine_end_gcode": { "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG28 ;Home all axes (max endstops)\nM84 ;steppers off\nG90 ;absolute positioning" }, + "machine_shape": { "default_value": "elliptic" }, + "machine_max_feedrate_x": { "default_value": 250 }, + "machine_max_feedrate_y": { "default_value": 250 }, + "machine_max_feedrate_z": { "default_value": 15 }, + "machine_max_acceleration_x": { "default_value": 10000 }, + "machine_max_acceleration_y": { "default_value": 10000 }, + "machine_max_acceleration_z": { "default_value": 50 }, + "machine_max_acceleration_e": { "default_value": 100 }, + "machine_acceleration": { "default_value": 4000 }, + "machine_max_jerk_xy": { "default_value": 25.0 }, + "machine_max_jerk_z": { "default_value": 0.4 }, + "machine_max_jerk_e": { "default_value": 1.0 }, + "retraction_hop_enabled": { "default_value": false }, + "retraction_amount" : { "default_value": 4.5 }, + "retraction_speed" : { "default_value": 40 }, + "material_diameter": { "default_value": 1.75 }, + "material_final_print_temperature": { "value": "material_print_temperature - 5" }, + "material_initial_print_temperature": { "value": "material_print_temperature" }, + "material_print_temperature_layer_0": { "value": "material_print_temperature + 5" }, + "travel_avoid_distance": { "default_value": 1, "value": 1 }, + "speed_print" : { "default_value": 70 }, + "speed_travel": { "default_value": 80, "value": 80 }, + "speed_infill": { "value": "round(speed_print * 1.05, 0)" }, + "speed_topbottom": { "value": "round(speed_print * 0.95, 0)" }, + "speed_wall": { "value": "speed_print" }, + "speed_wall_0": { "value": "round(speed_print * 0.9, 0)" }, + "speed_wall_x": { "value": "speed_wall" }, + "speed_layer_0": { "value": "min(round(speed_print * 0.75, 0), 45.0)" }, + "speed_travel_layer_0": { "value": "round(speed_travel * 0.7, 0)" }, + "skirt_brim_speed": { "value": "speed_layer_0" }, + "skirt_line_count": { "default_value": 3 }, + "skirt_brim_minimal_length": { "default_value": 150 }, + "infill_sparse_density": { "default_value": 24 }, + "top_bottom_thickness": { "default_value": 0.6 }, + "support_z_distance": { "default_value": 0.2, "value": "min(2 * layer_height, machine_nozzle_size * 0.75)" }, + "infill_before_walls" : { "default_value": false }, + "support_use_towers" : { "default_value": false } + } +} diff --git a/resources/meshes/deltacomb.stl b/resources/meshes/deltacomb.stl new file mode 100644 index 0000000000000000000000000000000000000000..7be5c33fd7a927a511028e46509238e637a929ae GIT binary patch literal 1352284 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 KOVh>IYX1-6!5XFj literal 0 HcmV?d00001 diff --git a/resources/quality/deltacomb/deltacomb_abs_fast.inst.cfg b/resources/quality/deltacomb/deltacomb_abs_fast.inst.cfg new file mode 100644 index 0000000000..a44ad8c271 --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_abs_fast.inst.cfg @@ -0,0 +1,25 @@ +[general] +version = 2 +definition = deltacomb +name = Fast Quality (beta) + +[metadata] +type = quality +setting_version = 3 +material = generic_abs_175 +quality_type = fast +weight = -1 + +[values] +adhesion_type = raft +layer_height = 0.2 +layer_height_0 = 0.2 +cool_fan_enabled = True +cool_fan_full_at_height = 0.4 +cool_fan_speed = 50 +cool_fan_speed_max = 50 +cool_fan_speed_min = 50 +cool_min_layer_time = 3 +cool_min_speed = 20 +material_bed_temperature = 80 + diff --git a/resources/quality/deltacomb/deltacomb_abs_high.inst.cfg b/resources/quality/deltacomb/deltacomb_abs_high.inst.cfg new file mode 100644 index 0000000000..7a21407d1b --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_abs_high.inst.cfg @@ -0,0 +1,25 @@ +[general] +version = 2 +definition = deltacomb +name = High Quality (beta) + +[metadata] +type = quality +setting_version = 3 +material = generic_abs_175 +quality_type = high +weight = 1 + +[values] +adhesion_type = raft +layer_height = 0.1 +layer_height_0 = 0.1 +cool_fan_enabled = True +cool_fan_full_at_height = 0.2 +cool_fan_speed = 50 +cool_fan_speed_max = 50 +cool_fan_speed_min = 50 +cool_min_layer_time = 3 +cool_min_speed = 20 +material_bed_temperature = 80 + diff --git a/resources/quality/deltacomb/deltacomb_abs_normal.inst.cfg b/resources/quality/deltacomb/deltacomb_abs_normal.inst.cfg new file mode 100644 index 0000000000..e1889c008f --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_abs_normal.inst.cfg @@ -0,0 +1,24 @@ +[general] +version = 2 +definition = deltacomb +name = Normal Quality (beta) + +[metadata] +type = quality +setting_version = 3 +material = generic_abs_175 +quality_type = normal +weight = 0 + +[values] +adhesion_type = raft +layer_height = 0.15 +layer_height_0 = 0.15 +cool_fan_enabled = True +cool_fan_full_at_height = 0.3 +cool_fan_speed = 50 +cool_fan_speed_max = 50 +cool_fan_speed_min = 50 +cool_min_layer_time = 3 +cool_min_speed = 20 +material_bed_temperature = 80 diff --git a/resources/quality/deltacomb/deltacomb_nylon_fast.inst.cfg b/resources/quality/deltacomb/deltacomb_nylon_fast.inst.cfg new file mode 100644 index 0000000000..ec10bfc510 --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_nylon_fast.inst.cfg @@ -0,0 +1,57 @@ +[general] +version = 2 +name = Fast Quality (beta) +definition = deltacomb + +[metadata] +type = quality +material = generic_nylon_175 +quality_type = fast +weight = -1 +setting_version = 3 + +[values] +adhesion_type = raft +brim_width = 4 +cool_fan_enabled = False +cool_fan_full_at_height = 0.45 +cool_fan_speed = 0 +cool_fan_speed_max = 0 +cool_fan_speed_min = 0 +cool_min_layer_time = 5 +cool_min_speed = 0 +infill_overlap = 15 +infill_sparse_density = 24 +layer_height = 0.20 +layer_height_0 = 0.15 +line_width = =machine_nozzle_size +material_flow = 100 +raft_airgap = 0.22 +raft_base_line_width= =line_width * 2 +raft_base_thickness = =layer_height_0 * 2 +raft_interface_line_width = =line_width +raft_interface_thickness = =layer_height +raft_margin = 5 +raft_surface_layers = 2 +raft_surface_line_width = =line_width +raft_surface_thickness = =layer_height +retraction_hop = 0.5 +retraction_hop_enabled = False +retraction_hop_only_when_collides = True +skin_overlap = 10 +skirt_brim_minimal_length = 75 +skirt_gap = 1.5 +skirt_line_count = 5 +speed_infill = =speed_print +speed_layer_0 = 25 +speed_print = 50 +speed_topbottom = 40 +speed_travel = 200 +speed_wall_0 = 40 +speed_wall_x = =speed_print +support_angle = 70 +support_type = buildplate +support_z_distance = 0.15 +top_bottom_thickness = 0.8 +wall_thickness = 0.8 +z_seam_type = random diff --git a/resources/quality/deltacomb/deltacomb_nylon_high.inst.cfg b/resources/quality/deltacomb/deltacomb_nylon_high.inst.cfg new file mode 100644 index 0000000000..db2a31c468 --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_nylon_high.inst.cfg @@ -0,0 +1,57 @@ +[general] +version = 2 +name = High Quality (beta) +definition = deltacomb + +[metadata] +type = quality +material = generic_nylon_175 +quality_type = high +weight = 1 +setting_version = 3 + +[values] +adhesion_type = raft +brim_width = 4 +cool_fan_enabled = False +cool_fan_full_at_height = 0.45 +cool_fan_speed = 0 +cool_fan_speed_max = 0 +cool_fan_speed_min = 0 +cool_min_layer_time = 5 +cool_min_speed = 0 +infill_overlap = 15 +infill_sparse_density = 24 +layer_height = 0.10 +layer_height_0 = 0.10 +line_width = =machine_nozzle_size +material_flow = 100 +raft_airgap = 0.22 +raft_base_line_width= =line_width * 2 +raft_base_thickness = =layer_height_0 * 2 +raft_interface_line_width = =line_width +raft_interface_thickness = =layer_height +raft_margin = 5 +raft_surface_layers = 2 +raft_surface_line_width = =line_width +raft_surface_thickness = =layer_height +retraction_hop = 0.5 +retraction_hop_enabled = False +retraction_hop_only_when_collides = True +skin_overlap = 10 +skirt_brim_minimal_length = 75 +skirt_gap = 1.5 +skirt_line_count = 5 +speed_infill = =speed_print +speed_layer_0 = 25 +speed_print = 50 +speed_topbottom = 40 +speed_travel = 200 +speed_wall_0 = 40 +speed_wall_x = =speed_print +support_angle = 70 +support_type = buildplate +support_z_distance = 0.15 +top_bottom_thickness = 0.8 +wall_thickness = 0.8 +z_seam_type = random diff --git a/resources/quality/deltacomb/deltacomb_nylon_normal.inst.cfg b/resources/quality/deltacomb/deltacomb_nylon_normal.inst.cfg new file mode 100644 index 0000000000..a0504adfd8 --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_nylon_normal.inst.cfg @@ -0,0 +1,58 @@ +[general] +version = 2 +name = Normal Quality (beta) +definition = deltacomb + +[metadata] +type = quality +material = generic_nylon_175 +quality_type = normal +weight = 0 +setting_version = 3 + +[values] +adhesion_type = raft +brim_width = 4 +cool_fan_enabled = False +cool_fan_full_at_height = 0.45 +cool_fan_speed = 0 +cool_fan_speed_max = 0 +cool_fan_speed_min = 0 +cool_min_layer_time = 5 +cool_min_speed = 0 +infill_overlap = 15 +infill_sparse_density = 24 +layer_height = 0.15 +layer_height_0 = 0.10 +line_width = =machine_nozzle_size +material_flow = 100 +raft_airgap = 0.22 +raft_base_line_width= =line_width * 2 +raft_base_thickness = =layer_height_0 * 2 +raft_interface_line_width = =line_width +raft_interface_thickness = =layer_height +raft_margin = 5 +raft_surface_layers = 2 +raft_surface_line_width = =line_width +raft_surface_thickness = =layer_height +retraction_hop = 0.5 +retraction_hop_enabled = False +retraction_hop_only_when_collides = True +skin_overlap = 10 +skirt_brim_minimal_length = 75 +skirt_gap = 1.5 +skirt_line_count = 5 +speed_infill = =speed_print +speed_layer_0 = 25 +speed_print = 50 +speed_topbottom = 40 +speed_travel = 200 +speed_wall_0 = 40 +speed_wall_x = =speed_print +support_angle = 70 +support_type = buildplate +support_z_distance = 0.15 +top_bottom_thickness = 0.8 +wall_thickness = 0.8 +z_seam_type = random + diff --git a/resources/quality/deltacomb/deltacomb_pla_fast.inst.cfg b/resources/quality/deltacomb/deltacomb_pla_fast.inst.cfg new file mode 100644 index 0000000000..a91e009353 --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_pla_fast.inst.cfg @@ -0,0 +1,24 @@ +[general] +version = 2 +definition = deltacomb +name = Fast Quality + +[metadata] +type = quality +setting_version = 3 +material = generic_pla_175 +quality_type = fast +weight = -1 + +[values] +adhesion_type = skirt +layer_height = 0.2 +layer_height_0 = 0.2 +cool_fan_enabled = True +cool_fan_full_at_height = 0.4 +cool_fan_speed = 100 +cool_fan_speed_max = 100 +cool_fan_speed_min = 100 +cool_min_layer_time = 5 +cool_min_speed = 20 + diff --git a/resources/quality/deltacomb/deltacomb_pla_high.inst.cfg b/resources/quality/deltacomb/deltacomb_pla_high.inst.cfg new file mode 100644 index 0000000000..c42a18d8eb --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_pla_high.inst.cfg @@ -0,0 +1,25 @@ +[general] +version = 2 +definition = deltacomb +name = High Quality + +[metadata] +type = quality +setting_version = 3 +material = generic_pla_175 +quality_type = high +weight = 1 + +[values] +adhesion_type = skirt +layer_height = 0.1 +layer_height_0 = 0.1 +cool_fan_enabled = True +cool_fan_full_at_height = 0.2 +cool_fan_speed = 100 +cool_fan_speed_max = 100 +cool_fan_speed_min = 100 +cool_min_layer_time = 5 +cool_min_speed = 20 +material_print_temperature_layer_0 = =default_material_print_temperature + 5 + diff --git a/resources/quality/deltacomb/deltacomb_pla_normal.inst.cfg b/resources/quality/deltacomb/deltacomb_pla_normal.inst.cfg new file mode 100644 index 0000000000..a433f2d0dd --- /dev/null +++ b/resources/quality/deltacomb/deltacomb_pla_normal.inst.cfg @@ -0,0 +1,23 @@ +[general] +version = 2 +definition = deltacomb +name = Normal Quality + +[metadata] +type = quality +setting_version = 3 +material = generic_pla_175 +quality_type = normal +weight = 0 + +[values] +adhesion_type = skirt +layer_height = 0.15 +layer_height_0 = 0.15 +cool_fan_enabled = True +cool_fan_full_at_height = 0.3 +cool_fan_speed = 100 +cool_fan_speed_max = 100 +cool_fan_speed_min = 100 +cool_min_layer_time = 5 +cool_min_speed = 20 From 2be529668e3c0c55485369d922758a92ab0c6cbd Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Tue, 7 Nov 2017 13:04:16 +0100 Subject: [PATCH 201/218] Fix download for firmware upgrade notification Same issue as the download for Cura version upgrade in CURA-4464. --- .../FirmwareUpdateChecker.py | 18 ++++++++++++++++- .../FirmwareUpdateCheckerJob.py | 20 ++++++------------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py index 5ee3493549..458aca5787 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateChecker.py @@ -1,6 +1,9 @@ # Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. +from PyQt5.QtCore import QUrl +from PyQt5.QtGui import QDesktopServices + from UM.Extension import Extension from UM.Preferences import Preferences from UM.Logger import Logger @@ -32,6 +35,17 @@ class FirmwareUpdateChecker(Extension): if Preferences.getInstance().getValue("info/automatic_update_check"): ContainerRegistry.getInstance().containerAdded.connect(self._onContainerAdded) + self._download_url = None + + ## Callback for the message that is spawned when there is a new version. + def _onActionTriggered(self, message, action): + if action == "download": + if self._download_url is not None: + QDesktopServices.openUrl(QUrl(self._download_url)) + + def _onSetDownloadUrl(self, download_url): + self._download_url = download_url + def _onContainerAdded(self, container): # Only take care when a new GlobalStack was added if isinstance(container, GlobalStack): @@ -45,5 +59,7 @@ class FirmwareUpdateChecker(Extension): # \param silent type(boolean) Suppresses messages other than "new version found" messages. # This is used when checking for a new firmware version at startup. def checkFirmwareVersion(self, container = None, silent = False): - job = FirmwareUpdateCheckerJob(container = container, silent = silent, url = self.JEDI_VERSION_URL) + job = FirmwareUpdateCheckerJob(container = container, silent = silent, url = self.JEDI_VERSION_URL, + callback = self._onActionTriggered, + set_download_url_callback = self._onSetDownloadUrl) job.start() diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py index 8f299761fc..5b8391463e 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py @@ -10,30 +10,21 @@ from UM.Job import Job import urllib.request import codecs -from PyQt5.QtCore import QUrl -from PyQt5.QtGui import QDesktopServices - from UM.i18n import i18nCatalog i18n_catalog = i18nCatalog("cura") ## This job checks if there is an update available on the provided URL. class FirmwareUpdateCheckerJob(Job): - def __init__(self, container = None, silent = False, url = None): + def __init__(self, container = None, silent = False, url = None, callback = None, set_download_url_callback = None): super().__init__() self._container = container self.silent = silent self._url = url - self._download_url = None # If an update was found, the download_url will be set to the location of the new version. - - ## Callback for the message that is spawned when there is a new version. - def actionTriggered(self, message, action): - if action == "download": - if self._download_url is not None: - QDesktopServices.openUrl(QUrl(self._download_url)) + self._callback = callback + self._set_download_url_callback = set_download_url_callback def run(self): - self._download_url = None # Reset download ur. if not self._url: Logger.log("e", "Can not check for a new release. URL not set!") return @@ -75,8 +66,9 @@ class FirmwareUpdateCheckerJob(Job): message.addAction("download", i18n_catalog.i18nc("@action:button", "Download"), "[no_icon]", "[no_description]") # If we do this in a cool way, the download url should be available in the JSON file - self._download_url = "https://ultimaker.com/en/resources/20500-upgrade-firmware" - message.actionTriggered.connect(self.actionTriggered) + if self._set_download_url_callback: + self._set_download_url_callback("https://ultimaker.com/en/resources/20500-upgrade-firmware") + message.actionTriggered.connect(self._callback) message.show() except Exception as e: From 873862efd798414c0eb7690d56af47024c4dbc02 Mon Sep 17 00:00:00 2001 From: Brecht Nuyttens Date: Tue, 7 Nov 2017 16:54:18 +0100 Subject: [PATCH 202/218] Fixed Vertex Delta Definition --- resources/definitions/vertex_delta_k8800.def.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/definitions/vertex_delta_k8800.def.json b/resources/definitions/vertex_delta_k8800.def.json index b832620942..ddfa54f4c8 100644 --- a/resources/definitions/vertex_delta_k8800.def.json +++ b/resources/definitions/vertex_delta_k8800.def.json @@ -10,6 +10,9 @@ "author": "Velleman" }, "overrides": { + "material_diameter": { + "default_value": 1.75, + }, "machine_width": { "default_value": 200 }, @@ -40,7 +43,7 @@ "machine_head_shape_max_y": { "default_value": 0 }, - "machine_nozzle_gantry_distance": { + "gantry_height": { "default_value": 0 }, "machine_nozzle_offset_x_1": { From 303cf33de1f424e47082b00f6394a7464e6d092e Mon Sep 17 00:00:00 2001 From: Mark Date: Wed, 8 Nov 2017 10:23:19 +0100 Subject: [PATCH 203/218] Made the message more clear --- plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py index 5b8391463e..6dd7338cfd 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py @@ -61,9 +61,9 @@ class FirmwareUpdateCheckerJob(Job): # notify the user when no new firmware version is available. if (checked_version != "") and (checked_version != current_version): Logger.log("i", "SHOWING FIRMWARE UPDATE MESSAGE") - message = Message(i18n_catalog.i18nc("@info Don't translate {machine_name}, since it gets replaced by a printer name!", "To ensure that your {machine_name} is equipped with the latest features it is recommended to update the firmware regularly. This can be done on the {machine_name} (when connected to the network) or via USB.").format(machine_name = machine_name), + message = Message(i18n_catalog.i18nc("@info Don't translate {machine_name}, since it gets replaced by a printer name!", "New features are available for your {machine_name}! It is recommended to update the firmware on your printer.").format(machine_name = machine_name), title = i18n_catalog.i18nc("@info:title The %s gets replaced with the printer name.", "New %s firmware available") % machine_name) - message.addAction("download", i18n_catalog.i18nc("@action:button", "Download"), "[no_icon]", "[no_description]") + message.addAction("download", i18n_catalog.i18nc("@action:button", "How to update"), "[no_icon]", "[no_description]") # If we do this in a cool way, the download url should be available in the JSON file if self._set_download_url_callback: From 06045f036e06fdb05ad38fd00a14e09a8715535f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Wed, 8 Nov 2017 15:27:50 +0100 Subject: [PATCH 204/218] Added previewPass --- cura/PreviewPass.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 cura/PreviewPass.py diff --git a/cura/PreviewPass.py b/cura/PreviewPass.py new file mode 100644 index 0000000000..fd87754ae3 --- /dev/null +++ b/cura/PreviewPass.py @@ -0,0 +1,28 @@ +# Copyright (c) 2017 Ultimaker B.V. +# Uranium is released under the terms of the LGPLv3 or higher. + +from UM.Application import Application +from UM.View.RenderPass import RenderPass +from UM.Scene.Camera import Camera + +## A render pass subclass that renders everything with default parameters, but can be used with a non-default camera +# +# This is useful to get a preview image of a scene taken from a different location as the active camera. +class PreviewPass(RenderPass): + def __init__(self, width, height): + super().__init__("preview", width, height, 0) + + self._camera = Application.getInstance().getController().getScene().getActiveCamera() + self._renderer = Application.getInstance().getRenderer() + + # Override the camera to be used for this render pass + def setCamera(self, camera: Camera): + self._camera = camera + + def render(self): + self.bind() + + for batch in self._renderer.getBatches(): + batch.render(self._camera) + + self.release() From d8d738be254831443cbc8a9ebeb1b0fba4a13a84 Mon Sep 17 00:00:00 2001 From: Andreea Scorojitu Date: Wed, 8 Nov 2017 17:02:49 +0100 Subject: [PATCH 205/218] Change_Color_UI_elements_CURA-4548 --- resources/themes/cura-light/theme.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index b41ea96846..50ee600e4e 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -78,13 +78,13 @@ "text_pressed": [12, 169, 227, 255], "text_subtext": [0, 0, 0, 255], "text_emphasis": [255, 255, 255, 255], - "text_scene": [24, 41, 77, 255], + "text_scene": [31, 36, 39, 255], "text_scene_hover": [70, 84, 113, 255], "error": [255, 140, 0, 255], "sidebar_header_bar": [31, 36, 39, 255], - "sidebar_header_active": [68, 72, 75, 255], - "sidebar_header_hover": [68, 72, 75, 255], + "sidebar_header_active": [31, 36, 39, 255], + "sidebar_header_hover": [31, 36, 39, 255], "sidebar_header_highlight": [68, 192, 255, 255], "sidebar_header_highlight_hover": [68, 192, 255, 255], "sidebar_header_text_inactive": [255, 255, 255, 255], @@ -176,7 +176,7 @@ "material_compatibility_warning": [0, 0, 0, 255], "progressbar_background": [245, 245, 245, 255], - "progressbar_control": [24, 41, 77, 255], + "progressbar_control": [31, 36, 39, 255], "slider_groove": [245, 245, 245, 255], "slider_groove_border": [127, 127, 127, 255], From fdcce1780e0dee817cc766f9f01746d078fc7925 Mon Sep 17 00:00:00 2001 From: Mark Date: Wed, 8 Nov 2017 19:24:09 +0100 Subject: [PATCH 206/218] Also check if base.selectedPrinter is null --- plugins/UM3NetworkPrinting/DiscoverUM3Action.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml index eb1bf786b0..65d33369aa 100644 --- a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +++ b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml @@ -276,12 +276,12 @@ Cura.MachineAction width: parent.width wrapMode: Text.WordWrap text:{ - if (base.selectedPrinter == undefined) + if (base.selectedPrinter == undefined || base.selectedPrinter == null) { return ""; } // The property cluster size does not exist for older UM3 devices. - if(base.selectedPrinter != undefined && base.selectedPrinter.clusterSize == null || base.selectedPrinter.clusterSize == 1) + if(base.selectedPrinter != undefined && (base.selectedPrinter.clusterSize == null || base.selectedPrinter.clusterSize == 1)) { return ""; } From 1468c3aae5259a850fcea9dbc6d2c597c6e72006 Mon Sep 17 00:00:00 2001 From: Mark Date: Thu, 9 Nov 2017 07:37:09 +0100 Subject: [PATCH 207/218] move undefined/null check --- plugins/UM3NetworkPrinting/DiscoverUM3Action.qml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml index 65d33369aa..e4cbc6a0c7 100644 --- a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +++ b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml @@ -276,12 +276,8 @@ Cura.MachineAction width: parent.width wrapMode: Text.WordWrap text:{ - if (base.selectedPrinter == undefined || base.selectedPrinter == null) - { - return ""; - } // The property cluster size does not exist for older UM3 devices. - if(base.selectedPrinter != undefined && (base.selectedPrinter.clusterSize == null || base.selectedPrinter.clusterSize == 1)) + if(!base.selectedPrinter && (base.selectedPrinter.clusterSize == null || base.selectedPrinter.clusterSize == 1)) { return ""; } From 78456d5bc3f3ba42242bdb80e4bde83edc9336d4 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 9 Nov 2017 09:06:46 +0100 Subject: [PATCH 208/218] Fix clusterSize property check in QML --- plugins/UM3NetworkPrinting/DiscoverUM3Action.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml index e4cbc6a0c7..cec2bf0f0f 100644 --- a/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml +++ b/plugins/UM3NetworkPrinting/DiscoverUM3Action.qml @@ -277,7 +277,7 @@ Cura.MachineAction wrapMode: Text.WordWrap text:{ // The property cluster size does not exist for older UM3 devices. - if(!base.selectedPrinter && (base.selectedPrinter.clusterSize == null || base.selectedPrinter.clusterSize == 1)) + if(!base.selectedPrinter || base.selectedPrinter.clusterSize == null || base.selectedPrinter.clusterSize == 1) { return ""; } From 714c0f25da628cdbcf26362314b013cf0ef231fe Mon Sep 17 00:00:00 2001 From: kaleidoscopeit Date: Thu, 9 Nov 2017 10:25:30 +0100 Subject: [PATCH 209/218] Set all "setting_version" in qualitites to 4 --- resources/quality/deltacomb/deltacomb_abs_fast.inst.cfg | 2 +- resources/quality/deltacomb/deltacomb_abs_high.inst.cfg | 2 +- resources/quality/deltacomb/deltacomb_abs_normal.inst.cfg | 2 +- resources/quality/deltacomb/deltacomb_nylon_fast.inst.cfg | 2 +- resources/quality/deltacomb/deltacomb_nylon_high.inst.cfg | 2 +- resources/quality/deltacomb/deltacomb_nylon_normal.inst.cfg | 2 +- resources/quality/deltacomb/deltacomb_pla_fast.inst.cfg | 2 +- resources/quality/deltacomb/deltacomb_pla_high.inst.cfg | 2 +- resources/quality/deltacomb/deltacomb_pla_normal.inst.cfg | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/resources/quality/deltacomb/deltacomb_abs_fast.inst.cfg b/resources/quality/deltacomb/deltacomb_abs_fast.inst.cfg index a44ad8c271..43643b6b92 100644 --- a/resources/quality/deltacomb/deltacomb_abs_fast.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_abs_fast.inst.cfg @@ -5,7 +5,7 @@ name = Fast Quality (beta) [metadata] type = quality -setting_version = 3 +setting_version = 4 material = generic_abs_175 quality_type = fast weight = -1 diff --git a/resources/quality/deltacomb/deltacomb_abs_high.inst.cfg b/resources/quality/deltacomb/deltacomb_abs_high.inst.cfg index 7a21407d1b..99e47bc9cb 100644 --- a/resources/quality/deltacomb/deltacomb_abs_high.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_abs_high.inst.cfg @@ -5,7 +5,7 @@ name = High Quality (beta) [metadata] type = quality -setting_version = 3 +setting_version = 4 material = generic_abs_175 quality_type = high weight = 1 diff --git a/resources/quality/deltacomb/deltacomb_abs_normal.inst.cfg b/resources/quality/deltacomb/deltacomb_abs_normal.inst.cfg index e1889c008f..a2aa2be769 100644 --- a/resources/quality/deltacomb/deltacomb_abs_normal.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_abs_normal.inst.cfg @@ -5,7 +5,7 @@ name = Normal Quality (beta) [metadata] type = quality -setting_version = 3 +setting_version = 4 material = generic_abs_175 quality_type = normal weight = 0 diff --git a/resources/quality/deltacomb/deltacomb_nylon_fast.inst.cfg b/resources/quality/deltacomb/deltacomb_nylon_fast.inst.cfg index ec10bfc510..fac23939cf 100644 --- a/resources/quality/deltacomb/deltacomb_nylon_fast.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_nylon_fast.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_175 quality_type = fast weight = -1 -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/deltacomb/deltacomb_nylon_high.inst.cfg b/resources/quality/deltacomb/deltacomb_nylon_high.inst.cfg index db2a31c468..d594126474 100644 --- a/resources/quality/deltacomb/deltacomb_nylon_high.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_nylon_high.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_175 quality_type = high weight = 1 -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/deltacomb/deltacomb_nylon_normal.inst.cfg b/resources/quality/deltacomb/deltacomb_nylon_normal.inst.cfg index a0504adfd8..76716fc16d 100644 --- a/resources/quality/deltacomb/deltacomb_nylon_normal.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_nylon_normal.inst.cfg @@ -8,7 +8,7 @@ type = quality material = generic_nylon_175 quality_type = normal weight = 0 -setting_version = 3 +setting_version = 4 [values] adhesion_type = raft diff --git a/resources/quality/deltacomb/deltacomb_pla_fast.inst.cfg b/resources/quality/deltacomb/deltacomb_pla_fast.inst.cfg index a91e009353..9783cb11cc 100644 --- a/resources/quality/deltacomb/deltacomb_pla_fast.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_pla_fast.inst.cfg @@ -5,7 +5,7 @@ name = Fast Quality [metadata] type = quality -setting_version = 3 +setting_version = 4 material = generic_pla_175 quality_type = fast weight = -1 diff --git a/resources/quality/deltacomb/deltacomb_pla_high.inst.cfg b/resources/quality/deltacomb/deltacomb_pla_high.inst.cfg index c42a18d8eb..9513e98b6a 100644 --- a/resources/quality/deltacomb/deltacomb_pla_high.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_pla_high.inst.cfg @@ -5,7 +5,7 @@ name = High Quality [metadata] type = quality -setting_version = 3 +setting_version = 4 material = generic_pla_175 quality_type = high weight = 1 diff --git a/resources/quality/deltacomb/deltacomb_pla_normal.inst.cfg b/resources/quality/deltacomb/deltacomb_pla_normal.inst.cfg index a433f2d0dd..d88f5909f0 100644 --- a/resources/quality/deltacomb/deltacomb_pla_normal.inst.cfg +++ b/resources/quality/deltacomb/deltacomb_pla_normal.inst.cfg @@ -5,7 +5,7 @@ name = Normal Quality [metadata] type = quality -setting_version = 3 +setting_version = 4 material = generic_pla_175 quality_type = normal weight = 0 From 637d1a1da30ec312efcdd69696ed0b41910b18fe Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 9 Nov 2017 10:37:24 +0100 Subject: [PATCH 210/218] Fix Vertex Delta K8800 definition file --- resources/definitions/vertex_delta_k8800.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/vertex_delta_k8800.def.json b/resources/definitions/vertex_delta_k8800.def.json index ddfa54f4c8..0a89b61b36 100644 --- a/resources/definitions/vertex_delta_k8800.def.json +++ b/resources/definitions/vertex_delta_k8800.def.json @@ -11,7 +11,7 @@ }, "overrides": { "material_diameter": { - "default_value": 1.75, + "default_value": 1.75 }, "machine_width": { "default_value": 200 From 477e295e707609b8505a1c3d599c4f3b8d6942d8 Mon Sep 17 00:00:00 2001 From: Andreea Scorojitu Date: Thu, 9 Nov 2017 12:02:01 +0100 Subject: [PATCH 211/218] Change_Color_UI_elements_CURA-4548 --- resources/themes/cura-light/theme.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 50ee600e4e..ceb5b64263 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -100,7 +100,7 @@ "button_text_hover": [255, 255, 255, 255], "button_text_active": [255, 255, 255, 255], "button_text_active_hover": [255, 255, 255, 255], - "button_disabled": [24, 41, 77, 255], + "button_disabled": [31, 36, 39, 255], "button_disabled_text": [255, 255, 255, 101], "button_tooltip": [31, 36, 39, 255], @@ -116,7 +116,7 @@ "action_button_text": [0, 0, 0, 255], "action_button_border": [127, 127, 127, 255], "action_button_hovered": [255, 255, 255, 255], - "action_button_hovered_text": [24, 41, 77, 255], + "action_button_hovered_text": [31, 36, 39, 255], "action_button_hovered_border": [12, 169, 227, 255], "action_button_active": [255, 255, 255, 255], "action_button_active_text": [0, 0, 0, 255], @@ -134,7 +134,7 @@ "print_button_ready_pressed_border": [30, 186, 245, 243], "scrollbar_background": [255, 255, 255, 255], - "scrollbar_handle": [24, 41, 77, 255], + "scrollbar_handle": [31, 36, 39, 255], "scrollbar_handle_hover": [12, 159, 227, 255], "scrollbar_handle_down": [12, 159, 227, 255], @@ -143,11 +143,11 @@ "setting_category_hover": [245, 245, 245, 255], "setting_category_active": [245, 245, 245, 255], "setting_category_active_hover": [245, 245, 245, 255], - "setting_category_text": [24, 41, 77, 255], + "setting_category_text": [31, 36, 39, 255], "setting_category_disabled_text": [24, 41, 77, 101], - "setting_category_hover_text": [24, 41, 77, 255], - "setting_category_active_text": [24, 41, 77, 255], - "setting_category_active_hover_text": [24, 41, 77, 255], + "setting_category_hover_text": [31, 36, 39, 255], + "setting_category_active_text": [31, 36, 39, 255], + "setting_category_active_hover_text": [31, 36, 39, 255], "setting_category_border": [245, 245, 245, 255], "setting_category_disabled_border": [245, 245, 245, 255], "setting_category_hover_border": [12, 159, 227, 255], @@ -155,7 +155,7 @@ "setting_category_active_hover_border": [12, 159, 227, 255], "setting_control": [255, 255, 255, 255], - "setting_control_selected": [24, 41, 77, 255], + "setting_control_selected": [31, 36, 39, 255], "setting_control_highlight": [255, 255, 255, 255], "setting_control_border": [127, 127, 127, 255], "setting_control_border_highlight": [12, 169, 227, 255], @@ -203,9 +203,9 @@ "mode_switch_hover": [255, 255, 255, 255], "mode_switch_border": [127, 127, 127, 255], "mode_switch_border_hover": [12, 169, 227, 255], - "mode_switch_handle": [24, 41, 77, 255], - "mode_switch_text": [24, 41, 77, 255], - "mode_switch_text_hover": [24, 41, 77, 255], + "mode_switch_handle": [31, 36, 39, 255], + "mode_switch_text": [31, 36, 39, 255], + "mode_switch_text_hover": [31, 36, 39, 255], "mode_switch_text_checked": [12, 169, 227, 255], "tooltip": [68, 192, 255, 255], From f2e7fef747d4424ab6c1fdc73cadcc47f3eb55cb Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 9 Nov 2017 13:51:47 +0100 Subject: [PATCH 212/218] Update PreviewPass so that only slicable objects are rendered --- cura/PreviewPass.py | 51 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 11 deletions(-) diff --git a/cura/PreviewPass.py b/cura/PreviewPass.py index fd87754ae3..c1880e82ef 100644 --- a/cura/PreviewPass.py +++ b/cura/PreviewPass.py @@ -2,27 +2,56 @@ # Uranium is released under the terms of the LGPLv3 or higher. from UM.Application import Application -from UM.View.RenderPass import RenderPass -from UM.Scene.Camera import Camera +from UM.Resources import Resources -## A render pass subclass that renders everything with default parameters, but can be used with a non-default camera +from UM.View.RenderPass import RenderPass +from UM.View.GL.OpenGL import OpenGL +from UM.View.RenderBatch import RenderBatch + + +from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator + +from typing import Optional + +MYPY = False +if MYPY: + from UM.Scene.Camera import Camera + +## A render pass subclass that renders slicable objects with default parameters. +# It uses the active camera by default, but it can be overridden to use a different camera. # # This is useful to get a preview image of a scene taken from a different location as the active camera. class PreviewPass(RenderPass): - def __init__(self, width, height): + def __init__(self, width: int, height: int): super().__init__("preview", width, height, 0) - self._camera = Application.getInstance().getController().getScene().getActiveCamera() + self._camera = None # type: Optional[Camera] + self._renderer = Application.getInstance().getRenderer() - # Override the camera to be used for this render pass - def setCamera(self, camera: Camera): + self._shader = None + self._scene = Application.getInstance().getController().getScene() + + # Set the camera to be used by this render pass + # if it's None, the active camera is used + def setCamera(self, camera: Optional["Camera"]): self._camera = camera - def render(self): + def render(self) -> None: + if not self._shader: + self._shader = OpenGL.getInstance().createShaderProgram(Resources.getPath(Resources.Shaders, "object.shader")) + + # Create a new batch to be rendered + batch = RenderBatch(self._shader) + + # Fill up the batch with objects that can be sliced. ` + for node in DepthFirstIterator(self._scene.getRoot()): + if node.callDecoration("isSliceable") and node.getMeshData() and node.isVisible(): + batch.addItem(node.getWorldTransformation(), node.getMeshData()) + self.bind() - - for batch in self._renderer.getBatches(): + if self._camera is None: + batch.render(Application.getInstance().getController().getScene().getActiveCamera()) + else: batch.render(self._camera) - self.release() From 6d05c320a83e77dc559db2bd2d32dc4beadaa28c Mon Sep 17 00:00:00 2001 From: Ruben D Date: Sat, 11 Nov 2017 17:51:33 +0100 Subject: [PATCH 213/218] Remove disfunctional initial layer z offset settings The pull request for the engine wasn't merged. It looks like the pull request for the front-end settings wasn't merged either, but here they are. They shouldn't be here. Fixes #2744. --- resources/definitions/fdmprinter.def.json | 24 ----------------------- 1 file changed, 24 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 550733badf..ae7050a546 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4132,30 +4132,6 @@ "settable_per_extruder": true, "limit_to_extruder": "adhesion_extruder_nr" }, - "z_offset_layer_0": - { - "label": "Initial Layer Z Offset", - "description": "The extruder is offset from the normal height of the first layer by this amount. It can be positive (raised) or negative (lowered). Some filament types adhere to the build plate better if the extruder is raised slightly.", - "unit": "mm", - "type": "float", - "default_value": 0, - "minimum_value_warning": "0", - "maximum_value_warning": "layer_height_0", - "enabled": "resolveOrValue('adhesion_type') != 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "z_offset_taper_layers": - { - "label": "Z Offset Taper Layers", - "description": "When non-zero, the Z offset is reduced to 0 over that many layers. A value of 0 means that the Z offset remains constant for all the layers in the print.", - "type": "int", - "default_value": 0, - "minimum_value": "0", - "enabled": "resolveOrValue('adhesion_type') != 'raft' and z_offset_layer_0 != 0", - "settable_per_mesh": false, - "settable_per_extruder": false - }, "raft_margin": { "label": "Raft Extra Margin", From 720b9ebdfab1e0e0df185a262b9b36f735dec23c Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 13 Nov 2017 11:06:27 +0100 Subject: [PATCH 214/218] CURA-4556 Add profiles for AA0.25 and BAM material --- .../um3_aa0.25_ABS_Normal_Quality.inst.cfg | 24 ++++++++ .../um3_aa0.25_CPE_Normal_Quality.inst.cfg | 22 +++++++ .../um3_aa0.25_Nylon_Normal_Quality.inst.cfg | 37 ++++++++++++ .../um3_aa0.25_PC_Normal_Quality.inst.cfg | 53 ++++++++++++++++ .../um3_aa0.25_PLA_Normal_Quality.inst.cfg | 37 ++++++++++++ .../um3_aa0.25_PP_Normal_Quality.inst.cfg | 60 +++++++++++++++++++ .../um3_aa0.4_BAM_Draft_Print.inst.cfg | 38 ++++++++++++ .../um3_aa0.4_BAM_Fast_Print.inst.cfg | 38 ++++++++++++ .../um3_aa0.4_BAM_Normal_Quality.inst.cfg | 36 +++++++++++ resources/variants/ultimaker3_aa0.25.inst.cfg | 40 +++++++++++++ .../ultimaker3_extended_aa0.25.inst.cfg | 40 +++++++++++++ 11 files changed, 425 insertions(+) create mode 100644 resources/quality/ultimaker3/um3_aa0.25_ABS_Normal_Quality.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.25_CPE_Normal_Quality.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.25_Nylon_Normal_Quality.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.25_PLA_Normal_Quality.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg create mode 100644 resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg create mode 100644 resources/variants/ultimaker3_aa0.25.inst.cfg create mode 100644 resources/variants/ultimaker3_extended_aa0.25.inst.cfg diff --git a/resources/quality/ultimaker3/um3_aa0.25_ABS_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_ABS_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..5d798d556e --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.25_ABS_Normal_Quality.inst.cfg @@ -0,0 +1,24 @@ +[general] +version = 2 +name = Fine +definition = ultimaker3 + +[metadata] +type = quality +quality_type = normal +material = generic_abs_ultimaker3_AA_0.25 +weight = 0 +setting_version = 4 + +[values] +cool_fan_speed = 40 +infill_overlap = 15 +material_final_print_temperature = =material_print_temperature - 5 +prime_tower_enable = True +prime_tower_purge_volume = 0.6 +prime_tower_size = 12 +prime_tower_wall_thickness = 0.9 +retraction_prime_speed = 25 +speed_topbottom = =math.ceil(speed_print * 30 / 55) +wall_thickness = 0.92 + diff --git a/resources/quality/ultimaker3/um3_aa0.25_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_CPE_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..a68b43fa2a --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.25_CPE_Normal_Quality.inst.cfg @@ -0,0 +1,22 @@ +[general] +version = 2 +name = Fine +definition = ultimaker3 + +[metadata] +type = quality +quality_type = normal +material = generic_cpe_ultimaker3_AA_0.25 +weight = 0 +setting_version = 4 + +[values] +infill_overlap = =10 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0 +prime_tower_size = 12 +prime_tower_wall_thickness = 0.9 +retraction_extrusion_window = 0.5 +speed_infill = 40 +speed_topbottom = =math.ceil(speed_print * 30 / 55) +top_bottom_thickness = 0.8 +wall_thickness = 0.92 + diff --git a/resources/quality/ultimaker3/um3_aa0.25_Nylon_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_Nylon_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..fda770266e --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.25_Nylon_Normal_Quality.inst.cfg @@ -0,0 +1,37 @@ +[general] +version = 2 +name = Fine +definition = ultimaker3 + +[metadata] +type = quality +quality_type = normal +material = generic_nylon_ultimaker3_AA_0.25 +weight = 0 +setting_version = 4 + +[values] +cool_min_layer_time_fan_speed_max = 20 +cool_min_speed = 12 +infill_line_width = =round(line_width * 0.5 / 0.4, 2) +infill_overlap = =10 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0 +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 2.0 +ooze_shield_angle = 40 +raft_acceleration = =acceleration_layer_0 +raft_airgap = =round(layer_height_0 * 0.85, 2) +raft_interface_thickness = =round(machine_nozzle_size * 0.3 / 0.4, 3) +raft_jerk = =jerk_layer_0 +raft_margin = 10 +raft_surface_thickness = =round(machine_nozzle_size * 0.2 / 0.4, 2) +retraction_extrusion_window = =retraction_amount +retraction_min_travel = =line_width * 2 +skin_overlap = 50 +speed_print = 70 +speed_topbottom = =math.ceil(speed_print * 30 / 70) +speed_wall = =math.ceil(speed_print * 30 / 70) +switch_extruder_prime_speed = 30 +switch_extruder_retraction_amount = 30 +switch_extruder_retraction_speeds = 40 +wall_line_width_x = =wall_line_width + diff --git a/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..43b8f95677 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.25_PC_Normal_Quality.inst.cfg @@ -0,0 +1,53 @@ +[general] +version = 2 +name = Fine - Experimental +definition = ultimaker3 + +[metadata] +type = quality +quality_type = normal +material = generic_pc_ultimaker3_AA_0.25 +weight = 0 +setting_version = 4 + +[values] +acceleration_enabled = True +acceleration_print = 4000 +adhesion_type = brim +brim_width = 20 +cool_fan_full_at_height = =layer_height_0 + layer_height +cool_fan_speed_max = 50 +cool_min_layer_time_fan_speed_max = 5 +cool_min_speed = 5 +infill_line_width = =line_width +infill_pattern = triangles +infill_wipe_dist = 0.1 +jerk_enabled = True +jerk_print = 25 +machine_min_cool_heat_time_window = 15 +multiple_mesh_overlap = 0 +ooze_shield_angle = 40 +prime_tower_enable = True +retraction_count_max = 80 +retraction_hop = 2 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.8 +retraction_prime_speed = 15 +skin_overlap = 30 +speed_layer_0 = 25 +speed_print = 50 +speed_topbottom = 25 +speed_travel = 250 +speed_wall = =math.ceil(speed_print * 40 / 50) +speed_wall_0 = =math.ceil(speed_wall * 25 / 40) +support_bottom_distance = =support_z_distance +support_interface_density = 87.5 +support_interface_pattern = lines +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +wall_0_inset = 0 +wall_line_width_x = =line_width +wall_thickness = 1.2 + diff --git a/resources/quality/ultimaker3/um3_aa0.25_PLA_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_PLA_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..d3772448cf --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.25_PLA_Normal_Quality.inst.cfg @@ -0,0 +1,37 @@ +[general] +version = 2 +name = Fine +definition = ultimaker3 + +[metadata] +type = quality +quality_type = normal +material = generic_pla_ultimaker3_AA_0.25 +weight = 0 +setting_version = 4 + +[values] +brim_width = 8 +cool_fan_full_at_height = =layer_height_0 +cool_min_speed = 10 +infill_overlap = 10 +infill_pattern = grid +machine_nozzle_cool_down_speed = 0.9 +machine_nozzle_heat_up_speed = 2.0 +material_final_print_temperature = =max(-273.15, material_print_temperature - 15) +material_initial_print_temperature = =max(-273.15, material_print_temperature - 10) +material_print_temperature = 190 +retraction_extrusion_window = =retraction_amount +retraction_hop = 0.2 +skin_overlap = 5 +speed_layer_0 = 30 +speed_print = 30 +speed_travel_layer_0 = 120 +speed_wall = 25 +speed_wall_0 = 20 +top_bottom_thickness = 0.72 +travel_avoid_distance = 0.4 +wall_0_inset = 0.015 +wall_0_wipe_dist = 0.25 +wall_thickness = 0.7 + diff --git a/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..7f138f979d --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.25_PP_Normal_Quality.inst.cfg @@ -0,0 +1,60 @@ +[general] +version = 2 +name = Fine - Experimental +definition = ultimaker3 + +[metadata] +type = quality +quality_type = normal +material = generic_pp_ultimaker3_AA_0.25 +weight = 0 +setting_version = 4 + +[values] +acceleration_enabled = True +acceleration_print = 4000 +brim_width = 10 +cool_fan_speed_max = 100 +cool_min_layer_time_fan_speed_max = 5 +cool_min_speed = 2.5 +infill_line_width = =round(line_width * 0.38 / 0.38, 2) +infill_pattern = tetrahedral +infill_wipe_dist = 0.1 +jerk_enabled = True +jerk_print = 25 +line_width = =machine_nozzle_size * 0.92 +machine_min_cool_heat_time_window = 15 +material_bed_temperature_layer_0 = 90 +material_final_print_temperature = 195 +material_initial_print_temperature = 200 +material_print_temperature = 205 +material_print_temperature_layer_0 = 208 +multiple_mesh_overlap = 0 +prime_tower_enable = False +prime_tower_size = 16 +prime_tower_wipe_enabled = True +retraction_count_max = 6 +retraction_extra_prime_amount = 0.2 +retraction_extrusion_window = 6.5 +retraction_hop = 2 +retraction_hop_enabled = True +retraction_hop_only_when_collides = True +retraction_min_travel = 0.8 +retraction_prime_speed = 13 +speed_equalize_flow_enabled = True +speed_layer_0 = 15 +speed_print = 25 +speed_travel = 300 +speed_travel_layer_0 = 50 +speed_wall = =math.ceil(speed_print * 25 / 25) +speed_wall_0 = =math.ceil(speed_wall * 25 / 25) +support_angle = 50 +switch_extruder_prime_speed = 15 +switch_extruder_retraction_amount = 20 +switch_extruder_retraction_speeds = 35 +top_bottom_thickness = 1 +travel_avoid_distance = 3 +wall_0_inset = 0 +wall_line_width_x = =line_width +wall_thickness = =line_width * 3 + diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg new file mode 100644 index 0000000000..980da522c8 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Draft_Print.inst.cfg @@ -0,0 +1,38 @@ +[general] +version = 2 +name = Fast +definition = ultimaker3 + +[metadata] +type = quality +quality_type = draft +material = generic_bam_ultimaker3_AA_0.4 +weight = -2 +setting_version = 4 + +[values] +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_fan_speed_max = =cool_fan_speed +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_print_temperature = =230 +material_standby_temperature = 100 +# prime_tower_enable: see CURA-4248 +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +skin_overlap = 20 +speed_layer_0 = 20 +speed_topbottom = =math.ceil(speed_print * 35 / 70) +speed_wall = =math.ceil(speed_print * 50 / 70) +speed_wall_0 = =math.ceil(speed_wall * 35 / 50) +top_bottom_thickness = 1 +wall_thickness = 1 +support_interface_enable = True +support_interface_density = =min(extruderValues('material_surface_energy')) +support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' +support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height +support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height +support_angle = 45 +support_join_distance = 5 +support_offset = 2 +support_pattern = triangles +support_infill_rate = 10 diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg new file mode 100644 index 0000000000..86b584c9af --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Fast_Print.inst.cfg @@ -0,0 +1,38 @@ +[general] +version = 2 +name = Normal +definition = ultimaker3 + +[metadata] +type = quality +quality_type = fast +material = generic_bam_ultimaker3_AA_0.4 +weight = -1 +setting_version = 4 + +[values] +default_material_print_temperature = 225 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_fan_speed_max = =cool_fan_speed +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_standby_temperature = 100 +# prime_tower_enable: see CURA-4248 +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +speed_print = 80 +speed_layer_0 = 20 +speed_topbottom = =math.ceil(speed_print * 30 / 80) +speed_wall = =math.ceil(speed_print * 40 / 80) +speed_wall_0 = =math.ceil(speed_wall * 30 / 40) +top_bottom_thickness = 1 +wall_thickness = 1 +support_interface_enable = True +support_interface_density = =min(extruderValues('material_surface_energy')) +support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' +support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height +support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height +support_angle = 45 +support_join_distance = 5 +support_offset = 2 +support_pattern = triangles +support_infill_rate = 10 diff --git a/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg new file mode 100644 index 0000000000..b9f35fcfa0 --- /dev/null +++ b/resources/quality/ultimaker3/um3_aa0.4_BAM_Normal_Quality.inst.cfg @@ -0,0 +1,36 @@ +[general] +version = 2 +name = Fine +definition = ultimaker3 + +[metadata] +type = quality +quality_type = normal +material = generic_bam_ultimaker3_AA_0.4 +weight = 0 +setting_version = 4 + +[values] +default_material_print_temperature = 225 +cool_fan_full_at_height = =layer_height_0 + 2 * layer_height +cool_fan_speed_max = =cool_fan_speed +cool_min_speed = 7 +machine_nozzle_cool_down_speed = 0.75 +machine_nozzle_heat_up_speed = 1.6 +material_standby_temperature = 100 +# prime_tower_enable: see CURA-4248 +prime_tower_enable = =min(extruderValues('material_surface_energy')) < 100 +skin_overlap = 10 +speed_layer_0 = 20 +top_bottom_thickness = 1 +wall_thickness = 1 +support_interface_enable = True +support_interface_density = =min(extruderValues('material_surface_energy')) +support_interface_pattern = ='lines' if support_interface_density < 100 else 'concentric' +support_top_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 1) * layer_height +support_bottom_distance = =math.ceil(min(extruderValues('material_adhesion_tendency')) / 2) * layer_height +support_angle = 45 +support_join_distance = 5 +support_offset = 2 +support_pattern = triangles +support_infill_rate = 10 diff --git a/resources/variants/ultimaker3_aa0.25.inst.cfg b/resources/variants/ultimaker3_aa0.25.inst.cfg new file mode 100644 index 0000000000..ebb584f674 --- /dev/null +++ b/resources/variants/ultimaker3_aa0.25.inst.cfg @@ -0,0 +1,40 @@ +[general] +name = AA 0.25 +version = 2 +definition = ultimaker3 + +[metadata] +author = ultimaker +type = variant +setting_version = 4 + +[values] +brim_width = 7 +infill_line_width = 0.23 +infill_overlap = 0 +layer_height_0 = 0.17 +line_width = 0.23 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_id = AA 0.25 +machine_nozzle_size = 0.25 +machine_nozzle_tip_outer_diameter = 0.65 +material_final_print_temperature = =material_print_temperature - 10 +material_initial_print_temperature = =material_print_temperature - 5 +raft_interface_thickness = =layer_height * 1.5 +retraction_count_max = 25 +retraction_extrusion_window = 1 +retraction_min_travel = 0.7 +skin_overlap = 15 +speed_layer_0 = 20 +speed_print = 55 +speed_topbottom = 20 +speed_wall = =math.ceil(speed_print * 30 / 55) +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 +top_bottom_thickness = 1.2 +wall_line_width_x = 0.23 +wall_thickness = 1.3 + diff --git a/resources/variants/ultimaker3_extended_aa0.25.inst.cfg b/resources/variants/ultimaker3_extended_aa0.25.inst.cfg new file mode 100644 index 0000000000..631768346e --- /dev/null +++ b/resources/variants/ultimaker3_extended_aa0.25.inst.cfg @@ -0,0 +1,40 @@ +[general] +name = AA 0.25 +version = 2 +definition = ultimaker3_extended + +[metadata] +author = ultimaker +type = variant +setting_version = 4 + +[values] +brim_width = 7 +infill_line_width = 0.23 +infill_overlap = 0 +layer_height_0 = 0.17 +line_width = 0.23 +machine_nozzle_cool_down_speed = 0.85 +machine_nozzle_heat_up_speed = 1.5 +machine_nozzle_id = AA 0.25 +machine_nozzle_size = 0.25 +machine_nozzle_tip_outer_diameter = 0.65 +material_final_print_temperature = =material_print_temperature - 10 +material_initial_print_temperature = =material_print_temperature - 5 +raft_interface_thickness = =layer_height * 1.5 +retraction_count_max = 25 +retraction_extrusion_window = 1 +retraction_min_travel = 0.7 +skin_overlap = 15 +speed_layer_0 = 20 +speed_print = 55 +speed_topbottom = 20 +speed_wall = =math.ceil(speed_print * 30 / 55) +support_angle = 60 +support_bottom_distance = =support_z_distance / 2 +support_top_distance = =support_z_distance +support_z_distance = =layer_height * 2 +top_bottom_thickness = 1.2 +wall_line_width_x = 0.23 +wall_thickness = 1.3 + From 913bcf45b184fe01392e41803a260d37b333a30c Mon Sep 17 00:00:00 2001 From: Mark Date: Tue, 14 Nov 2017 11:53:24 +0100 Subject: [PATCH 215/218] Add stderr to send errors to --- .../RemovableDriveOutputDevice/OSXRemovableDrivePlugin.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/plugins/RemovableDriveOutputDevice/OSXRemovableDrivePlugin.py b/plugins/RemovableDriveOutputDevice/OSXRemovableDrivePlugin.py index d87499273b..5ad2caed0b 100644 --- a/plugins/RemovableDriveOutputDevice/OSXRemovableDrivePlugin.py +++ b/plugins/RemovableDriveOutputDevice/OSXRemovableDrivePlugin.py @@ -4,8 +4,6 @@ from . import RemovableDrivePlugin -from UM.Logger import Logger - import subprocess import os @@ -15,12 +13,12 @@ import plistlib class OSXRemovableDrivePlugin(RemovableDrivePlugin.RemovableDrivePlugin): def checkRemovableDrives(self): drives = {} - p = subprocess.Popen(["system_profiler", "SPUSBDataType", "-xml"], stdout = subprocess.PIPE) + p = subprocess.Popen(["system_profiler", "SPUSBDataType", "-xml"], stdout = subprocess.PIPE, stderr = subprocess.PIPE) plist = plistlib.loads(p.communicate()[0]) result = self._recursiveSearch(plist, "removable_media") - p = subprocess.Popen(["system_profiler", "SPCardReaderDataType", "-xml"], stdout=subprocess.PIPE) + p = subprocess.Popen(["system_profiler", "SPCardReaderDataType", "-xml"], stdout=subprocess.PIPE, stderr = subprocess.PIPE) plist = plistlib.loads(p.communicate()[0]) result.extend(self._recursiveSearch(plist, "removable_media")) From 8dd91519a67983b913c4d18d7ccb4dcbf3cdef82 Mon Sep 17 00:00:00 2001 From: Ruben D Date: Wed, 15 Nov 2017 00:52:37 +0100 Subject: [PATCH 216/218] Move Support Chunk Size out of children of skip_some_zags The rule is that leaf settings are the ones that are used by the engine. The support_skip_some_zags setting is used by the engine. --- resources/definitions/fdmprinter.def.json | 54 ++++++++++++----------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index ae7050a546..b17769eba2 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -5075,7 +5075,8 @@ "default_value": false, "settable_per_mesh": true }, - "support_skip_some_zags": { + "support_skip_some_zags": + { "label": "Break Up Support In Chunks", "description": "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern.", "type": "bool", @@ -5083,35 +5084,36 @@ "enabled": "support_enable and (support_pattern == 'zigzag')", "limit_to_extruder": "support_infill_extruder_nr", "settable_per_mesh": false, + "settable_per_extruder": true + }, + "support_skip_zag_per_mm": + { + "label": "Support Chunk Size", + "description": "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away.", + "type": "float", + "unit": "mm", + "default_value": 20, + "minimum_value": "0", + "minimum_value_warning": "support_line_distance", + "enabled": "support_enable and (support_pattern == 'zigzag') and support_skip_some_zags", + "limit_to_extruder": "support_infill_extruder_nr", + "settable_per_mesh": false, "settable_per_extruder": true, - "children": { - "support_skip_zag_per_mm": { - "label": "Support Chunk Size", - "description": "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away.", - "type": "float", - "unit": "mm", - "default_value": 20, - "minimum_value": "0", - "minimum_value_warning": "support_line_distance", + "children": + { + "support_zag_skip_count": + { + "label": "Support Chunk Line Count", + "description": "Skip one in every N connection lines to make the support structure easier to break away.", + "type": "int", + "default_value": 5, + "value": "round(support_skip_zag_per_mm / support_line_distance)", + "minimum_value": "1", + "minimum_value_warning": "3", "enabled": "support_enable and (support_pattern == 'zigzag') and support_skip_some_zags", "limit_to_extruder": "support_infill_extruder_nr", "settable_per_mesh": false, - "settable_per_extruder": true, - "children": { - "support_zag_skip_count": { - "label": "Support Chunk Line Count", - "description": "Skip one in every N connection lines to make the support structure easier to break away.", - "type": "int", - "default_value": 5, - "value": "round(support_skip_zag_per_mm / support_line_distance)", - "minimum_value": "1", - "minimum_value_warning": "3", - "enabled": "support_enable and (support_pattern == 'zigzag') and support_skip_some_zags", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } + "settable_per_extruder": true } } }, From b2da4894b1f4eca8b39a288b6fc73ab830e69950 Mon Sep 17 00:00:00 2001 From: Thomas Karl Pietrowski Date: Wed, 15 Nov 2017 01:21:08 +0100 Subject: [PATCH 217/218] CuraApplication: Rename file --> file_name 'file' is a built-in function! --- cura/CuraApplication.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 41358b83f5..96ca15741e 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -719,8 +719,8 @@ class CuraApplication(QtApplication): if run_headless or self._engine.rootObjects: self.closeSplash() - for file in self.getCommandLineOption("file", []): - self._openFile(file) + for file_name in self.getCommandLineOption("file", []): + self._openFile(file_name) for file_name in self._open_file_queue: #Open all the files that were queued up while plug-ins were loading. self._openFile(file_name) From 7aeaf661ae4a604a583de911dabd5876748686e8 Mon Sep 17 00:00:00 2001 From: Andreea Scorojitu Date: Wed, 15 Nov 2017 13:40:46 +0100 Subject: [PATCH 218/218] Change_Color_UI_elements_CURA-4548 --- resources/themes/cura-light/theme.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index ceb5b64263..f084e87da2 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -83,8 +83,8 @@ "error": [255, 140, 0, 255], "sidebar_header_bar": [31, 36, 39, 255], - "sidebar_header_active": [31, 36, 39, 255], - "sidebar_header_hover": [31, 36, 39, 255], + "sidebar_header_active": [68, 72, 75, 255], + "sidebar_header_hover": [68, 72, 75, 255], "sidebar_header_highlight": [68, 192, 255, 255], "sidebar_header_highlight_hover": [68, 192, 255, 255], "sidebar_header_text_inactive": [255, 255, 255, 255],