From e8461f65dfba5741932c1ae0cc0a6e6946ec01cd Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Tue, 9 Jul 2019 13:33:15 +0200 Subject: [PATCH 01/24] Refactoring in class BedShapePanel --- src/slic3r/GUI/BedShapeDialog.cpp | 119 +++++++++++++++--------------- src/slic3r/GUI/BedShapeDialog.hpp | 8 +- 2 files changed, 63 insertions(+), 64 deletions(-) diff --git a/src/slic3r/GUI/BedShapeDialog.cpp b/src/slic3r/GUI/BedShapeDialog.cpp index d52204d4a..166127b68 100644 --- a/src/slic3r/GUI/BedShapeDialog.cpp +++ b/src/slic3r/GUI/BedShapeDialog.cpp @@ -54,6 +54,7 @@ void BedShapeDialog::on_dpi_changed(const wxRect &suggested_rect) void BedShapePanel::build_panel(ConfigOptionPoints* default_pt) { auto sbsizer = new wxStaticBoxSizer(wxVERTICAL, this, _(L("Shape"))); + sbsizer->GetStaticBox()->SetFont(wxGetApp().bold_font()); // shape options m_shape_options_book = new wxChoicebook(this, wxID_ANY, wxDefaultPosition, @@ -61,49 +62,49 @@ void BedShapePanel::build_panel(ConfigOptionPoints* default_pt) sbsizer->Add(m_shape_options_book); auto optgroup = init_shape_options_page(_(L("Rectangular"))); - ConfigOptionDef def; - def.type = coPoints; - def.set_default_value(new ConfigOptionPoints{ Vec2d(200, 200) }); - def.label = L("Size"); - def.tooltip = L("Size in X and Y of the rectangular plate."); - Option option(def, "rect_size"); - optgroup->append_single_option_line(option); + ConfigOptionDef def; + def.type = coPoints; + def.set_default_value(new ConfigOptionPoints{ Vec2d(200, 200) }); + def.label = L("Size"); + def.tooltip = L("Size in X and Y of the rectangular plate."); + Option option(def, "rect_size"); + optgroup->append_single_option_line(option); - def.type = coPoints; - def.set_default_value(new ConfigOptionPoints{ Vec2d(0, 0) }); - def.label = L("Origin"); - def.tooltip = L("Distance of the 0,0 G-code coordinate from the front left corner of the rectangle."); - option = Option(def, "rect_origin"); - optgroup->append_single_option_line(option); + def.type = coPoints; + def.set_default_value(new ConfigOptionPoints{ Vec2d(0, 0) }); + def.label = L("Origin"); + def.tooltip = L("Distance of the 0,0 G-code coordinate from the front left corner of the rectangle."); + option = Option(def, "rect_origin"); + optgroup->append_single_option_line(option); - optgroup = init_shape_options_page(_(L("Circular"))); - def.type = coFloat; - def.set_default_value(new ConfigOptionFloat(200)); - def.sidetext = L("mm"); - def.label = L("Diameter"); - def.tooltip = L("Diameter of the print bed. It is assumed that origin (0,0) is located in the center."); - option = Option(def, "diameter"); - optgroup->append_single_option_line(option); + optgroup = init_shape_options_page(_(L("Circular"))); + def.type = coFloat; + def.set_default_value(new ConfigOptionFloat(200)); + def.sidetext = L("mm"); + def.label = L("Diameter"); + def.tooltip = L("Diameter of the print bed. It is assumed that origin (0,0) is located in the center."); + option = Option(def, "diameter"); + optgroup->append_single_option_line(option); - optgroup = init_shape_options_page(_(L("Custom"))); - Line line{ "", "" }; - line.full_width = 1; - line.widget = [this](wxWindow* parent) { - auto shape_btn = new wxButton(parent, wxID_ANY, _(L("Load shape from STL..."))); - wxSizer* shape_sizer = new wxBoxSizer(wxHORIZONTAL); - shape_sizer->Add(shape_btn, 1, wxEXPAND); + optgroup = init_shape_options_page(_(L("Custom"))); + Line line{ "", "" }; + line.full_width = 1; + line.widget = [this](wxWindow* parent) { + wxButton* shape_btn = new wxButton(parent, wxID_ANY, _(L("Load shape from STL..."))); + wxSizer* shape_sizer = new wxBoxSizer(wxHORIZONTAL); + shape_sizer->Add(shape_btn, 1, wxEXPAND); - wxSizer* sizer = new wxBoxSizer(wxVERTICAL); - sizer->Add(shape_sizer, 1, wxEXPAND); + wxSizer* sizer = new wxBoxSizer(wxVERTICAL); + sizer->Add(shape_sizer, 1, wxEXPAND); - shape_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent& e) - { - load_stl(); - })); + shape_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent& e) + { + load_stl(); + })); - return sizer; - }; - optgroup->append_line(line); + return sizer; + }; + optgroup->append_line(line); Bind(wxEVT_CHOICEBOOK_PAGE_CHANGED, ([this](wxCommandEvent& e) { @@ -134,20 +135,19 @@ void BedShapePanel::build_panel(ConfigOptionPoints* default_pt) // Create a panel for a rectangular / circular / custom bed shape. ConfigOptionsGroupShp BedShapePanel::init_shape_options_page(const wxString& title) { - auto panel = new wxPanel(m_shape_options_book); - ConfigOptionsGroupShp optgroup; - optgroup = std::make_shared(panel, _(L("Settings"))); + wxPanel* panel = new wxPanel(m_shape_options_book); + ConfigOptionsGroupShp optgroup = std::make_shared(panel, _(L("Settings"))); optgroup->label_width = 10; - optgroup->m_on_change = [this](t_config_option_key opt_key, boost::any value) { - update_shape(); - }; - - m_optgroups.push_back(optgroup); - panel->SetSizerAndFit(optgroup->sizer); - m_shape_options_book->AddPage(panel, title); + optgroup->m_on_change = [this](t_config_option_key opt_key, boost::any value) { + update_shape(); + }; + + m_optgroups.push_back(optgroup); + panel->SetSizerAndFit(optgroup->sizer); + m_shape_options_book->AddPage(panel, title); - return optgroup; + return optgroup; } // Called from the constructor. @@ -310,15 +310,13 @@ void BedShapePanel::update_shape() // Loads an stl file, projects it to the XY plane and calculates a polygon. void BedShapePanel::load_stl() { - auto dialog = new wxFileDialog(this, _(L("Choose a file to import bed shape from (STL/OBJ/AMF/3MF/PRUSA):")), "", "", - file_wildcards(FT_MODEL), wxFD_OPEN | wxFD_FILE_MUST_EXIST); - if (dialog->ShowModal() != wxID_OK) { - dialog->Destroy(); - return; - } - wxArrayString input_file; - dialog->GetPaths(input_file); - dialog->Destroy(); + wxFileDialog dialog(this, _(L("Choose a file to import bed shape from (STL/OBJ/AMF/3MF/PRUSA):")), "", "", + file_wildcards(FT_MODEL), wxFD_OPEN | wxFD_FILE_MUST_EXIST); + if (dialog.ShowModal() != wxID_OK) + return; + + wxArrayString input_file; + dialog.GetPaths(input_file); std::string file_name = input_file[0].ToUTF8().data(); @@ -327,10 +325,9 @@ void BedShapePanel::load_stl() model = Model::read_from_file(file_name); } catch (std::exception &e) { - auto msg = _(L("Error!")) + " " + file_name + " : " + e.what() + "."; - show_error(this, msg); - exit(1); - } + show_error(this, _(L("Error! Invalid model"))); + return; + } auto mesh = model.mesh(); auto expolygons = mesh.horizontal_projection(); diff --git a/src/slic3r/GUI/BedShapeDialog.hpp b/src/slic3r/GUI/BedShapeDialog.hpp index 6600a1c84..d2c67a7c7 100644 --- a/src/slic3r/GUI/BedShapeDialog.hpp +++ b/src/slic3r/GUI/BedShapeDialog.hpp @@ -25,18 +25,20 @@ public: void build_panel(ConfigOptionPoints* default_pt); + // Returns the resulting bed shape polygon. This value will be stored to the ini file. + std::vector GetValue() { return m_canvas->m_bed_shape; } + +private: ConfigOptionsGroupShp init_shape_options_page(const wxString& title); void set_shape(ConfigOptionPoints* points); void update_preview(); void update_shape(); void load_stl(); - // Returns the resulting bed shape polygon. This value will be stored to the ini file. - std::vector GetValue() { return m_canvas->m_bed_shape; } - wxChoicebook* m_shape_options_book; std::vector m_optgroups; + friend class BedShapeDialog; }; class BedShapeDialog : public DPIDialog From 75c53a53b653427de63f9b5f24637895c0562a01 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Wed, 17 Jul 2019 14:53:02 +0200 Subject: [PATCH 02/24] Refactoring of BedShapePanel and BedShapeDialog --- src/slic3r/GUI/BedShapeDialog.cpp | 28 ++++++++++++++-------------- src/slic3r/GUI/BedShapeDialog.hpp | 14 +++++++------- src/slic3r/GUI/ConfigWizard.cpp | 7 +++---- src/slic3r/GUI/Tab.cpp | 8 ++++---- 4 files changed, 28 insertions(+), 29 deletions(-) diff --git a/src/slic3r/GUI/BedShapeDialog.cpp b/src/slic3r/GUI/BedShapeDialog.cpp index 166127b68..98a5178df 100644 --- a/src/slic3r/GUI/BedShapeDialog.cpp +++ b/src/slic3r/GUI/BedShapeDialog.cpp @@ -16,7 +16,7 @@ namespace Slic3r { namespace GUI { -void BedShapeDialog::build_dialog(ConfigOptionPoints* default_pt) +void BedShapeDialog::build_dialog(const ConfigOptionPoints& default_pt) { SetFont(wxGetApp().normal_font()); m_panel = new BedShapePanel(this); @@ -51,7 +51,7 @@ void BedShapeDialog::on_dpi_changed(const wxRect &suggested_rect) Refresh(); } -void BedShapePanel::build_panel(ConfigOptionPoints* default_pt) +void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt) { auto sbsizer = new wxStaticBoxSizer(wxVERTICAL, this, _(L("Shape"))); sbsizer->GetStaticBox()->SetFont(wxGetApp().bold_font()); @@ -113,7 +113,7 @@ void BedShapePanel::build_panel(ConfigOptionPoints* default_pt) // right pane with preview canvas m_canvas = new Bed_2D(this); - m_canvas->m_bed_shape = default_pt->values; + m_canvas->m_bed_shape = default_pt.values; // main sizer auto top_sizer = new wxBoxSizer(wxHORIZONTAL); @@ -155,20 +155,20 @@ ConfigOptionsGroupShp BedShapePanel::init_shape_options_page(const wxString& tit // Deduce the bed shape type(rect, circle, custom) // This routine shall be smart enough if the user messes up // with the list of points in the ini file directly. -void BedShapePanel::set_shape(ConfigOptionPoints* points) +void BedShapePanel::set_shape(const ConfigOptionPoints& points) { - auto polygon = Polygon::new_scale(points->values); + auto polygon = Polygon::new_scale(points.values); // is this a rectangle ? - if (points->size() == 4) { - auto lines = polygon.lines(); + if (points.size() == 4) { + auto lines = polygon.lines(); if (lines[0].parallel_to(lines[2]) && lines[1].parallel_to(lines[3])) { // okay, it's a rectangle // find origin coordf_t x_min, x_max, y_min, y_max; - x_max = x_min = points->values[0](0); - y_max = y_min = points->values[0](1); - for (auto pt : points->values) + x_max = x_min = points.values[0](0); + y_max = y_min = points.values[0](1); + for (auto pt : points.values) { x_min = std::min(x_min, pt(0)); x_max = std::max(x_max, pt(0)); @@ -219,8 +219,8 @@ void BedShapePanel::set_shape(ConfigOptionPoints* points) } } - if (points->size() < 3) { - // Invalid polygon.Revert to default bed dimensions. + if (points.size() < 3) { + // Invalid polygon.Revert to default bed dimensions. m_shape_options_book->SetSelection(SHAPE_RECTANGULAR); auto optgroup = m_optgroups[SHAPE_RECTANGULAR]; optgroup->set_value("rect_size", new ConfigOptionPoints{ Vec2d(200, 200) }); @@ -232,7 +232,7 @@ void BedShapePanel::set_shape(ConfigOptionPoints* points) // This is a custom bed shape, use the polygon provided. m_shape_options_book->SetSelection(SHAPE_CUSTOM); // Copy the polygon to the canvas, make a copy of the array. - m_loaded_bed_shape = points->values; + m_loaded_bed_shape = points.values; update_shape(); } @@ -324,7 +324,7 @@ void BedShapePanel::load_stl() try { model = Model::read_from_file(file_name); } - catch (std::exception &e) { + catch (std::exception &) { show_error(this, _(L("Error! Invalid model"))); return; } diff --git a/src/slic3r/GUI/BedShapeDialog.hpp b/src/slic3r/GUI/BedShapeDialog.hpp index d2c67a7c7..81d47320d 100644 --- a/src/slic3r/GUI/BedShapeDialog.hpp +++ b/src/slic3r/GUI/BedShapeDialog.hpp @@ -23,15 +23,15 @@ public: BedShapePanel(wxWindow* parent) : wxPanel(parent, wxID_ANY) {} ~BedShapePanel() {} - void build_panel(ConfigOptionPoints* default_pt); - + void build_panel(const ConfigOptionPoints& default_pt); + // Returns the resulting bed shape polygon. This value will be stored to the ini file. - std::vector GetValue() { return m_canvas->m_bed_shape; } + std::vector get_bed_shape() { return m_canvas->m_bed_shape; } private: ConfigOptionsGroupShp init_shape_options_page(const wxString& title); - void set_shape(ConfigOptionPoints* points); - void update_preview(); + void set_shape(const ConfigOptionPoints& points); + void update_preview(); void update_shape(); void load_stl(); @@ -49,8 +49,8 @@ public: wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) {} ~BedShapeDialog() {} - void build_dialog(ConfigOptionPoints* default_pt); - std::vector GetValue() { return m_panel->GetValue(); } + void build_dialog(const ConfigOptionPoints& default_pt); + std::vector get_bed_shape() { return m_panel->get_bed_shape(); } protected: void on_dpi_changed(const wxRect &suggested_rect) override; diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index 8b08f6f7f..59ba93677 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -532,15 +532,14 @@ PageBedShape::PageBedShape(ConfigWizard *parent) { append_text(_(L("Set the shape of your printer's bed."))); - shape_panel->build_panel(wizard_p()->custom_config->option("bed_shape")); + shape_panel->build_panel(*wizard_p()->custom_config->option("bed_shape")); append(shape_panel); } void PageBedShape::apply_custom_config(DynamicPrintConfig &config) { - const auto points(shape_panel->GetValue()); - auto *opt = new ConfigOptionPoints(points); - config.set_key_value("bed_shape", opt); + const auto points(shape_panel->get_bed_shape()); + config.set_key_value("bed_shape", new ConfigOptionPoints(points)); } PageDiameters::PageDiameters(ConfigWizard *parent) diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 7ab564beb..a30736220 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1856,9 +1856,9 @@ void TabPrinter::build_fff() btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent e) { BedShapeDialog dlg(this); - dlg.build_dialog(m_config->option("bed_shape")); + dlg.build_dialog(*m_config->option("bed_shape")); if (dlg.ShowModal() == wxID_OK) { - std::vector shape = dlg.GetValue(); + std::vector shape = dlg.get_bed_shape(); if (!shape.empty()) { load_key_value("bed_shape", shape); @@ -2062,9 +2062,9 @@ void TabPrinter::build_sla() btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent e) { BedShapeDialog dlg(this); - dlg.build_dialog(m_config->option("bed_shape")); + dlg.build_dialog(*m_config->option("bed_shape")); if (dlg.ShowModal() == wxID_OK) { - std::vector shape = dlg.GetValue(); + std::vector shape = dlg.get_bed_shape(); if (!shape.empty()) { load_key_value("bed_shape", shape); From 08d37aad06ab8dea223ff5e7c588ae7bca74ef6e Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Thu, 18 Jul 2019 11:12:11 +0200 Subject: [PATCH 03/24] Added selection of custom bed texture to bed shape dialog --- src/libslic3r/PrintConfig.cpp | 5 + src/slic3r/GUI/2DBed.cpp | 22 ++-- src/slic3r/GUI/2DBed.hpp | 11 +- src/slic3r/GUI/BedShapeDialog.cpp | 166 ++++++++++++++++++++++++------ src/slic3r/GUI/BedShapeDialog.hpp | 26 +++-- src/slic3r/GUI/ConfigWizard.cpp | 10 +- src/slic3r/GUI/GUI_App.cpp | 9 +- src/slic3r/GUI/GUI_App.hpp | 3 + src/slic3r/GUI/Preset.cpp | 2 +- src/slic3r/GUI/Tab.cpp | 14 ++- 10 files changed, 198 insertions(+), 70 deletions(-) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 7d451a4cb..d6104d98c 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -51,6 +51,11 @@ void PrintConfigDef::init_common_params() def->mode = comAdvanced; def->set_default_value(new ConfigOptionPoints{ Vec2d(0, 0), Vec2d(200, 0), Vec2d(200, 200), Vec2d(0, 200) }); + def = this->add("bed_custom_texture", coString); + def->label = L("Bed custom texture"); + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionString("")); + def = this->add("layer_height", coFloat); def->label = L("Layer height"); def->category = L("Layers and Perimeters"); diff --git a/src/slic3r/GUI/2DBed.cpp b/src/slic3r/GUI/2DBed.cpp index a339f3e66..d2075f673 100644 --- a/src/slic3r/GUI/2DBed.cpp +++ b/src/slic3r/GUI/2DBed.cpp @@ -18,10 +18,9 @@ wxPanel(parent, wxID_ANY, wxDefaultPosition, wxSize(25 * wxGetApp().em_unit(), - #ifdef __APPLE__ m_user_drawn_background = false; #endif /*__APPLE__*/ - Bind(wxEVT_PAINT, ([this](wxPaintEvent &/* e */) { repaint(); })); - Bind(wxEVT_SIZE, ([this](wxSizeEvent & /* e */) { Refresh(); })); } -void Bed_2D::repaint() + +void Bed_2D::repaint(const std::vector& shape) { wxAutoBufferedPaintDC dc(this); auto cw = GetSize().GetWidth(); @@ -41,7 +40,7 @@ void Bed_2D::repaint() dc.DrawRectangle(rect.GetLeft(), rect.GetTop(), rect.GetWidth(), rect.GetHeight()); } - if (m_bed_shape.empty()) + if (shape.empty()) return; // reduce size to have some space around the drawn shape @@ -52,10 +51,9 @@ void Bed_2D::repaint() auto ccenter = cbb.center(); // get bounding box of bed shape in G - code coordinates - auto bed_shape = m_bed_shape; - auto bed_polygon = Polygon::new_scale(m_bed_shape); - auto bb = BoundingBoxf(m_bed_shape); - bb.merge(Vec2d(0, 0)); // origin needs to be in the visible area + auto bed_polygon = Polygon::new_scale(shape); + auto bb = BoundingBoxf(shape); + bb.merge(Vec2d(0, 0)); // origin needs to be in the visible area auto bw = bb.size()(0); auto bh = bb.size()(1); auto bcenter = bb.center(); @@ -73,8 +71,8 @@ void Bed_2D::repaint() // draw bed fill dc.SetBrush(wxBrush(wxColour(255, 255, 255), wxBRUSHSTYLE_SOLID)); wxPointList pt_list; - for (auto pt: m_bed_shape) - { + for (auto pt : shape) + { Point pt_pix = to_pixels(pt, ch); pt_list.push_back(new wxPoint(pt_pix(0), pt_pix(1))); } @@ -155,13 +153,13 @@ void Bed_2D::repaint() // convert G - code coordinates into pixels -Point Bed_2D::to_pixels(Vec2d point, int height) +Point Bed_2D::to_pixels(const Vec2d& point, int height) { auto p = point * m_scale_factor + m_shift; return Point(p(0) + Border, height - p(1) + Border); } -void Bed_2D::set_pos(Vec2d pos) +void Bed_2D::set_pos(const Vec2d& pos) { m_pos = pos; Refresh(); diff --git a/src/slic3r/GUI/2DBed.hpp b/src/slic3r/GUI/2DBed.hpp index a61fb313d..80926bea7 100644 --- a/src/slic3r/GUI/2DBed.hpp +++ b/src/slic3r/GUI/2DBed.hpp @@ -17,16 +17,13 @@ class Bed_2D : public wxPanel Vec2d m_shift = Vec2d::Zero(); Vec2d m_pos = Vec2d::Zero(); - Point to_pixels(Vec2d point, int height); - void repaint(); - void set_pos(Vec2d pos); + Point to_pixels(const Vec2d& point, int height); + void set_pos(const Vec2d& pos); public: - Bed_2D(wxWindow* parent); - ~Bed_2D() {} + explicit Bed_2D(wxWindow* parent); - std::vector m_bed_shape; - + void repaint(const std::vector& shape); }; diff --git a/src/slic3r/GUI/BedShapeDialog.cpp b/src/slic3r/GUI/BedShapeDialog.cpp index 98a5178df..1beda280b 100644 --- a/src/slic3r/GUI/BedShapeDialog.cpp +++ b/src/slic3r/GUI/BedShapeDialog.cpp @@ -10,17 +10,18 @@ #include "libslic3r/Polygon.hpp" #include "boost/nowide/iostream.hpp" +#include #include namespace Slic3r { namespace GUI { -void BedShapeDialog::build_dialog(const ConfigOptionPoints& default_pt) +void BedShapeDialog::build_dialog(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture) { SetFont(wxGetApp().normal_font()); m_panel = new BedShapePanel(this); - m_panel->build_panel(default_pt); + m_panel->build_panel(default_pt, custom_texture); auto main_sizer = new wxBoxSizer(wxVERTICAL); main_sizer->Add(m_panel, 1, wxEXPAND); @@ -51,14 +52,19 @@ void BedShapeDialog::on_dpi_changed(const wxRect &suggested_rect) Refresh(); } -void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt) +const std::string BedShapePanel::NONE = "None"; +const std::string BedShapePanel::EMPTY_STRING = ""; + +void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture) { + m_shape = default_pt.values; + m_custom_texture = custom_texture.value.empty() ? NONE : custom_texture.value; + auto sbsizer = new wxStaticBoxSizer(wxVERTICAL, this, _(L("Shape"))); sbsizer->GetStaticBox()->SetFont(wxGetApp().bold_font()); // shape options - m_shape_options_book = new wxChoicebook(this, wxID_ANY, wxDefaultPosition, - wxSize(25*wxGetApp().em_unit(), -1), wxCHB_TOP); + m_shape_options_book = new wxChoicebook(this, wxID_ANY, wxDefaultPosition, wxSize(25*wxGetApp().em_unit(), -1), wxCHB_TOP); sbsizer->Add(m_shape_options_book); auto optgroup = init_shape_options_page(_(L("Rectangular"))); @@ -106,6 +112,8 @@ void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt) }; optgroup->append_line(line); + wxPanel* texture_panel = init_texture_panel(); + Bind(wxEVT_CHOICEBOOK_PAGE_CHANGED, ([this](wxCommandEvent& e) { update_shape(); @@ -113,13 +121,20 @@ void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt) // right pane with preview canvas m_canvas = new Bed_2D(this); - m_canvas->m_bed_shape = default_pt.values; - // main sizer - auto top_sizer = new wxBoxSizer(wxHORIZONTAL); - top_sizer->Add(sbsizer, 0, wxEXPAND | wxLEFT | wxTOP | wxBOTTOM, 10); - if (m_canvas) - top_sizer->Add(m_canvas, 1, wxEXPAND | wxALL, 10) ; + if (m_canvas != nullptr) + { + m_canvas->Bind(wxEVT_PAINT, [this](wxPaintEvent& e) { m_canvas->repaint(m_shape); }); + m_canvas->Bind(wxEVT_SIZE, [this](wxSizeEvent& e) { m_canvas->Refresh(); }); + } + + wxSizer* left_sizer = new wxBoxSizer(wxVERTICAL); + left_sizer->Add(sbsizer, 0, wxEXPAND); + left_sizer->Add(texture_panel, 1, wxEXPAND); + + wxSizer* top_sizer = new wxBoxSizer(wxHORIZONTAL); + top_sizer->Add(left_sizer, 0, wxEXPAND | wxLEFT | wxTOP | wxBOTTOM, 10); + top_sizer->Add(m_canvas, 1, wxEXPAND | wxALL, 10); SetSizerAndFit(top_sizer); @@ -150,6 +165,66 @@ ConfigOptionsGroupShp BedShapePanel::init_shape_options_page(const wxString& tit return optgroup; } +wxPanel* BedShapePanel::init_texture_panel() +{ + wxPanel* panel = new wxPanel(this); + ConfigOptionsGroupShp optgroup = std::make_shared(panel, _(L("Texture"))); + + optgroup->label_width = 10; + optgroup->m_on_change = [this](t_config_option_key opt_key, boost::any value) { + update_shape(); + }; + + Line line{ "", "" }; + line.full_width = 1; + line.widget = [this](wxWindow* parent) { + wxButton* load_btn = new wxButton(parent, wxID_ANY, _(L("Load..."))); + wxSizer* load_sizer = new wxBoxSizer(wxHORIZONTAL); + load_sizer->Add(load_btn, 1, wxEXPAND); + + wxStaticText* filename_lbl = new wxStaticText(parent, wxID_ANY, _(NONE)); + wxSizer* filename_sizer = new wxBoxSizer(wxHORIZONTAL); + filename_sizer->Add(filename_lbl, 1, wxEXPAND); + + wxButton* remove_btn = new wxButton(parent, wxID_ANY, _(L("Remove"))); + wxSizer* remove_sizer = new wxBoxSizer(wxHORIZONTAL); + remove_sizer->Add(remove_btn, 1, wxEXPAND); + + wxSizer* sizer = new wxBoxSizer(wxVERTICAL); + sizer->Add(filename_sizer, 1, wxEXPAND); + sizer->Add(load_sizer, 1, wxEXPAND); + sizer->Add(remove_sizer, 1, wxEXPAND); + + load_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent& e) + { + load_texture(); + })); + + remove_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent& e) + { + m_custom_texture = NONE; + update_shape(); + })); + + filename_lbl->Bind(wxEVT_UPDATE_UI, ([this](wxUpdateUIEvent& e) + { + e.SetText(_(boost::filesystem::path(m_custom_texture).filename().string())); + })); + + remove_btn->Bind(wxEVT_UPDATE_UI, ([this](wxUpdateUIEvent& e) + { + e.Enable(m_custom_texture != NONE); + })); + + return sizer; + }; + optgroup->append_line(line); + + panel->SetSizerAndFit(optgroup->sizer); + + return panel; +} + // Called from the constructor. // Set the initial bed shape from a list of points. // Deduce the bed shape type(rect, circle, custom) @@ -232,7 +307,7 @@ void BedShapePanel::set_shape(const ConfigOptionPoints& points) // This is a custom bed shape, use the polygon provided. m_shape_options_book->SetSelection(SHAPE_CUSTOM); // Copy the polygon to the canvas, make a copy of the array. - m_loaded_bed_shape = points.values; + m_loaded_shape = points.values; update_shape(); } @@ -277,11 +352,11 @@ void BedShapePanel::update_shape() x1 -= dx; y0 -= dy; y1 -= dy; - m_canvas->m_bed_shape = { Vec2d(x0, y0), - Vec2d(x1, y0), - Vec2d(x1, y1), - Vec2d(x0, y1)}; - } + m_shape = { Vec2d(x0, y0), + Vec2d(x1, y0), + Vec2d(x1, y1), + Vec2d(x0, y1) }; + } else if(page_idx == SHAPE_CIRCULAR) { double diameter; try{ @@ -293,16 +368,16 @@ void BedShapePanel::update_shape() if (diameter == 0.0) return ; auto r = diameter / 2; auto twopi = 2 * PI; - auto edges = 60; - std::vector points; - for (size_t i = 1; i <= 60; ++i) { - auto angle = i * twopi / edges; + auto edges = 72; + std::vector points; + for (size_t i = 1; i <= edges; ++i) { + auto angle = i * twopi / edges; points.push_back(Vec2d(r*cos(angle), r*sin(angle))); } - m_canvas->m_bed_shape = points; - } + m_shape = points; + } else if (page_idx == SHAPE_CUSTOM) - m_canvas->m_bed_shape = m_loaded_bed_shape; + m_shape = m_loaded_shape; update_preview(); } @@ -310,19 +385,23 @@ void BedShapePanel::update_shape() // Loads an stl file, projects it to the XY plane and calculates a polygon. void BedShapePanel::load_stl() { - wxFileDialog dialog(this, _(L("Choose a file to import bed shape from (STL/OBJ/AMF/3MF/PRUSA):")), "", "", - file_wildcards(FT_MODEL), wxFD_OPEN | wxFD_FILE_MUST_EXIST); + wxFileDialog dialog(this, _(L("Choose an STL file to import bed shape from:")), "", "", file_wildcards(FT_STL), wxFD_OPEN | wxFD_FILE_MUST_EXIST); if (dialog.ShowModal() != wxID_OK) return; - wxArrayString input_file; - dialog.GetPaths(input_file); + std::string file_name = dialog.GetPath().ToUTF8().data(); - std::string file_name = input_file[0].ToUTF8().data(); + if (!boost::iequals(boost::filesystem::path(file_name).extension().string().c_str(), ".stl")) + { + show_error(this, _(L("Invalid file format."))); + return; + } + + wxBusyCursor wait; Model model; try { - model = Model::read_from_file(file_name); + model = Model::read_from_file(file_name); } catch (std::exception &) { show_error(this, _(L("Error! Invalid model"))); @@ -346,7 +425,32 @@ void BedShapePanel::load_stl() for (auto pt : polygon.points) points.push_back(unscale(pt)); - m_loaded_bed_shape = points; + m_loaded_shape = points; + update_shape(); +} + +void BedShapePanel::load_texture() +{ + wxFileDialog dialog(this, _(L("Choose a file to import bed texture from (PNG/SVG):")), "", "", + file_wildcards(FT_TEX), wxFD_OPEN | wxFD_FILE_MUST_EXIST); + + if (dialog.ShowModal() != wxID_OK) + return; + + m_custom_texture = NONE; + + std::string file_name = dialog.GetPath().ToUTF8().data(); + std::string file_ext = boost::filesystem::path(file_name).extension().string(); + + if (!boost::iequals(file_ext.c_str(), ".png") && !boost::iequals(file_ext.c_str(), ".svg")) + { + show_error(this, _(L("Invalid file format."))); + return; + } + + wxBusyCursor wait; + + m_custom_texture = file_name; update_shape(); } diff --git a/src/slic3r/GUI/BedShapeDialog.hpp b/src/slic3r/GUI/BedShapeDialog.hpp index 81d47320d..3a8d1c82b 100644 --- a/src/slic3r/GUI/BedShapeDialog.hpp +++ b/src/slic3r/GUI/BedShapeDialog.hpp @@ -16,25 +16,32 @@ namespace GUI { using ConfigOptionsGroupShp = std::shared_ptr; class BedShapePanel : public wxPanel { + static const std::string NONE; + static const std::string EMPTY_STRING; + Bed_2D* m_canvas; - std::vector m_loaded_bed_shape; + std::vector m_shape; + std::vector m_loaded_shape; + std::string m_custom_texture; public: - BedShapePanel(wxWindow* parent) : wxPanel(parent, wxID_ANY) {} - ~BedShapePanel() {} - - void build_panel(const ConfigOptionPoints& default_pt); + BedShapePanel(wxWindow* parent) : wxPanel(parent, wxID_ANY), m_custom_texture(NONE) {} + ~BedShapePanel() {} + void build_panel(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture); // Returns the resulting bed shape polygon. This value will be stored to the ini file. - std::vector get_bed_shape() { return m_canvas->m_bed_shape; } + const std::vector& get_shape() const { return m_shape; } + const std::string& get_custom_texture() const { return (m_custom_texture != NONE) ? m_custom_texture : EMPTY_STRING; } private: ConfigOptionsGroupShp init_shape_options_page(const wxString& title); + wxPanel* init_texture_panel(); void set_shape(const ConfigOptionPoints& points); void update_preview(); void update_shape(); void load_stl(); - + void load_texture(); + wxChoicebook* m_shape_options_book; std::vector m_optgroups; @@ -49,8 +56,9 @@ public: wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) {} ~BedShapeDialog() {} - void build_dialog(const ConfigOptionPoints& default_pt); - std::vector get_bed_shape() { return m_panel->get_bed_shape(); } + void build_dialog(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture); + const std::vector& get_shape() const { return m_panel->get_shape(); } + const std::string& get_custom_texture() const { return m_panel->get_custom_texture(); } protected: void on_dpi_changed(const wxRect &suggested_rect) override; diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index 59ba93677..bdd487931 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -532,14 +532,18 @@ PageBedShape::PageBedShape(ConfigWizard *parent) { append_text(_(L("Set the shape of your printer's bed."))); - shape_panel->build_panel(*wizard_p()->custom_config->option("bed_shape")); + shape_panel->build_panel(*wizard_p()->custom_config->option("bed_shape"), + *wizard_p()->custom_config->option("bed_custom_texture")); + append(shape_panel); } void PageBedShape::apply_custom_config(DynamicPrintConfig &config) { - const auto points(shape_panel->get_bed_shape()); + const std::vector& points = shape_panel->get_shape(); + const std::string& custom_texture = shape_panel->get_custom_texture(); config.set_key_value("bed_shape", new ConfigOptionPoints(points)); + config.set_key_value("bed_custom_texture", new ConfigOptionString(custom_texture)); } PageDiameters::PageDiameters(ConfigWizard *parent) @@ -1085,7 +1089,7 @@ ConfigWizard::ConfigWizard(wxWindow *parent, RunReason reason) p->load_vendors(); p->custom_config.reset(DynamicPrintConfig::new_from_defaults_keys({ - "gcode_flavor", "bed_shape", "nozzle_diameter", "filament_diameter", "temperature", "bed_temperature", + "gcode_flavor", "bed_shape", "bed_custom_texture", "nozzle_diameter", "filament_diameter", "temperature", "bed_temperature", })); p->index = new ConfigWizardIndex(this); diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 8a376c3a3..e43181dc0 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -67,9 +67,12 @@ wxString file_wildcards(FileType file_type, const std::string &custom_extension) /* FT_MODEL */ "Known files (*.stl, *.obj, *.amf, *.xml, *.3mf, *.prusa)|*.stl;*.STL;*.obj;*.OBJ;*.amf;*.AMF;*.xml;*.XML;*.3mf;*.3MF;*.prusa;*.PRUSA", /* FT_PROJECT */ "Project files (*.3mf, *.amf)|*.3mf;*.3MF;*.amf;*.AMF", - /* FT_INI */ "INI files (*.ini)|*.ini;*.INI", - /* FT_SVG */ "SVG files (*.svg)|*.svg;*.SVG", - /* FT_PNGZIP */"Masked SLA files (*.sl1)|*.sl1;*.SL1", + /* FT_INI */ "INI files (*.ini)|*.ini;*.INI", + /* FT_SVG */ "SVG files (*.svg)|*.svg;*.SVG", + + /* FT_TEX */ "Texture (*.png, *.svg)|*.png;*.PNG;*.svg;*.SVG", + + /* FT_PNGZIP */ "Masked SLA files (*.sl1)|*.sl1;*.SL1", }; std::string out = defaults[file_type]; diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index e69503ff8..9c06ce8ca 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -44,6 +44,9 @@ enum FileType FT_INI, FT_SVG, + + FT_TEX, + FT_PNGZIP, FT_SIZE, diff --git a/src/slic3r/GUI/Preset.cpp b/src/slic3r/GUI/Preset.cpp index 3d467d7f8..12fed23a0 100644 --- a/src/slic3r/GUI/Preset.cpp +++ b/src/slic3r/GUI/Preset.cpp @@ -411,7 +411,7 @@ const std::vector& Preset::printer_options() if (s_opts.empty()) { s_opts = { "printer_technology", - "bed_shape", "z_offset", "gcode_flavor", "use_relative_e_distances", "serial_port", "serial_speed", + "bed_shape", "bed_custom_texture", "z_offset", "gcode_flavor", "use_relative_e_distances", "serial_port", "serial_speed", "use_firmware_retraction", "use_volumetric_e", "variable_layer_height", "host_type", "print_host", "printhost_apikey", "printhost_cafile", "single_extruder_multi_material", "start_gcode", "end_gcode", "before_layer_gcode", "layer_gcode", "toolchange_gcode", diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index a30736220..20936ba3d 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1856,12 +1856,15 @@ void TabPrinter::build_fff() btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent e) { BedShapeDialog dlg(this); - dlg.build_dialog(*m_config->option("bed_shape")); + dlg.build_dialog(*m_config->option("bed_shape"), + *m_config->option("bed_custom_texture")); if (dlg.ShowModal() == wxID_OK) { - std::vector shape = dlg.get_bed_shape(); + const std::vector& shape = dlg.get_shape(); + const std::string& custom_texture = dlg.get_custom_texture(); if (!shape.empty()) { load_key_value("bed_shape", shape); + load_key_value("bed_custom_texture", custom_texture); update_changed_ui(); } } @@ -2062,12 +2065,15 @@ void TabPrinter::build_sla() btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent e) { BedShapeDialog dlg(this); - dlg.build_dialog(*m_config->option("bed_shape")); + dlg.build_dialog(*m_config->option("bed_shape"), + *m_config->option("bed_custom_texture")); if (dlg.ShowModal() == wxID_OK) { - std::vector shape = dlg.get_bed_shape(); + const std::vector& shape = dlg.get_shape(); + const std::string& custom_texture = dlg.get_custom_texture(); if (!shape.empty()) { load_key_value("bed_shape", shape); + load_key_value("bed_custom_texture", custom_texture); update_changed_ui(); } } From de383b1809202a911aeefdd298ba1235a630da84 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Thu, 18 Jul 2019 12:56:52 +0200 Subject: [PATCH 04/24] Added selection of custom bed model to bed shape dialog --- src/libslic3r/PrintConfig.cpp | 5 ++ src/slic3r/GUI/BedShapeDialog.cpp | 101 +++++++++++++++++++++++++++--- src/slic3r/GUI/BedShapeDialog.hpp | 15 +++-- src/slic3r/GUI/ConfigWizard.cpp | 7 ++- src/slic3r/GUI/Preset.cpp | 2 +- src/slic3r/GUI/Tab.cpp | 10 ++- 6 files changed, 120 insertions(+), 20 deletions(-) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index d6104d98c..3ebab9f68 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -56,6 +56,11 @@ void PrintConfigDef::init_common_params() def->mode = comAdvanced; def->set_default_value(new ConfigOptionString("")); + def = this->add("bed_custom_model", coString); + def->label = L("Bed custom model"); + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionString("")); + def = this->add("layer_height", coFloat); def->label = L("Layer height"); def->category = L("Layers and Perimeters"); diff --git a/src/slic3r/GUI/BedShapeDialog.cpp b/src/slic3r/GUI/BedShapeDialog.cpp index 1beda280b..4ae91c782 100644 --- a/src/slic3r/GUI/BedShapeDialog.cpp +++ b/src/slic3r/GUI/BedShapeDialog.cpp @@ -17,11 +17,11 @@ namespace Slic3r { namespace GUI { -void BedShapeDialog::build_dialog(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture) +void BedShapeDialog::build_dialog(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture, const ConfigOptionString& custom_model) { SetFont(wxGetApp().normal_font()); m_panel = new BedShapePanel(this); - m_panel->build_panel(default_pt, custom_texture); + m_panel->build_panel(default_pt, custom_texture, custom_model); auto main_sizer = new wxBoxSizer(wxVERTICAL); main_sizer->Add(m_panel, 1, wxEXPAND); @@ -55,10 +55,11 @@ void BedShapeDialog::on_dpi_changed(const wxRect &suggested_rect) const std::string BedShapePanel::NONE = "None"; const std::string BedShapePanel::EMPTY_STRING = ""; -void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture) +void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture, const ConfigOptionString& custom_model) { m_shape = default_pt.values; m_custom_texture = custom_texture.value.empty() ? NONE : custom_texture.value; + m_custom_model = custom_model.value.empty() ? NONE : custom_model.value; auto sbsizer = new wxStaticBoxSizer(wxVERTICAL, this, _(L("Shape"))); sbsizer->GetStaticBox()->SetFont(wxGetApp().bold_font()); @@ -113,6 +114,7 @@ void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt, const Conf optgroup->append_line(line); wxPanel* texture_panel = init_texture_panel(); + wxPanel* model_panel = init_model_panel(); Bind(wxEVT_CHOICEBOOK_PAGE_CHANGED, ([this](wxCommandEvent& e) { @@ -121,16 +123,13 @@ void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt, const Conf // right pane with preview canvas m_canvas = new Bed_2D(this); - - if (m_canvas != nullptr) - { - m_canvas->Bind(wxEVT_PAINT, [this](wxPaintEvent& e) { m_canvas->repaint(m_shape); }); - m_canvas->Bind(wxEVT_SIZE, [this](wxSizeEvent& e) { m_canvas->Refresh(); }); - } + m_canvas->Bind(wxEVT_PAINT, [this](wxPaintEvent& e) { m_canvas->repaint(m_shape); }); + m_canvas->Bind(wxEVT_SIZE, [this](wxSizeEvent& e) { m_canvas->Refresh(); }); wxSizer* left_sizer = new wxBoxSizer(wxVERTICAL); left_sizer->Add(sbsizer, 0, wxEXPAND); left_sizer->Add(texture_panel, 1, wxEXPAND); + left_sizer->Add(model_panel, 1, wxEXPAND); wxSizer* top_sizer = new wxBoxSizer(wxHORIZONTAL); top_sizer->Add(left_sizer, 0, wxEXPAND | wxLEFT | wxTOP | wxBOTTOM, 10); @@ -225,6 +224,66 @@ wxPanel* BedShapePanel::init_texture_panel() return panel; } +wxPanel* BedShapePanel::init_model_panel() +{ + wxPanel* panel = new wxPanel(this); + ConfigOptionsGroupShp optgroup = std::make_shared(panel, _(L("Model"))); + + optgroup->label_width = 10; + optgroup->m_on_change = [this](t_config_option_key opt_key, boost::any value) { + update_shape(); + }; + + Line line{ "", "" }; + line.full_width = 1; + line.widget = [this](wxWindow* parent) { + wxButton* load_btn = new wxButton(parent, wxID_ANY, _(L("Load..."))); + wxSizer* load_sizer = new wxBoxSizer(wxHORIZONTAL); + load_sizer->Add(load_btn, 1, wxEXPAND); + + wxStaticText* filename_lbl = new wxStaticText(parent, wxID_ANY, _(NONE)); + wxSizer* filename_sizer = new wxBoxSizer(wxHORIZONTAL); + filename_sizer->Add(filename_lbl, 1, wxEXPAND); + + wxButton* remove_btn = new wxButton(parent, wxID_ANY, _(L("Remove"))); + wxSizer* remove_sizer = new wxBoxSizer(wxHORIZONTAL); + remove_sizer->Add(remove_btn, 1, wxEXPAND); + + wxSizer* sizer = new wxBoxSizer(wxVERTICAL); + sizer->Add(filename_sizer, 1, wxEXPAND); + sizer->Add(load_sizer, 1, wxEXPAND); + sizer->Add(remove_sizer, 1, wxEXPAND); + + load_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent& e) + { + load_model(); + })); + + remove_btn->Bind(wxEVT_BUTTON, ([this](wxCommandEvent& e) + { + m_custom_model = NONE; + update_shape(); + })); + + filename_lbl->Bind(wxEVT_UPDATE_UI, ([this](wxUpdateUIEvent& e) + { + e.SetText(_(boost::filesystem::path(m_custom_model).filename().string())); + })); + + remove_btn->Bind(wxEVT_UPDATE_UI, ([this](wxUpdateUIEvent& e) + { + e.Enable(m_custom_model != NONE); + })); + + return sizer; + }; + optgroup->append_line(line); + + panel->SetSizerAndFit(optgroup->sizer); + + return panel; +} + // Called from the constructor. // Set the initial bed shape from a list of points. // Deduce the bed shape type(rect, circle, custom) @@ -390,7 +449,6 @@ void BedShapePanel::load_stl() return; std::string file_name = dialog.GetPath().ToUTF8().data(); - if (!boost::iequals(boost::filesystem::path(file_name).extension().string().c_str(), ".stl")) { show_error(this, _(L("Invalid file format."))); @@ -454,5 +512,28 @@ void BedShapePanel::load_texture() update_shape(); } +void BedShapePanel::load_model() +{ + wxFileDialog dialog(this, _(L("Choose an STL file to import bed model from:")), "", "", + file_wildcards(FT_STL), wxFD_OPEN | wxFD_FILE_MUST_EXIST); + + if (dialog.ShowModal() != wxID_OK) + return; + + m_custom_model = NONE; + + std::string file_name = dialog.GetPath().ToUTF8().data(); + if (!boost::iequals(boost::filesystem::path(file_name).extension().string().c_str(), ".stl")) + { + show_error(this, _(L("Invalid file format."))); + return; + } + + wxBusyCursor wait; + + m_custom_model = file_name; + update_shape(); +} + } // GUI } // Slic3r diff --git a/src/slic3r/GUI/BedShapeDialog.hpp b/src/slic3r/GUI/BedShapeDialog.hpp index 3a8d1c82b..bf12cc893 100644 --- a/src/slic3r/GUI/BedShapeDialog.hpp +++ b/src/slic3r/GUI/BedShapeDialog.hpp @@ -23,24 +23,28 @@ class BedShapePanel : public wxPanel std::vector m_shape; std::vector m_loaded_shape; std::string m_custom_texture; + std::string m_custom_model; public: - BedShapePanel(wxWindow* parent) : wxPanel(parent, wxID_ANY), m_custom_texture(NONE) {} - ~BedShapePanel() {} + BedShapePanel(wxWindow* parent) : wxPanel(parent, wxID_ANY), m_custom_texture(NONE), m_custom_model(NONE) {} + + void build_panel(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture, const ConfigOptionString& custom_model); - void build_panel(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture); // Returns the resulting bed shape polygon. This value will be stored to the ini file. const std::vector& get_shape() const { return m_shape; } const std::string& get_custom_texture() const { return (m_custom_texture != NONE) ? m_custom_texture : EMPTY_STRING; } + const std::string& get_custom_model() const { return (m_custom_model != NONE) ? m_custom_model : EMPTY_STRING; } private: ConfigOptionsGroupShp init_shape_options_page(const wxString& title); wxPanel* init_texture_panel(); + wxPanel* init_model_panel(); void set_shape(const ConfigOptionPoints& points); void update_preview(); void update_shape(); void load_stl(); void load_texture(); + void load_model(); wxChoicebook* m_shape_options_book; std::vector m_optgroups; @@ -54,11 +58,12 @@ class BedShapeDialog : public DPIDialog public: BedShapeDialog(wxWindow* parent) : DPIDialog(parent, wxID_ANY, _(L("Bed Shape")), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) {} - ~BedShapeDialog() {} - void build_dialog(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture); + void build_dialog(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture, const ConfigOptionString& custom_model); + const std::vector& get_shape() const { return m_panel->get_shape(); } const std::string& get_custom_texture() const { return m_panel->get_custom_texture(); } + const std::string& get_custom_model() const { return m_panel->get_custom_model(); } protected: void on_dpi_changed(const wxRect &suggested_rect) override; diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index bdd487931..6a70cb9fd 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -533,7 +533,8 @@ PageBedShape::PageBedShape(ConfigWizard *parent) append_text(_(L("Set the shape of your printer's bed."))); shape_panel->build_panel(*wizard_p()->custom_config->option("bed_shape"), - *wizard_p()->custom_config->option("bed_custom_texture")); + *wizard_p()->custom_config->option("bed_custom_texture"), + *wizard_p()->custom_config->option("bed_custom_model")); append(shape_panel); } @@ -542,8 +543,10 @@ void PageBedShape::apply_custom_config(DynamicPrintConfig &config) { const std::vector& points = shape_panel->get_shape(); const std::string& custom_texture = shape_panel->get_custom_texture(); + const std::string& custom_model = shape_panel->get_custom_model(); config.set_key_value("bed_shape", new ConfigOptionPoints(points)); config.set_key_value("bed_custom_texture", new ConfigOptionString(custom_texture)); + config.set_key_value("bed_custom_model", new ConfigOptionString(custom_model)); } PageDiameters::PageDiameters(ConfigWizard *parent) @@ -1089,7 +1092,7 @@ ConfigWizard::ConfigWizard(wxWindow *parent, RunReason reason) p->load_vendors(); p->custom_config.reset(DynamicPrintConfig::new_from_defaults_keys({ - "gcode_flavor", "bed_shape", "bed_custom_texture", "nozzle_diameter", "filament_diameter", "temperature", "bed_temperature", + "gcode_flavor", "bed_shape", "bed_custom_texture", "bed_custom_model", "nozzle_diameter", "filament_diameter", "temperature", "bed_temperature", })); p->index = new ConfigWizardIndex(this); diff --git a/src/slic3r/GUI/Preset.cpp b/src/slic3r/GUI/Preset.cpp index 12fed23a0..635b21ba9 100644 --- a/src/slic3r/GUI/Preset.cpp +++ b/src/slic3r/GUI/Preset.cpp @@ -411,7 +411,7 @@ const std::vector& Preset::printer_options() if (s_opts.empty()) { s_opts = { "printer_technology", - "bed_shape", "bed_custom_texture", "z_offset", "gcode_flavor", "use_relative_e_distances", "serial_port", "serial_speed", + "bed_shape", "bed_custom_texture", "bed_custom_model", "z_offset", "gcode_flavor", "use_relative_e_distances", "serial_port", "serial_speed", "use_firmware_retraction", "use_volumetric_e", "variable_layer_height", "host_type", "print_host", "printhost_apikey", "printhost_cafile", "single_extruder_multi_material", "start_gcode", "end_gcode", "before_layer_gcode", "layer_gcode", "toolchange_gcode", diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 20936ba3d..953a91b68 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1857,14 +1857,17 @@ void TabPrinter::build_fff() { BedShapeDialog dlg(this); dlg.build_dialog(*m_config->option("bed_shape"), - *m_config->option("bed_custom_texture")); + *m_config->option("bed_custom_texture"), + *m_config->option("bed_custom_model")); if (dlg.ShowModal() == wxID_OK) { const std::vector& shape = dlg.get_shape(); const std::string& custom_texture = dlg.get_custom_texture(); + const std::string& custom_model = dlg.get_custom_model(); if (!shape.empty()) { load_key_value("bed_shape", shape); load_key_value("bed_custom_texture", custom_texture); + load_key_value("bed_custom_model", custom_model); update_changed_ui(); } } @@ -2066,14 +2069,17 @@ void TabPrinter::build_sla() { BedShapeDialog dlg(this); dlg.build_dialog(*m_config->option("bed_shape"), - *m_config->option("bed_custom_texture")); + *m_config->option("bed_custom_texture"), + *m_config->option("bed_custom_model")); if (dlg.ShowModal() == wxID_OK) { const std::vector& shape = dlg.get_shape(); const std::string& custom_texture = dlg.get_custom_texture(); + const std::string& custom_model = dlg.get_custom_model(); if (!shape.empty()) { load_key_value("bed_shape", shape); load_key_value("bed_custom_texture", custom_texture); + load_key_value("bed_custom_model", custom_model); update_changed_ui(); } } From f61d43de07ae973e701a5c516be344b251d44bfb Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Thu, 18 Jul 2019 14:39:19 +0200 Subject: [PATCH 05/24] Render custom bed textures in svg format on prusa beds --- src/slic3r/GUI/3DBed.cpp | 46 ++++++++++++++++++++++++++++++--------- src/slic3r/GUI/3DBed.hpp | 3 ++- src/slic3r/GUI/Plater.cpp | 25 ++++++++++++++------- src/slic3r/GUI/Preset.cpp | 1 + 4 files changed, 56 insertions(+), 19 deletions(-) diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index 482cd58ad..873da7116 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -14,6 +14,7 @@ #include #include +#include static const float GROUND_Z = -0.02f; @@ -274,6 +275,7 @@ void Bed3D::Axes::render_axis(double length) const Bed3D::Bed3D() : m_type(Custom) + , m_custom_texture("") #if ENABLE_TEXTURES_FROM_SVG , m_requires_canvas_update(false) , m_vbo_id(0) @@ -282,14 +284,25 @@ Bed3D::Bed3D() { } -bool Bed3D::set_shape(const Pointfs& shape) +bool Bed3D::set_shape(const Pointfs& shape, const std::string& custom_texture) { EType new_type = detect_type(shape); - if (m_shape == shape && m_type == new_type) + + // check that the passed custom texture filename is valid + std::string cst_texture(custom_texture); + if (!cst_texture.empty()) + { + std::string ext = boost::filesystem::path(cst_texture).extension().string(); + if ((!boost::iequals(ext.c_str(), ".png") && !boost::iequals(ext.c_str(), ".svg")) || !boost::filesystem::exists(custom_texture)) + cst_texture = ""; + } + + if ((m_shape == shape) && (m_type == new_type) && (m_custom_texture == cst_texture)) // No change, no need to update the UI. return false; m_shape = shape; + m_custom_texture = cst_texture; m_type = new_type; calc_bounding_boxes(); @@ -498,26 +511,39 @@ Bed3D::EType Bed3D::detect_type(const Pointfs& shape) const #if ENABLE_TEXTURES_FROM_SVG void Bed3D::render_prusa(GLCanvas3D* canvas, const std::string &key, bool bottom) const { - std::string tex_path = resources_dir() + "/icons/bed/" + key; + std::string filename = !m_custom_texture.empty() ? m_custom_texture : resources_dir() + "/icons/bed/" + key + ".svg"; std::string model_path = resources_dir() + "/models/" + key; // use higher resolution images if graphic card and opengl version allow GLint max_tex_size = GLCanvas3DManager::get_gl_info().get_max_tex_size(); - std::string filename = tex_path + ".svg"; - if ((m_texture.get_id() == 0) || (m_texture.get_source() != filename)) { - // generate a temporary lower resolution texture to show while no main texture levels have been compressed - if (!m_temp_texture.load_from_svg_file(filename, false, false, false, max_tex_size / 8)) + std::string ext = boost::filesystem::path(filename).extension().string(); + if (boost::iequals(ext.c_str(), ".svg")) { + // generate a temporary lower resolution texture to show while no main texture levels have been compressed + if (!m_temp_texture.load_from_svg_file(filename, false, false, false, max_tex_size / 8)) + { + render_custom(); + return; + } + + // starts generating the main texture, compression will run asynchronously + if (!m_texture.load_from_svg_file(filename, true, true, true, max_tex_size)) + { + render_custom(); + return; + } + } + else if (boost::iequals(ext.c_str(), ".png")) + { + std::cout << "texture: " << filename << std::endl; render_custom(); return; } - - // starts generating the main texture, compression will run asynchronously - if (!m_texture.load_from_svg_file(filename, true, true, true, max_tex_size)) + else { render_custom(); return; diff --git a/src/slic3r/GUI/3DBed.hpp b/src/slic3r/GUI/3DBed.hpp index 6c8913a9b..186282997 100644 --- a/src/slic3r/GUI/3DBed.hpp +++ b/src/slic3r/GUI/3DBed.hpp @@ -87,6 +87,7 @@ public: private: EType m_type; Pointfs m_shape; + std::string m_custom_texture; mutable BoundingBoxf3 m_bounding_box; mutable BoundingBoxf3 m_extended_bounding_box; Polygon m_polygon; @@ -122,7 +123,7 @@ public: const Pointfs& get_shape() const { return m_shape; } // Return true if the bed shape changed, so the calee will update the UI. - bool set_shape(const Pointfs& shape); + bool set_shape(const Pointfs& shape, const std::string& custom_texture); const BoundingBoxf3& get_bounding_box(bool extended) const { return extended ? m_extended_bounding_box : m_bounding_box; } bool contains(const Point& point) const; diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 8fefca00c..ef3cbb965 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1700,7 +1700,7 @@ struct Plater::priv // triangulate the bed and store the triangles into m_bed.m_triangles, // fills the m_bed.m_grid_lines and sets m_bed.m_origin. // Sets m_bed.m_polygon to limit the object placement. - void set_bed_shape(const Pointfs& shape); + void set_bed_shape(const Pointfs& shape, const std::string& custom_texture); bool can_delete() const; bool can_delete_all() const; @@ -1750,7 +1750,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) : q(q) , main_frame(main_frame) , config(Slic3r::DynamicPrintConfig::new_from_defaults_keys({ - "bed_shape", "complete_objects", "duplicate_distance", "extruder_clearance_radius", "skirts", "skirt_distance", + "bed_shape", "bed_custom_texture", "bed_custom_model", "complete_objects", "duplicate_distance", "extruder_clearance_radius", "skirts", "skirt_distance", "brim_width", "variable_layer_height", "serial_port", "serial_speed", "host_type", "print_host", "printhost_apikey", "printhost_cafile", "nozzle_diameter", "single_extruder_multi_material", "wipe_tower", "wipe_tower_x", "wipe_tower_y", "wipe_tower_width", "wipe_tower_rotation_angle", @@ -1853,11 +1853,19 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) view3D_canvas->Bind(EVT_GLTOOLBAR_SPLIT_VOLUMES, &priv::on_action_split_volumes, this); view3D_canvas->Bind(EVT_GLTOOLBAR_LAYERSEDITING, &priv::on_action_layersediting, this); view3D_canvas->Bind(EVT_GLCANVAS_INIT, [this](SimpleEvent&) { init_view_toolbar(); }); - view3D_canvas->Bind(EVT_GLCANVAS_UPDATE_BED_SHAPE, [this](SimpleEvent&) { set_bed_shape(config->option("bed_shape")->values); }); + view3D_canvas->Bind(EVT_GLCANVAS_UPDATE_BED_SHAPE, [this](SimpleEvent&) + { + set_bed_shape(config->option("bed_shape")->values, + config->option("bed_custom_texture")->value); + }); // Preview events: preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_QUESTION_MARK, [this](SimpleEvent&) { wxGetApp().keyboard_shortcuts(); }); - preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_UPDATE_BED_SHAPE, [this](SimpleEvent&) { set_bed_shape(config->option("bed_shape")->values); }); + preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_UPDATE_BED_SHAPE, [this](SimpleEvent&) + { + set_bed_shape(config->option("bed_shape")->values, + config->option("bed_custom_texture")->value); + }); preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_TAB, [this](SimpleEvent&) { select_next_view_3D(); }); preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_MOVE_DOUBLE_SLIDER, [this](wxKeyEvent& evt) { preview->move_double_slider(evt); }); preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_EDIT_COLOR_CHANGE, [this](wxKeyEvent& evt) { preview->edit_double_slider(evt); }); @@ -3504,9 +3512,9 @@ bool Plater::priv::can_mirror() const return get_selection().is_from_single_instance(); } -void Plater::priv::set_bed_shape(const Pointfs& shape) +void Plater::priv::set_bed_shape(const Pointfs& shape, const std::string& custom_texture) { - bool new_shape = bed.set_shape(shape); + bool new_shape = bed.set_shape(shape, custom_texture); if (new_shape) { if (view3D) view3D->bed_shape_changed(); @@ -4251,7 +4259,7 @@ void Plater::on_config_change(const DynamicPrintConfig &config) p->config->set_key_value(opt_key, config.option(opt_key)->clone()); if (opt_key == "printer_technology") this->set_printer_technology(config.opt_enum(opt_key)); - else if (opt_key == "bed_shape") { + else if ((opt_key == "bed_shape") || (opt_key == "bed_custom_texture")) { bed_shape_changed = true; update_scheduled = true; } @@ -4285,7 +4293,8 @@ void Plater::on_config_change(const DynamicPrintConfig &config) } if (bed_shape_changed) - p->set_bed_shape(p->config->option("bed_shape")->values); + p->set_bed_shape(p->config->option("bed_shape")->values, + p->config->option("bed_custom_texture")->value); if (update_scheduled) update(); diff --git a/src/slic3r/GUI/Preset.cpp b/src/slic3r/GUI/Preset.cpp index 635b21ba9..e34c9be28 100644 --- a/src/slic3r/GUI/Preset.cpp +++ b/src/slic3r/GUI/Preset.cpp @@ -512,6 +512,7 @@ const std::vector& Preset::sla_printer_options() if (s_opts.empty()) { s_opts = { "printer_technology", + "bed_shape", "bed_custom_texture", "bed_custom_model", "max_print_height", "bed_shape", "max_print_height", "display_width", "display_height", "display_pixels_x", "display_pixels_y", "display_mirror_x", "display_mirror_y", From 1c5ff3c72d62d346940f8a1864f6b1a43a2021f1 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Thu, 18 Jul 2019 15:03:05 +0200 Subject: [PATCH 06/24] Small refactoring --- src/slic3r/GUI/3DBed.cpp | 8 +++----- src/slic3r/GUI/BedShapeDialog.cpp | 8 +++----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index 873da7116..f07b224ac 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -292,8 +292,7 @@ bool Bed3D::set_shape(const Pointfs& shape, const std::string& custom_texture) std::string cst_texture(custom_texture); if (!cst_texture.empty()) { - std::string ext = boost::filesystem::path(cst_texture).extension().string(); - if ((!boost::iequals(ext.c_str(), ".png") && !boost::iequals(ext.c_str(), ".svg")) || !boost::filesystem::exists(custom_texture)) + if ((!boost::algorithm::iends_with(custom_texture, ".png") && !boost::algorithm::iends_with(custom_texture, ".svg")) || !boost::filesystem::exists(custom_texture)) cst_texture = ""; } @@ -520,8 +519,7 @@ void Bed3D::render_prusa(GLCanvas3D* canvas, const std::string &key, bool bottom if ((m_texture.get_id() == 0) || (m_texture.get_source() != filename)) { - std::string ext = boost::filesystem::path(filename).extension().string(); - if (boost::iequals(ext.c_str(), ".svg")) + if (boost::algorithm::iends_with(filename, ".svg")) { // generate a temporary lower resolution texture to show while no main texture levels have been compressed if (!m_temp_texture.load_from_svg_file(filename, false, false, false, max_tex_size / 8)) @@ -537,7 +535,7 @@ void Bed3D::render_prusa(GLCanvas3D* canvas, const std::string &key, bool bottom return; } } - else if (boost::iequals(ext.c_str(), ".png")) + else if (boost::algorithm::iends_with(filename, ".png")) { std::cout << "texture: " << filename << std::endl; render_custom(); diff --git a/src/slic3r/GUI/BedShapeDialog.cpp b/src/slic3r/GUI/BedShapeDialog.cpp index 4ae91c782..60b4f37f1 100644 --- a/src/slic3r/GUI/BedShapeDialog.cpp +++ b/src/slic3r/GUI/BedShapeDialog.cpp @@ -449,7 +449,7 @@ void BedShapePanel::load_stl() return; std::string file_name = dialog.GetPath().ToUTF8().data(); - if (!boost::iequals(boost::filesystem::path(file_name).extension().string().c_str(), ".stl")) + if (!boost::algorithm::iends_with(file_name, ".stl")) { show_error(this, _(L("Invalid file format."))); return; @@ -498,9 +498,7 @@ void BedShapePanel::load_texture() m_custom_texture = NONE; std::string file_name = dialog.GetPath().ToUTF8().data(); - std::string file_ext = boost::filesystem::path(file_name).extension().string(); - - if (!boost::iequals(file_ext.c_str(), ".png") && !boost::iequals(file_ext.c_str(), ".svg")) + if (!boost::algorithm::iends_with(file_name, ".png") && !boost::algorithm::iends_with(file_name, ".svg")) { show_error(this, _(L("Invalid file format."))); return; @@ -523,7 +521,7 @@ void BedShapePanel::load_model() m_custom_model = NONE; std::string file_name = dialog.GetPath().ToUTF8().data(); - if (!boost::iequals(boost::filesystem::path(file_name).extension().string().c_str(), ".stl")) + if (!boost::algorithm::iends_with(file_name, ".stl")) { show_error(this, _(L("Invalid file format."))); return; From ba4bc8ac82b5ae524f2ce62a5b079259483e82f4 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Fri, 19 Jul 2019 09:18:09 +0200 Subject: [PATCH 07/24] Render custom bed textures in png format on prusa beds --- resources/shaders/printbed.fs | 22 ++++- src/slic3r/GUI/3DBed.cpp | 33 +++++-- src/slic3r/GUI/GLTexture.cpp | 180 ++++++++++++++++++++++++++++++++++ src/slic3r/GUI/GLTexture.hpp | 2 + 4 files changed, 226 insertions(+), 11 deletions(-) diff --git a/resources/shaders/printbed.fs b/resources/shaders/printbed.fs index be14347c2..d1316ca2f 100644 --- a/resources/shaders/printbed.fs +++ b/resources/shaders/printbed.fs @@ -5,16 +5,30 @@ const vec3 back_color_light = vec3(0.365, 0.365, 0.365); uniform sampler2D texture; uniform bool transparent_background; +uniform bool svg_source; varying vec2 tex_coords; -void main() +vec4 svg_color() { + // takes foreground from texture + vec4 fore_color = texture2D(texture, tex_coords); + // calculates radial gradient vec3 back_color = vec3(mix(back_color_light, back_color_dark, smoothstep(0.0, 0.5, length(abs(tex_coords.xy) - vec2(0.5))))); - vec4 fore_color = texture2D(texture, tex_coords); - // blends foreground with background - gl_FragColor = vec4(mix(back_color, fore_color.rgb, fore_color.a), transparent_background ? fore_color.a : 1.0); + return vec4(mix(back_color, fore_color.rgb, fore_color.a), transparent_background ? fore_color.a : 1.0); +} + +vec4 non_svg_color() +{ + // takes foreground from texture + vec4 color = texture2D(texture, tex_coords); + return vec4(color.rgb, transparent_background ? color.a * 0.25 : color.a); +} + +void main() +{ + gl_FragColor = svg_source ? svg_color() : non_svg_color(); } \ No newline at end of file diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index f07b224ac..27531f030 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -519,13 +519,18 @@ void Bed3D::render_prusa(GLCanvas3D* canvas, const std::string &key, bool bottom if ((m_texture.get_id() == 0) || (m_texture.get_source() != filename)) { + m_texture.reset(); + if (boost::algorithm::iends_with(filename, ".svg")) { - // generate a temporary lower resolution texture to show while no main texture levels have been compressed - if (!m_temp_texture.load_from_svg_file(filename, false, false, false, max_tex_size / 8)) + if ((m_temp_texture.get_id() == 0) || (m_temp_texture.get_source() != filename)) { - render_custom(); - return; + // generate a temporary lower resolution texture to show while no main texture levels have been compressed + if (!m_temp_texture.load_from_svg_file(filename, false, false, false, max_tex_size / 8)) + { + render_custom(); + return; + } } // starts generating the main texture, compression will run asynchronously @@ -537,9 +542,22 @@ void Bed3D::render_prusa(GLCanvas3D* canvas, const std::string &key, bool bottom } else if (boost::algorithm::iends_with(filename, ".png")) { - std::cout << "texture: " << filename << std::endl; - render_custom(); - return; + // generate a temporary lower resolution texture to show while no main texture levels have been compressed + if ((m_temp_texture.get_id() == 0) || (m_temp_texture.get_source() != filename)) + { + if (!m_temp_texture.load_from_file(filename, false, false, false, max_tex_size)) + { + render_custom(); + return; + } + } + + // starts generating the main texture, compression will run asynchronously + if (!m_texture.load_from_file(filename, true, true, true, max_tex_size)) + { + render_custom(); + return; + } } else { @@ -634,6 +652,7 @@ void Bed3D::render_prusa_shader(bool transparent) const { m_shader.start_using(); m_shader.set_uniform("transparent_background", transparent); + m_shader.set_uniform("svg_source", boost::algorithm::iends_with(m_texture.get_source(), ".svg")); unsigned int stride = m_triangles.get_vertex_data_size(); diff --git a/src/slic3r/GUI/GLTexture.cpp b/src/slic3r/GUI/GLTexture.cpp index 171a5c885..495a9864c 100644 --- a/src/slic3r/GUI/GLTexture.cpp +++ b/src/slic3r/GUI/GLTexture.cpp @@ -147,6 +147,19 @@ bool GLTexture::load_from_file(const std::string& filename, bool use_mipmaps, bo return false; } +bool GLTexture::load_from_file(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px) +{ + reset(); + + if (!boost::filesystem::exists(filename)) + return false; + + if (boost::algorithm::iends_with(filename, ".png")) + return load_from_png(filename, use_mipmaps, compress, apply_anisotropy, max_size_px); + else + return false; +} + bool GLTexture::load_from_svg_file(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px) { reset(); @@ -465,6 +478,172 @@ bool GLTexture::load_from_png(const std::string& filename, bool use_mipmaps, boo return true; } +bool GLTexture::load_from_png(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px) +{ + bool compression_enabled = compress && GLEW_EXT_texture_compression_s3tc; + + // Load a PNG with an alpha channel. + wxImage image; + if (!image.LoadFile(wxString::FromUTF8(filename.c_str()), wxBITMAP_TYPE_PNG)) + { + reset(); + return false; + } + + m_width = image.GetWidth(); + m_height = image.GetHeight(); + + unsigned int max_size = (unsigned int)std::max(m_width, m_height); + bool requires_rescale = false; + if (max_size_px < max_size) + { + float scale = (float)max_size_px / (float)max_size; + + m_width = (int)(scale * (float)m_width); + m_height = (int)(scale * (float)m_height); + requires_rescale = true; + } + + if (compression_enabled) + { + // the stb_dxt compression library seems to like only texture sizes which are a multiple of 4 + int width_rem = m_width % 4; + int height_rem = m_height % 4; + + if (width_rem != 0) + { + m_width += (4 - width_rem); + requires_rescale = true; + } + + if (height_rem != 0) + { + m_height += (4 - height_rem); + requires_rescale = true; + } + } + + if (requires_rescale) + image = image.ResampleBicubic(m_width, m_height); + + int n_pixels = m_width * m_height; + if (n_pixels <= 0) + { + reset(); + return false; + } + + // Get RGB & alpha raw data from wxImage, pack them into an array. + unsigned char* img_rgb = image.GetData(); + if (img_rgb == nullptr) + { + reset(); + return false; + } + + unsigned char* img_alpha = image.GetAlpha(); + + std::vector data(n_pixels * 4, 0); + for (int i = 0; i < n_pixels; ++i) + { + int data_id = i * 4; + int img_id = i * 3; + data[data_id + 0] = img_rgb[img_id + 0]; + data[data_id + 1] = img_rgb[img_id + 1]; + data[data_id + 2] = img_rgb[img_id + 2]; + data[data_id + 3] = (img_alpha != nullptr) ? img_alpha[i] : 255; + } + + // sends data to gpu + glsafe(::glPixelStorei(GL_UNPACK_ALIGNMENT, 1)); + glsafe(::glGenTextures(1, &m_id)); + glsafe(::glBindTexture(GL_TEXTURE_2D, m_id)); + + if (apply_anisotropy) + { + GLfloat max_anisotropy = GLCanvas3DManager::get_gl_info().get_max_anisotropy(); + if (max_anisotropy > 1.0f) + glsafe(::glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, max_anisotropy)); + } + + if (compression_enabled) + { + // initializes the texture on GPU + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0)); + // and send the uncompressed data to the compressor + m_compressor.add_level((unsigned int)m_width, (unsigned int)m_height, data); + } + else + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); + + if (use_mipmaps) + { + // we manually generate mipmaps because glGenerateMipmap() function is not reliable on all graphics cards + int lod_w = m_width; + int lod_h = m_height; + GLint level = 0; + // we do not need to generate all levels down to 1x1 + while ((lod_w > 16) || (lod_h > 16)) + { + ++level; + + lod_w = std::max(lod_w / 2, 1); + lod_h = std::max(lod_h / 2, 1); + n_pixels = lod_w * lod_h; + + image = image.ResampleBicubic(lod_w, lod_h); + + data.resize(n_pixels * 4); + + img_rgb = image.GetData(); + img_alpha = image.GetAlpha(); + + for (int i = 0; i < n_pixels; ++i) + { + int data_id = i * 4; + int img_id = i * 3; + data[data_id + 0] = img_rgb[img_id + 0]; + data[data_id + 1] = img_rgb[img_id + 1]; + data[data_id + 2] = img_rgb[img_id + 2]; + data[data_id + 3] = (img_alpha != nullptr) ? img_alpha[i] : 255; + } + + if (compression_enabled) + { + // initializes the texture on GPU + glsafe(::glTexImage2D(GL_TEXTURE_2D, level, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)lod_w, (GLsizei)lod_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0)); + // and send the uncompressed data to the compressor + m_compressor.add_level((unsigned int)lod_w, (unsigned int)lod_h, data); + } + else + glsafe(::glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA, (GLsizei)lod_w, (GLsizei)lod_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); + } + + if (!compression_enabled) + { + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, level)); + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR)); + } + } + else + { + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0)); + } + + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); + + glsafe(::glBindTexture(GL_TEXTURE_2D, 0)); + + m_source = filename; + + if (compression_enabled) + // start asynchronous compression + m_compressor.start_compressing(); + + return true; +} + bool GLTexture::load_from_svg(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px) { bool compression_enabled = compress && GLEW_EXT_texture_compression_s3tc; @@ -579,6 +758,7 @@ bool GLTexture::load_from_svg(const std::string& filename, bool use_mipmaps, boo glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0)); } + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); glsafe(::glBindTexture(GL_TEXTURE_2D, 0)); diff --git a/src/slic3r/GUI/GLTexture.hpp b/src/slic3r/GUI/GLTexture.hpp index f4dc05a16..21e01733d 100644 --- a/src/slic3r/GUI/GLTexture.hpp +++ b/src/slic3r/GUI/GLTexture.hpp @@ -76,6 +76,7 @@ namespace GUI { virtual ~GLTexture(); bool load_from_file(const std::string& filename, bool use_mipmaps, bool compress); + bool load_from_file(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px); bool load_from_svg_file(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px); // meanings of states: (std::pair) // first field (int): @@ -106,6 +107,7 @@ namespace GUI { private: bool load_from_png(const std::string& filename, bool use_mipmaps, bool compress); + bool load_from_png(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px); bool load_from_svg(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px); friend class Compressor; From 84d61e28fdcc15d337d960fcade06e627b27d57f Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Fri, 19 Jul 2019 09:52:01 +0200 Subject: [PATCH 08/24] Tech ENABLE_TEXTURES_FROM_SVG set as default --- src/libslic3r/Technologies.hpp | 9 -- src/slic3r/GUI/3DBed.cpp | 263 --------------------------------- src/slic3r/GUI/3DBed.hpp | 30 ---- src/slic3r/GUI/GLCanvas3D.cpp | 85 ----------- src/slic3r/GUI/GLCanvas3D.hpp | 26 ---- src/slic3r/GUI/GLShader.cpp | 2 - src/slic3r/GUI/GLShader.hpp | 2 - 7 files changed, 417 deletions(-) diff --git a/src/libslic3r/Technologies.hpp b/src/libslic3r/Technologies.hpp index ae43369d2..51d092094 100644 --- a/src/libslic3r/Technologies.hpp +++ b/src/libslic3r/Technologies.hpp @@ -32,13 +32,4 @@ #define ENABLE_NONCUSTOM_DATA_VIEW_RENDERING (0 && ENABLE_1_42_0_ALPHA1) -//==================== -// 1.42.0.alpha7 techs -//==================== -#define ENABLE_1_42_0_ALPHA7 1 - -// Printbed textures generated from svg files -#define ENABLE_TEXTURES_FROM_SVG (1 && ENABLE_1_42_0_ALPHA7) - - #endif // _technologies_h_ diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index 27531f030..89ad5a4ad 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -23,7 +23,6 @@ namespace GUI { bool GeometryBuffer::set_from_triangles(const Polygons& triangles, float z, bool generate_tex_coords) { -#if ENABLE_TEXTURES_FROM_SVG m_vertices.clear(); unsigned int v_size = 3 * (unsigned int)triangles.size(); @@ -83,75 +82,12 @@ bool GeometryBuffer::set_from_triangles(const Polygons& triangles, float z, bool } } } -#else - m_vertices.clear(); - m_tex_coords.clear(); - - unsigned int v_size = 9 * (unsigned int)triangles.size(); - unsigned int t_size = 6 * (unsigned int)triangles.size(); - if (v_size == 0) - return false; - - m_vertices = std::vector(v_size, 0.0f); - if (generate_tex_coords) - m_tex_coords = std::vector(t_size, 0.0f); - - float min_x = unscale(triangles[0].points[0](0)); - float min_y = unscale(triangles[0].points[0](1)); - float max_x = min_x; - float max_y = min_y; - - unsigned int v_coord = 0; - unsigned int t_coord = 0; - for (const Polygon& t : triangles) - { - for (unsigned int v = 0; v < 3; ++v) - { - const Point& p = t.points[v]; - float x = unscale(p(0)); - float y = unscale(p(1)); - - m_vertices[v_coord++] = x; - m_vertices[v_coord++] = y; - m_vertices[v_coord++] = z; - - if (generate_tex_coords) - { - m_tex_coords[t_coord++] = x; - m_tex_coords[t_coord++] = y; - - min_x = std::min(min_x, x); - max_x = std::max(max_x, x); - min_y = std::min(min_y, y); - max_y = std::max(max_y, y); - } - } - } - - if (generate_tex_coords) - { - float size_x = max_x - min_x; - float size_y = max_y - min_y; - - if ((size_x != 0.0f) && (size_y != 0.0f)) - { - float inv_size_x = 1.0f / size_x; - float inv_size_y = -1.0f / size_y; - for (unsigned int i = 0; i < m_tex_coords.size(); i += 2) - { - m_tex_coords[i] = (m_tex_coords[i] - min_x) * inv_size_x; - m_tex_coords[i + 1] = (m_tex_coords[i + 1] - min_y) * inv_size_y; - } - } - } -#endif // ENABLE_TEXTURES_FROM_SVG return true; } bool GeometryBuffer::set_from_lines(const Lines& lines, float z) { -#if ENABLE_TEXTURES_FROM_SVG m_vertices.clear(); unsigned int v_size = 2 * (unsigned int)lines.size(); @@ -175,37 +111,14 @@ bool GeometryBuffer::set_from_lines(const Lines& lines, float z) v2.position[2] = z; ++v_count; } -#else - m_vertices.clear(); - m_tex_coords.clear(); - - unsigned int size = 6 * (unsigned int)lines.size(); - if (size == 0) - return false; - - m_vertices = std::vector(size, 0.0f); - - unsigned int coord = 0; - for (const Line& l : lines) - { - m_vertices[coord++] = unscale(l.a(0)); - m_vertices[coord++] = unscale(l.a(1)); - m_vertices[coord++] = z; - m_vertices[coord++] = unscale(l.b(0)); - m_vertices[coord++] = unscale(l.b(1)); - m_vertices[coord++] = z; - } -#endif // ENABLE_TEXTURES_FROM_SVG return true; } -#if ENABLE_TEXTURES_FROM_SVG const float* GeometryBuffer::get_vertices_data() const { return (m_vertices.size() > 0) ? (const float*)m_vertices.data() : nullptr; } -#endif // ENABLE_TEXTURES_FROM_SVG const double Bed3D::Axes::Radius = 0.5; const double Bed3D::Axes::ArrowBaseRadius = 2.5 * Bed3D::Axes::Radius; @@ -276,10 +189,8 @@ void Bed3D::Axes::render_axis(double length) const Bed3D::Bed3D() : m_type(Custom) , m_custom_texture("") -#if ENABLE_TEXTURES_FROM_SVG , m_requires_canvas_update(false) , m_vbo_id(0) -#endif // ENABLE_TEXTURES_FROM_SVG , m_scale_factor(1.0f) { } @@ -319,9 +230,7 @@ bool Bed3D::set_shape(const Pointfs& shape, const std::string& custom_texture) m_polygon = offset_ex(poly.contour, (float)bed_bbox.radius() * 1.7f, jtRound, scale_(0.5))[0].contour; -#if ENABLE_TEXTURES_FROM_SVG reset(); -#endif // ENABLE_TEXTURES_FROM_SVG // Set the origin and size for painting of the coordinate system axes. m_axes.origin = Vec3d(0.0, 0.0, (double)GROUND_Z); @@ -341,7 +250,6 @@ Point Bed3D::point_projection(const Point& point) const return m_polygon.point_projection(point); } -#if ENABLE_TEXTURES_FROM_SVG void Bed3D::render(GLCanvas3D* canvas, float theta, float scale_factor) const { m_scale_factor = scale_factor; @@ -371,40 +279,6 @@ void Bed3D::render(GLCanvas3D* canvas, float theta, float scale_factor) const } } } -#else -void Bed3D::render(float theta, float scale_factor) const -{ - m_scale_factor = scale_factor; - - if (m_shape.empty()) - return; - - switch (m_type) - { - case MK2: - { - render_prusa("mk2", theta); - break; - } - case MK3: - { - render_prusa("mk3", theta); - break; - } - case SL1: - { - render_prusa("sl1", theta); - break; - } - default: - case Custom: - { - render_custom(); - break; - } - } -} -#endif // ENABLE_TEXTURES_FROM_SVG void Bed3D::render_axes() const { @@ -507,7 +381,6 @@ Bed3D::EType Bed3D::detect_type(const Pointfs& shape) const return type; } -#if ENABLE_TEXTURES_FROM_SVG void Bed3D::render_prusa(GLCanvas3D* canvas, const std::string &key, bool bottom) const { std::string filename = !m_custom_texture.empty() ? m_custom_texture : resources_dir() + "/icons/bed/" + key + ".svg"; @@ -692,136 +565,10 @@ void Bed3D::render_prusa_shader(bool transparent) const m_shader.stop_using(); } } -#else -void Bed3D::render_prusa(const std::string& key, float theta) const -{ - std::string tex_path = resources_dir() + "/icons/bed/" + key; - - // use higher resolution images if graphic card allows - GLint max_tex_size; - glsafe(::glGetIntegerv(GL_MAX_TEXTURE_SIZE, &max_tex_size)); - - // temporary set to lowest resolution - max_tex_size = 2048; - - if (max_tex_size >= 8192) - tex_path += "_8192"; - else if (max_tex_size >= 4096) - tex_path += "_4096"; - - std::string model_path = resources_dir() + "/models/" + key; - - // use anisotropic filter if graphic card allows - GLfloat max_anisotropy = 0.0f; - if (glewIsSupported("GL_EXT_texture_filter_anisotropic")) - glsafe(::glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &max_anisotropy)); - - std::string filename = tex_path + "_top.png"; - if ((m_top_texture.get_id() == 0) || (m_top_texture.get_source() != filename)) - { - if (!m_top_texture.load_from_file(filename, true, true)) - { - render_custom(); - return; - } - - if (max_anisotropy > 0.0f) - { - glsafe(::glBindTexture(GL_TEXTURE_2D, m_top_texture.get_id())); - glsafe(::glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, max_anisotropy)); - glsafe(::glBindTexture(GL_TEXTURE_2D, 0)); - } - } - - filename = tex_path + "_bottom.png"; - if ((m_bottom_texture.get_id() == 0) || (m_bottom_texture.get_source() != filename)) - { - if (!m_bottom_texture.load_from_file(filename, true, true)) - { - render_custom(); - return; - } - - if (max_anisotropy > 0.0f) - { - glsafe(::glBindTexture(GL_TEXTURE_2D, m_bottom_texture.get_id())); - glsafe(::glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, max_anisotropy)); - glsafe(::glBindTexture(GL_TEXTURE_2D, 0)); - } - } - - if (theta <= 90.0f) - { - filename = model_path + "_bed.stl"; - if ((m_model.get_filename() != filename) && m_model.init_from_file(filename)) { - Vec3d offset = m_bounding_box.center() - Vec3d(0.0, 0.0, 0.5 * m_model.get_bounding_box().size()(2)); - if (key == "mk2") - // hardcoded value to match the stl model - offset += Vec3d(0.0, 7.5, -0.03); - else if (key == "mk3") - // hardcoded value to match the stl model - offset += Vec3d(0.0, 5.5, 2.43); - else if (key == "sl1") - // hardcoded value to match the stl model - offset += Vec3d(0.0, 0.0, -0.03); - - m_model.center_around(offset); - } - - if (!m_model.get_filename().empty()) - { - glsafe(::glEnable(GL_LIGHTING)); - m_model.render(); - glsafe(::glDisable(GL_LIGHTING)); - } - } - - unsigned int triangles_vcount = m_triangles.get_vertices_count(); - if (triangles_vcount > 0) - { - glsafe(::glEnable(GL_DEPTH_TEST)); - glsafe(::glDepthMask(GL_FALSE)); - - glsafe(::glEnable(GL_BLEND)); - glsafe(::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)); - - glsafe(::glEnable(GL_TEXTURE_2D)); - glsafe(::glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE)); - - glsafe(::glEnableClientState(GL_VERTEX_ARRAY)); - glsafe(::glEnableClientState(GL_TEXTURE_COORD_ARRAY)); - - if (theta > 90.0f) - glsafe(::glFrontFace(GL_CW)); - - glsafe(::glBindTexture(GL_TEXTURE_2D, (theta <= 90.0f) ? (GLuint)m_top_texture.get_id() : (GLuint)m_bottom_texture.get_id())); - glsafe(::glVertexPointer(3, GL_FLOAT, 0, (GLvoid*)m_triangles.get_vertices())); - glsafe(::glTexCoordPointer(2, GL_FLOAT, 0, (GLvoid*)m_triangles.get_tex_coords())); - glsafe(::glDrawArrays(GL_TRIANGLES, 0, (GLsizei)triangles_vcount)); - - if (theta > 90.0f) - glsafe(::glFrontFace(GL_CCW)); - - glsafe(::glBindTexture(GL_TEXTURE_2D, 0)); - glsafe(::glDisableClientState(GL_TEXTURE_COORD_ARRAY)); - glsafe(::glDisableClientState(GL_VERTEX_ARRAY)); - - glsafe(::glDisable(GL_TEXTURE_2D)); - - glsafe(::glDisable(GL_BLEND)); - glsafe(::glDepthMask(GL_TRUE)); - } -} -#endif // ENABLE_TEXTURES_FROM_SVG void Bed3D::render_custom() const { -#if ENABLE_TEXTURES_FROM_SVG m_texture.reset(); -#else - m_top_texture.reset(); - m_bottom_texture.reset(); -#endif // ENABLE_TEXTURES_FROM_SVG unsigned int triangles_vcount = m_triangles.get_vertices_count(); if (triangles_vcount > 0) @@ -836,11 +583,7 @@ void Bed3D::render_custom() const glsafe(::glColor4f(0.35f, 0.35f, 0.35f, 0.4f)); glsafe(::glNormal3d(0.0f, 0.0f, 1.0f)); -#if ENABLE_TEXTURES_FROM_SVG glsafe(::glVertexPointer(3, GL_FLOAT, m_triangles.get_vertex_data_size(), (GLvoid*)m_triangles.get_vertices_data())); -#else - glsafe(::glVertexPointer(3, GL_FLOAT, 0, (GLvoid*)m_triangles.get_vertices())); -#endif // ENABLE_TEXTURES_FROM_SVG glsafe(::glDrawArrays(GL_TRIANGLES, 0, (GLsizei)triangles_vcount)); // draw grid @@ -850,11 +593,7 @@ void Bed3D::render_custom() const glsafe(::glEnable(GL_DEPTH_TEST)); glsafe(::glLineWidth(3.0f * m_scale_factor)); glsafe(::glColor4f(0.2f, 0.2f, 0.2f, 0.4f)); -#if ENABLE_TEXTURES_FROM_SVG glsafe(::glVertexPointer(3, GL_FLOAT, m_triangles.get_vertex_data_size(), (GLvoid*)m_gridlines.get_vertices_data())); -#else - glsafe(::glVertexPointer(3, GL_FLOAT, 0, (GLvoid*)m_gridlines.get_vertices())); -#endif // ENABLE_TEXTURES_FROM_SVG glsafe(::glDrawArrays(GL_LINES, 0, (GLsizei)gridlines_vcount)); glsafe(::glDisableClientState(GL_VERTEX_ARRAY)); @@ -864,7 +603,6 @@ void Bed3D::render_custom() const } } -#if ENABLE_TEXTURES_FROM_SVG void Bed3D::reset() { if (m_vbo_id > 0) @@ -873,7 +611,6 @@ void Bed3D::reset() m_vbo_id = 0; } } -#endif // ENABLE_TEXTURES_FROM_SVG } // GUI } // Slic3r \ No newline at end of file diff --git a/src/slic3r/GUI/3DBed.hpp b/src/slic3r/GUI/3DBed.hpp index 186282997..7a8944443 100644 --- a/src/slic3r/GUI/3DBed.hpp +++ b/src/slic3r/GUI/3DBed.hpp @@ -3,9 +3,7 @@ #include "GLTexture.hpp" #include "3DScene.hpp" -#if ENABLE_TEXTURES_FROM_SVG #include "GLShader.hpp" -#endif // ENABLE_TEXTURES_FROM_SVG class GLUquadric; typedef class GLUquadric GLUquadricObj; @@ -17,7 +15,6 @@ class GLCanvas3D; class GeometryBuffer { -#if ENABLE_TEXTURES_FROM_SVG struct Vertex { float position[3]; @@ -31,27 +28,17 @@ class GeometryBuffer }; std::vector m_vertices; -#else - std::vector m_vertices; - std::vector m_tex_coords; -#endif // ENABLE_TEXTURES_FROM_SVG public: bool set_from_triangles(const Polygons& triangles, float z, bool generate_tex_coords); bool set_from_lines(const Lines& lines, float z); -#if ENABLE_TEXTURES_FROM_SVG const float* get_vertices_data() const; unsigned int get_vertices_data_size() const { return (unsigned int)m_vertices.size() * get_vertex_data_size(); } unsigned int get_vertex_data_size() const { return (unsigned int)(5 * sizeof(float)); } size_t get_position_offset() const { return 0; } size_t get_tex_coords_offset() const { return (size_t)(3 * sizeof(float)); } unsigned int get_vertices_count() const { return (unsigned int)m_vertices.size(); } -#else - const float* get_vertices() const { return m_vertices.data(); } - const float* get_tex_coords() const { return m_tex_coords.data(); } - unsigned int get_vertices_count() const { return (unsigned int)m_vertices.size() / 3; } -#endif // ENABLE_TEXTURES_FROM_SVG }; class Bed3D @@ -93,7 +80,6 @@ private: Polygon m_polygon; GeometryBuffer m_triangles; GeometryBuffer m_gridlines; -#if ENABLE_TEXTURES_FROM_SVG mutable GLTexture m_texture; // temporary texture shown until the main texture has still no levels compressed mutable GLTexture m_temp_texture; @@ -101,10 +87,6 @@ private: mutable bool m_requires_canvas_update; mutable Shader m_shader; mutable unsigned int m_vbo_id; -#else - mutable GLTexture m_top_texture; - mutable GLTexture m_bottom_texture; -#endif // ENABLE_TEXTURES_FROM_SVG mutable GLBed m_model; Axes m_axes; @@ -112,9 +94,7 @@ private: public: Bed3D(); -#if ENABLE_TEXTURES_FROM_SVG ~Bed3D() { reset(); } -#endif // ENABLE_TEXTURES_FROM_SVG EType get_type() const { return m_type; } @@ -129,11 +109,7 @@ public: bool contains(const Point& point) const; Point point_projection(const Point& point) const; -#if ENABLE_TEXTURES_FROM_SVG void render(GLCanvas3D* canvas, float theta, float scale_factor) const; -#else - void render(float theta, float scale_factor) const; -#endif // ENABLE_TEXTURES_FROM_SVG void render_axes() const; private: @@ -141,16 +117,10 @@ private: void calc_triangles(const ExPolygon& poly); void calc_gridlines(const ExPolygon& poly, const BoundingBox& bed_bbox); EType detect_type(const Pointfs& shape) const; -#if ENABLE_TEXTURES_FROM_SVG void render_prusa(GLCanvas3D* canvas, const std::string& key, bool bottom) const; void render_prusa_shader(bool transparent) const; -#else - void render_prusa(const std::string& key, float theta) const; -#endif // ENABLE_TEXTURES_FROM_SVG void render_custom() const; -#if ENABLE_TEXTURES_FROM_SVG void reset(); -#endif // ENABLE_TEXTURES_FROM_SVG }; } // GUI diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 47b9ad48a..70544cd37 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -116,87 +116,6 @@ void Size::set_scale_factor(int scale_factor) m_scale_factor = scale_factor; } -#if !ENABLE_TEXTURES_FROM_SVG -GLCanvas3D::Shader::Shader() - : m_shader(nullptr) -{ -} - -GLCanvas3D::Shader::~Shader() -{ - _reset(); -} - -bool GLCanvas3D::Shader::init(const std::string& vertex_shader_filename, const std::string& fragment_shader_filename) -{ - if (is_initialized()) - return true; - - m_shader = new GLShader(); - if (m_shader != nullptr) - { - if (!m_shader->load_from_file(fragment_shader_filename.c_str(), vertex_shader_filename.c_str())) - { - std::cout << "Compilaton of shader failed:" << std::endl; - std::cout << m_shader->last_error << std::endl; - _reset(); - return false; - } - } - - return true; -} - -bool GLCanvas3D::Shader::is_initialized() const -{ - return (m_shader != nullptr); -} - -bool GLCanvas3D::Shader::start_using() const -{ - if (is_initialized()) - { - m_shader->enable(); - return true; - } - else - return false; -} - -void GLCanvas3D::Shader::stop_using() const -{ - if (m_shader != nullptr) - m_shader->disable(); -} - -void GLCanvas3D::Shader::set_uniform(const std::string& name, float value) const -{ - if (m_shader != nullptr) - m_shader->set_uniform(name.c_str(), value); -} - -void GLCanvas3D::Shader::set_uniform(const std::string& name, const float* matrix) const -{ - if (m_shader != nullptr) - m_shader->set_uniform(name.c_str(), matrix); -} - -const GLShader* GLCanvas3D::Shader::get_shader() const -{ - return m_shader; -} - -void GLCanvas3D::Shader::_reset() -{ - if (m_shader != nullptr) - { - m_shader->release(); - delete m_shader; - m_shader = nullptr; - } -} -#endif // !ENABLE_TEXTURES_FROM_SVG - GLCanvas3D::LayersEditing::LayersEditing() : m_enabled(false) , m_z_texture_id(0) @@ -3907,11 +3826,7 @@ void GLCanvas3D::_render_bed(float theta) const #if ENABLE_RETINA_GL scale_factor = m_retina_helper->get_scale_factor(); #endif // ENABLE_RETINA_GL -#if ENABLE_TEXTURES_FROM_SVG m_bed.render(const_cast(this), theta, scale_factor); -#else - m_bed.render(theta, scale_factor); -#endif // ENABLE_TEXTURES_FROM_SVG } void GLCanvas3D::_render_axes() const diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 6bb17da4a..cdf45c4f7 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -159,32 +159,6 @@ class GLCanvas3D void reset() { first_volumes.clear(); } }; -#if !ENABLE_TEXTURES_FROM_SVG - class Shader - { - GLShader* m_shader; - - public: - Shader(); - ~Shader(); - - bool init(const std::string& vertex_shader_filename, const std::string& fragment_shader_filename); - - bool is_initialized() const; - - bool start_using() const; - void stop_using() const; - - void set_uniform(const std::string& name, float value) const; - void set_uniform(const std::string& name, const float* matrix) const; - - const GLShader* get_shader() const; - - private: - void _reset(); - }; -#endif // !ENABLE_TEXTURES_FROM_SVG - class LayersEditing { public: diff --git a/src/slic3r/GUI/GLShader.cpp b/src/slic3r/GUI/GLShader.cpp index 7f3bc0893..577f6e1b5 100644 --- a/src/slic3r/GUI/GLShader.cpp +++ b/src/slic3r/GUI/GLShader.cpp @@ -268,7 +268,6 @@ sub SetMatrix } */ -#if ENABLE_TEXTURES_FROM_SVG Shader::Shader() : m_shader(nullptr) { @@ -363,6 +362,5 @@ void Shader::reset() m_shader = nullptr; } } -#endif // ENABLE_TEXTURES_FROM_SVG } // namespace Slic3r diff --git a/src/slic3r/GUI/GLShader.hpp b/src/slic3r/GUI/GLShader.hpp index 58e2678d0..df2a23f15 100644 --- a/src/slic3r/GUI/GLShader.hpp +++ b/src/slic3r/GUI/GLShader.hpp @@ -37,7 +37,6 @@ public: std::string last_error; }; -#if ENABLE_TEXTURES_FROM_SVG class Shader { GLShader* m_shader; @@ -66,7 +65,6 @@ public: private: void reset(); }; -#endif // ENABLE_TEXTURES_FROM_SVG } From 749bb2bfed739f4d19ae06ced02b4b8463edf1ed Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Fri, 19 Jul 2019 11:18:19 +0200 Subject: [PATCH 09/24] Refactoring in GLTexture --- src/slic3r/GUI/3DBed.cpp | 4 +- src/slic3r/GUI/GLCanvas3D.cpp | 4 +- src/slic3r/GUI/GLTexture.cpp | 173 +++------------------- src/slic3r/GUI/GLTexture.hpp | 16 +- src/slic3r/GUI/GLToolbar.cpp | 2 +- src/slic3r/GUI/Gizmos/GLGizmosManager.cpp | 2 +- 6 files changed, 39 insertions(+), 162 deletions(-) diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index 89ad5a4ad..89b7caedf 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -418,7 +418,7 @@ void Bed3D::render_prusa(GLCanvas3D* canvas, const std::string &key, bool bottom // generate a temporary lower resolution texture to show while no main texture levels have been compressed if ((m_temp_texture.get_id() == 0) || (m_temp_texture.get_source() != filename)) { - if (!m_temp_texture.load_from_file(filename, false, false, false, max_tex_size)) + if (!m_temp_texture.load_from_file(filename, false, GLTexture::None, false)) { render_custom(); return; @@ -426,7 +426,7 @@ void Bed3D::render_prusa(GLCanvas3D* canvas, const std::string &key, bool bottom } // starts generating the main texture, compression will run asynchronously - if (!m_texture.load_from_file(filename, true, true, true, max_tex_size)) + if (!m_texture.load_from_file(filename, true, GLTexture::MultiThreaded, true)) { render_custom(); return; diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 70544cd37..b4a79c6f0 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -302,7 +302,7 @@ void GLCanvas3D::LayersEditing::_render_tooltip_texture(const GLCanvas3D& canvas if (m_tooltip_texture.get_id() == 0) { std::string filename = resources_dir() + "/icons/variable_layer_height_tooltip.png"; - if (!m_tooltip_texture.load_from_file(filename, false, true)) + if (!m_tooltip_texture.load_from_file(filename, false, GLTexture::SingleThreaded, false)) return; } @@ -334,7 +334,7 @@ void GLCanvas3D::LayersEditing::_render_reset_texture(const Rect& reset_rect) co if (m_reset_texture.get_id() == 0) { std::string filename = resources_dir() + "/icons/variable_layer_height_reset.png"; - if (!m_reset_texture.load_from_file(filename, false, true)) + if (!m_reset_texture.load_from_file(filename, false, GLTexture::SingleThreaded, false)) return; } diff --git a/src/slic3r/GUI/GLTexture.cpp b/src/slic3r/GUI/GLTexture.cpp index 495a9864c..f3421f150 100644 --- a/src/slic3r/GUI/GLTexture.cpp +++ b/src/slic3r/GUI/GLTexture.cpp @@ -134,7 +134,7 @@ GLTexture::~GLTexture() reset(); } -bool GLTexture::load_from_file(const std::string& filename, bool use_mipmaps, bool compress) +bool GLTexture::load_from_file(const std::string& filename, bool use_mipmaps, ECompressionType compression_type, bool apply_anisotropy) { reset(); @@ -142,20 +142,7 @@ bool GLTexture::load_from_file(const std::string& filename, bool use_mipmaps, bo return false; if (boost::algorithm::iends_with(filename, ".png")) - return load_from_png(filename, use_mipmaps, compress); - else - return false; -} - -bool GLTexture::load_from_file(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px) -{ - reset(); - - if (!boost::filesystem::exists(filename)) - return false; - - if (boost::algorithm::iends_with(filename, ".png")) - return load_from_png(filename, use_mipmaps, compress, apply_anisotropy, max_size_px); + return load_from_png(filename, use_mipmaps, compression_type, apply_anisotropy); else return false; } @@ -367,120 +354,9 @@ void GLTexture::render_sub_texture(unsigned int tex_id, float left, float right, glsafe(::glDisable(GL_BLEND)); } -unsigned int GLTexture::generate_mipmaps(wxImage& image, bool compress) +bool GLTexture::load_from_png(const std::string& filename, bool use_mipmaps, ECompressionType compression_type, bool apply_anisotropy) { - int w = image.GetWidth(); - int h = image.GetHeight(); - GLint level = 0; - std::vector data(w * h * 4, 0); - - while ((w > 1) || (h > 1)) - { - ++level; - - w = std::max(w / 2, 1); - h = std::max(h / 2, 1); - - int n_pixels = w * h; - - image = image.ResampleBicubic(w, h); - - unsigned char* img_rgb = image.GetData(); - unsigned char* img_alpha = image.GetAlpha(); - - data.resize(n_pixels * 4); - for (int i = 0; i < n_pixels; ++i) - { - int data_id = i * 4; - int img_id = i * 3; - data[data_id + 0] = img_rgb[img_id + 0]; - data[data_id + 1] = img_rgb[img_id + 1]; - data[data_id + 2] = img_rgb[img_id + 2]; - data[data_id + 3] = (img_alpha != nullptr) ? img_alpha[i] : 255; - } - - if (compress && GLEW_EXT_texture_compression_s3tc) - glsafe(::glTexImage2D(GL_TEXTURE_2D, level, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)w, (GLsizei)h, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); - else - glsafe(::glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA, (GLsizei)w, (GLsizei)h, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); - } - - return (unsigned int)level; -} - -bool GLTexture::load_from_png(const std::string& filename, bool use_mipmaps, bool compress) -{ - // Load a PNG with an alpha channel. - wxImage image; - if (!image.LoadFile(wxString::FromUTF8(filename.c_str()), wxBITMAP_TYPE_PNG)) - { - reset(); - return false; - } - - m_width = image.GetWidth(); - m_height = image.GetHeight(); - int n_pixels = m_width * m_height; - - if (n_pixels <= 0) - { - reset(); - return false; - } - - // Get RGB & alpha raw data from wxImage, pack them into an array. - unsigned char* img_rgb = image.GetData(); - if (img_rgb == nullptr) - { - reset(); - return false; - } - - unsigned char* img_alpha = image.GetAlpha(); - - std::vector data(n_pixels * 4, 0); - for (int i = 0; i < n_pixels; ++i) - { - int data_id = i * 4; - int img_id = i * 3; - data[data_id + 0] = img_rgb[img_id + 0]; - data[data_id + 1] = img_rgb[img_id + 1]; - data[data_id + 2] = img_rgb[img_id + 2]; - data[data_id + 3] = (img_alpha != nullptr) ? img_alpha[i] : 255; - } - - // sends data to gpu - glsafe(::glPixelStorei(GL_UNPACK_ALIGNMENT, 1)); - glsafe(::glGenTextures(1, &m_id)); - glsafe(::glBindTexture(GL_TEXTURE_2D, m_id)); - if (compress && GLEW_EXT_texture_compression_s3tc) - glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); - else - glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); - if (use_mipmaps) - { - // we manually generate mipmaps because glGenerateMipmap() function is not reliable on all graphics cards - unsigned int levels_count = generate_mipmaps(image, compress); - glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, levels_count)); - glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR)); - } - else - { - glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); - glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0)); - } - glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); - - glsafe(::glBindTexture(GL_TEXTURE_2D, 0)); - - m_source = filename; - - return true; -} - -bool GLTexture::load_from_png(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px) -{ - bool compression_enabled = compress && GLEW_EXT_texture_compression_s3tc; + bool compression_enabled = (compression_type != None) && GLEW_EXT_texture_compression_s3tc; // Load a PNG with an alpha channel. wxImage image; @@ -493,18 +369,9 @@ bool GLTexture::load_from_png(const std::string& filename, bool use_mipmaps, boo m_width = image.GetWidth(); m_height = image.GetHeight(); - unsigned int max_size = (unsigned int)std::max(m_width, m_height); bool requires_rescale = false; - if (max_size_px < max_size) - { - float scale = (float)max_size_px / (float)max_size; - m_width = (int)(scale * (float)m_width); - m_height = (int)(scale * (float)m_height); - requires_rescale = true; - } - - if (compression_enabled) + if (compression_enabled && (compression_type == MultiThreaded)) { // the stb_dxt compression library seems to like only texture sizes which are a multiple of 4 int width_rem = m_width % 4; @@ -568,10 +435,15 @@ bool GLTexture::load_from_png(const std::string& filename, bool use_mipmaps, boo if (compression_enabled) { - // initializes the texture on GPU - glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0)); - // and send the uncompressed data to the compressor - m_compressor.add_level((unsigned int)m_width, (unsigned int)m_height, data); + if (compression_type == SingleThreaded) + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); + else + { + // initializes the texture on GPU + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0)); + // and send the uncompressed data to the compressor + m_compressor.add_level((unsigned int)m_width, (unsigned int)m_height, data); + } } else glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); @@ -610,10 +482,15 @@ bool GLTexture::load_from_png(const std::string& filename, bool use_mipmaps, boo if (compression_enabled) { - // initializes the texture on GPU - glsafe(::glTexImage2D(GL_TEXTURE_2D, level, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)lod_w, (GLsizei)lod_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0)); - // and send the uncompressed data to the compressor - m_compressor.add_level((unsigned int)lod_w, (unsigned int)lod_h, data); + if (compression_type == SingleThreaded) + glsafe(::glTexImage2D(GL_TEXTURE_2D, level, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)m_width, (GLsizei)m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); + else + { + // initializes the texture on GPU + glsafe(::glTexImage2D(GL_TEXTURE_2D, level, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, (GLsizei)lod_w, (GLsizei)lod_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0)); + // and send the uncompressed data to the compressor + m_compressor.add_level((unsigned int)lod_w, (unsigned int)lod_h, data); + } } else glsafe(::glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA, (GLsizei)lod_w, (GLsizei)lod_h, 0, GL_RGBA, GL_UNSIGNED_BYTE, (const void*)data.data())); @@ -637,7 +514,7 @@ bool GLTexture::load_from_png(const std::string& filename, bool use_mipmaps, boo m_source = filename; - if (compression_enabled) + if (compression_enabled && (compression_type == MultiThreaded)) // start asynchronous compression m_compressor.start_compressing(); @@ -651,7 +528,6 @@ bool GLTexture::load_from_svg(const std::string& filename, bool use_mipmaps, boo NSVGimage* image = nsvgParseFromFile(filename.c_str(), "px", 96.0f); if (image == nullptr) { -// printf("Could not open SVG image.\n"); reset(); return false; } @@ -686,7 +562,6 @@ bool GLTexture::load_from_svg(const std::string& filename, bool use_mipmaps, boo NSVGrasterizer* rast = nsvgCreateRasterizer(); if (rast == nullptr) { -// printf("Could not init rasterizer.\n"); nsvgDelete(image); reset(); return false; diff --git a/src/slic3r/GUI/GLTexture.hpp b/src/slic3r/GUI/GLTexture.hpp index 21e01733d..7fc5b8fcf 100644 --- a/src/slic3r/GUI/GLTexture.hpp +++ b/src/slic3r/GUI/GLTexture.hpp @@ -48,6 +48,13 @@ namespace GUI { }; public: + enum ECompressionType : unsigned char + { + None, + SingleThreaded, + MultiThreaded + }; + struct UV { float u; @@ -75,8 +82,7 @@ namespace GUI { GLTexture(); virtual ~GLTexture(); - bool load_from_file(const std::string& filename, bool use_mipmaps, bool compress); - bool load_from_file(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px); + bool load_from_file(const std::string& filename, bool use_mipmaps, ECompressionType compression_type, bool apply_anisotropy); bool load_from_svg_file(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px); // meanings of states: (std::pair) // first field (int): @@ -102,12 +108,8 @@ namespace GUI { static void render_texture(unsigned int tex_id, float left, float right, float bottom, float top); static void render_sub_texture(unsigned int tex_id, float left, float right, float bottom, float top, const Quad_UVs& uvs); - protected: - unsigned int generate_mipmaps(wxImage& image, bool compress); - private: - bool load_from_png(const std::string& filename, bool use_mipmaps, bool compress); - bool load_from_png(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px); + bool load_from_png(const std::string& filename, bool use_mipmaps, ECompressionType compression_type, bool apply_anisotropy); bool load_from_svg(const std::string& filename, bool use_mipmaps, bool compress, bool apply_anisotropy, unsigned int max_size_px); friend class Compressor; diff --git a/src/slic3r/GUI/GLToolbar.cpp b/src/slic3r/GUI/GLToolbar.cpp index 0002eda2d..f4748f680 100644 --- a/src/slic3r/GUI/GLToolbar.cpp +++ b/src/slic3r/GUI/GLToolbar.cpp @@ -172,7 +172,7 @@ bool GLToolbar::init(const BackgroundTexture::Metadata& background_texture) bool res = false; if (!background_texture.filename.empty()) - res = m_background_texture.texture.load_from_file(path + background_texture.filename, false, true); + res = m_background_texture.texture.load_from_file(path + background_texture.filename, false, GLTexture::SingleThreaded, false); if (res) m_background_texture.metadata = background_texture; diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index df53b40aa..1509c1328 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -43,7 +43,7 @@ bool GLGizmosManager::init() if (!m_background_texture.metadata.filename.empty()) { - if (!m_background_texture.texture.load_from_file(resources_dir() + "/icons/" + m_background_texture.metadata.filename, false, true)) + if (!m_background_texture.texture.load_from_file(resources_dir() + "/icons/" + m_background_texture.metadata.filename, false, GLTexture::SingleThreaded, false)) { reset(); return false; From 7e7550b416f8c14996ac9fb58b410483ac4a3d97 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Wed, 24 Jul 2019 10:11:17 +0200 Subject: [PATCH 10/24] Custom bed texture applied to custom bed shapes --- src/slic3r/GUI/3DBed.cpp | 144 +++++++++++++++++++++++++++++----- src/slic3r/GUI/3DBed.hpp | 9 ++- src/slic3r/GUI/GLCanvas3D.cpp | 2 +- 3 files changed, 129 insertions(+), 26 deletions(-) diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index 89b7caedf..041c555e0 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -250,7 +250,7 @@ Point Bed3D::point_projection(const Point& point) const return m_polygon.point_projection(point); } -void Bed3D::render(GLCanvas3D* canvas, float theta, float scale_factor) const +void Bed3D::render(GLCanvas3D& canvas, float theta, float scale_factor) const { m_scale_factor = scale_factor; @@ -274,7 +274,7 @@ void Bed3D::render(GLCanvas3D* canvas, float theta, float scale_factor) const default: case Custom: { - render_custom(); + render_custom(canvas, theta > 90.0f); break; } } @@ -309,7 +309,7 @@ void Bed3D::calc_triangles(const ExPolygon& poly) Polygons triangles; poly.triangulate(&triangles); - if (!m_triangles.set_from_triangles(triangles, GROUND_Z, m_type != Custom)) + if (!m_triangles.set_from_triangles(triangles, GROUND_Z, true)) printf("Unable to create bed triangles\n"); } @@ -381,27 +381,26 @@ Bed3D::EType Bed3D::detect_type(const Pointfs& shape) const return type; } -void Bed3D::render_prusa(GLCanvas3D* canvas, const std::string &key, bool bottom) const +void Bed3D::render_prusa(GLCanvas3D& canvas, const std::string& key, bool bottom) const { std::string filename = !m_custom_texture.empty() ? m_custom_texture : resources_dir() + "/icons/bed/" + key + ".svg"; std::string model_path = resources_dir() + "/models/" + key; - // use higher resolution images if graphic card and opengl version allow - GLint max_tex_size = GLCanvas3DManager::get_gl_info().get_max_tex_size(); - if ((m_texture.get_id() == 0) || (m_texture.get_source() != filename)) { m_texture.reset(); if (boost::algorithm::iends_with(filename, ".svg")) { + // use higher resolution images if graphic card and opengl version allow + GLint max_tex_size = GLCanvas3DManager::get_gl_info().get_max_tex_size(); if ((m_temp_texture.get_id() == 0) || (m_temp_texture.get_source() != filename)) { // generate a temporary lower resolution texture to show while no main texture levels have been compressed if (!m_temp_texture.load_from_svg_file(filename, false, false, false, max_tex_size / 8)) { - render_custom(); + render_default(); return; } } @@ -409,7 +408,7 @@ void Bed3D::render_prusa(GLCanvas3D* canvas, const std::string &key, bool bottom // starts generating the main texture, compression will run asynchronously if (!m_texture.load_from_svg_file(filename, true, true, true, max_tex_size)) { - render_custom(); + render_default(); return; } } @@ -420,7 +419,7 @@ void Bed3D::render_prusa(GLCanvas3D* canvas, const std::string &key, bool bottom { if (!m_temp_texture.load_from_file(filename, false, GLTexture::None, false)) { - render_custom(); + render_default(); return; } } @@ -428,13 +427,13 @@ void Bed3D::render_prusa(GLCanvas3D* canvas, const std::string &key, bool bottom // starts generating the main texture, compression will run asynchronously if (!m_texture.load_from_file(filename, true, GLTexture::MultiThreaded, true)) { - render_custom(); + render_default(); return; } } else { - render_custom(); + render_default(); return; } } @@ -451,9 +450,7 @@ void Bed3D::render_prusa(GLCanvas3D* canvas, const std::string &key, bool bottom } else if (m_requires_canvas_update && m_texture.all_compressed_data_sent_to_gpu()) { - if (canvas != nullptr) - canvas->stop_keeping_dirty(); - + canvas.stop_keeping_dirty(); m_requires_canvas_update = false; } @@ -506,7 +503,7 @@ void Bed3D::render_prusa(GLCanvas3D* canvas, const std::string &key, bool bottom if (bottom) glsafe(::glFrontFace(GL_CW)); - render_prusa_shader(bottom); + render_texture(bottom); if (bottom) glsafe(::glFrontFace(GL_CCW)); @@ -516,7 +513,7 @@ void Bed3D::render_prusa(GLCanvas3D* canvas, const std::string &key, bool bottom } } -void Bed3D::render_prusa_shader(bool transparent) const +void Bed3D::render_texture(bool transparent) const { if (m_shader.get_shader_program_id() == 0) m_shader.init("printbed.vs", "printbed.fs"); @@ -566,7 +563,114 @@ void Bed3D::render_prusa_shader(bool transparent) const } } -void Bed3D::render_custom() const +void Bed3D::render_custom(GLCanvas3D& canvas, bool bottom) const +{ + if (m_custom_texture.empty()) + { + render_default(); + return; + } + else + { + if ((m_texture.get_id() == 0) || (m_texture.get_source() != m_custom_texture)) + { + m_texture.reset(); + + if (boost::algorithm::iends_with(m_custom_texture, ".svg")) + { + // use higher resolution images if graphic card and opengl version allow + GLint max_tex_size = GLCanvas3DManager::get_gl_info().get_max_tex_size(); + if ((m_temp_texture.get_id() == 0) || (m_temp_texture.get_source() != m_custom_texture)) + { + // generate a temporary lower resolution texture to show while no main texture levels have been compressed + if (!m_temp_texture.load_from_svg_file(m_custom_texture, false, false, false, max_tex_size / 8)) + { + render_default(); + return; + } + } + + // starts generating the main texture, compression will run asynchronously + if (!m_texture.load_from_svg_file(m_custom_texture, true, true, true, max_tex_size)) + { + render_default(); + return; + } + } + else if (boost::algorithm::iends_with(m_custom_texture, ".png")) + { + // generate a temporary lower resolution texture to show while no main texture levels have been compressed + if ((m_temp_texture.get_id() == 0) || (m_temp_texture.get_source() != m_custom_texture)) + { + if (!m_temp_texture.load_from_file(m_custom_texture, false, GLTexture::None, false)) + { + render_default(); + return; + } + } + + // starts generating the main texture, compression will run asynchronously + if (!m_texture.load_from_file(m_custom_texture, true, GLTexture::MultiThreaded, true)) + { + render_default(); + return; + } + } + else + { + render_default(); + return; + } + } + else if (m_texture.unsent_compressed_data_available()) + { + // sends to gpu the already available compressed levels of the main texture + m_texture.send_compressed_data_to_gpu(); + + // the temporary texture is not needed anymore, reset it + if (m_temp_texture.get_id() != 0) + m_temp_texture.reset(); + + m_requires_canvas_update = true; + } + else if (m_requires_canvas_update && m_texture.all_compressed_data_sent_to_gpu()) + { + canvas.stop_keeping_dirty(); + m_requires_canvas_update = false; + } + } + + unsigned int triangles_vcount = m_triangles.get_vertices_count(); + if (triangles_vcount > 0) + { + if (m_vbo_id == 0) + { + glsafe(::glGenBuffers(1, &m_vbo_id)); + glsafe(::glBindBuffer(GL_ARRAY_BUFFER, m_vbo_id)); + glsafe(::glBufferData(GL_ARRAY_BUFFER, (GLsizeiptr)m_triangles.get_vertices_data_size(), (const GLvoid*)m_triangles.get_vertices_data(), GL_STATIC_DRAW)); + glsafe(::glBindBuffer(GL_ARRAY_BUFFER, 0)); + } + + glsafe(::glEnable(GL_DEPTH_TEST)); + glsafe(::glDepthMask(GL_FALSE)); + + glsafe(::glEnable(GL_BLEND)); + glsafe(::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)); + + if (bottom) + glsafe(::glFrontFace(GL_CW)); + + render_texture(bottom); + + if (bottom) + glsafe(::glFrontFace(GL_CCW)); + + glsafe(::glDisable(GL_BLEND)); + glsafe(::glDepthMask(GL_TRUE)); + } +} + +void Bed3D::render_default() const { m_texture.reset(); @@ -587,14 +691,12 @@ void Bed3D::render_custom() const glsafe(::glDrawArrays(GL_TRIANGLES, 0, (GLsizei)triangles_vcount)); // draw grid - unsigned int gridlines_vcount = m_gridlines.get_vertices_count(); - // we need depth test for grid, otherwise it would disappear when looking the object from below glsafe(::glEnable(GL_DEPTH_TEST)); glsafe(::glLineWidth(3.0f * m_scale_factor)); glsafe(::glColor4f(0.2f, 0.2f, 0.2f, 0.4f)); glsafe(::glVertexPointer(3, GL_FLOAT, m_triangles.get_vertex_data_size(), (GLvoid*)m_gridlines.get_vertices_data())); - glsafe(::glDrawArrays(GL_LINES, 0, (GLsizei)gridlines_vcount)); + glsafe(::glDrawArrays(GL_LINES, 0, (GLsizei)m_gridlines.get_vertices_count())); glsafe(::glDisableClientState(GL_VERTEX_ARRAY)); diff --git a/src/slic3r/GUI/3DBed.hpp b/src/slic3r/GUI/3DBed.hpp index 7a8944443..9a03bab77 100644 --- a/src/slic3r/GUI/3DBed.hpp +++ b/src/slic3r/GUI/3DBed.hpp @@ -109,7 +109,7 @@ public: bool contains(const Point& point) const; Point point_projection(const Point& point) const; - void render(GLCanvas3D* canvas, float theta, float scale_factor) const; + void render(GLCanvas3D& canvas, float theta, float scale_factor) const; void render_axes() const; private: @@ -117,9 +117,10 @@ private: void calc_triangles(const ExPolygon& poly); void calc_gridlines(const ExPolygon& poly, const BoundingBox& bed_bbox); EType detect_type(const Pointfs& shape) const; - void render_prusa(GLCanvas3D* canvas, const std::string& key, bool bottom) const; - void render_prusa_shader(bool transparent) const; - void render_custom() const; + void render_prusa(GLCanvas3D& canvas, const std::string& key, bool bottom) const; + void render_texture(bool transparent) const; + void render_custom(GLCanvas3D& canvas, bool bottom) const; + void render_default() const; void reset(); }; diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 540b1bc8d..aa4f06266 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -3919,7 +3919,7 @@ void GLCanvas3D::_render_bed(float theta) const #if ENABLE_RETINA_GL scale_factor = m_retina_helper->get_scale_factor(); #endif // ENABLE_RETINA_GL - m_bed.render(const_cast(this), theta, scale_factor); + m_bed.render(const_cast(*this), theta, scale_factor); } void GLCanvas3D::_render_axes() const From 395e794b9e6bc2d429caa71089a447773b51c96e Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Wed, 24 Jul 2019 11:04:04 +0200 Subject: [PATCH 11/24] Refactoring in Bed3D --- src/slic3r/GUI/3DBed.cpp | 302 ++++++++++++++------------------------- src/slic3r/GUI/3DBed.hpp | 2 +- 2 files changed, 105 insertions(+), 199 deletions(-) diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index 041c555e0..a41b39a7e 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -383,9 +383,46 @@ Bed3D::EType Bed3D::detect_type(const Pointfs& shape) const void Bed3D::render_prusa(GLCanvas3D& canvas, const std::string& key, bool bottom) const { - std::string filename = !m_custom_texture.empty() ? m_custom_texture : resources_dir() + "/icons/bed/" + key + ".svg"; + if (!bottom) + { + std::string filename = resources_dir() + "/models/" + key + "_bed.stl"; + if ((m_model.get_filename() != filename) && m_model.init_from_file(filename)) + { + Vec3d offset = m_bounding_box.center() - Vec3d(0.0, 0.0, 0.5 * m_model.get_bounding_box().size()(2)); + if (key == "mk2") + // hardcoded value to match the stl model + offset += Vec3d(0.0, 7.5, -0.03); + else if (key == "mk3") + // hardcoded value to match the stl model + offset += Vec3d(0.0, 5.5, 2.43); + else if (key == "sl1") + // hardcoded value to match the stl model + offset += Vec3d(0.0, 0.0, -0.03); - std::string model_path = resources_dir() + "/models/" + key; + m_model.center_around(offset); + + // update extended bounding box + calc_bounding_boxes(); + } + + if (!m_model.get_filename().empty()) + { + glsafe(::glEnable(GL_LIGHTING)); + m_model.render(); + glsafe(::glDisable(GL_LIGHTING)); + } + } + + render_texture(m_custom_texture.empty() ? resources_dir() + "/icons/bed/" + key + ".svg" : m_custom_texture, bottom, canvas); +} + +void Bed3D::render_texture(const std::string& filename, bool bottom, GLCanvas3D& canvas) const +{ + if (filename.empty()) + { + m_texture.reset(); + return; + } if ((m_texture.get_id() == 0) || (m_texture.get_source() != filename)) { @@ -454,112 +491,77 @@ void Bed3D::render_prusa(GLCanvas3D& canvas, const std::string& key, bool bottom m_requires_canvas_update = false; } - if (!bottom) + if (m_triangles.get_vertices_count() > 0) { - filename = model_path + "_bed.stl"; - if ((m_model.get_filename() != filename) && m_model.init_from_file(filename)) { - Vec3d offset = m_bounding_box.center() - Vec3d(0.0, 0.0, 0.5 * m_model.get_bounding_box().size()(2)); - if (key == "mk2") - // hardcoded value to match the stl model - offset += Vec3d(0.0, 7.5, -0.03); - else if (key == "mk3") - // hardcoded value to match the stl model - offset += Vec3d(0.0, 5.5, 2.43); - else if (key == "sl1") - // hardcoded value to match the stl model - offset += Vec3d(0.0, 0.0, -0.03); + if (m_shader.get_shader_program_id() == 0) + m_shader.init("printbed.vs", "printbed.fs"); - m_model.center_around(offset); - - // update extended bounding box - calc_bounding_boxes(); - } - - if (!m_model.get_filename().empty()) + if (m_shader.is_initialized()) { - glsafe(::glEnable(GL_LIGHTING)); - m_model.render(); - glsafe(::glDisable(GL_LIGHTING)); - } - } + m_shader.start_using(); + m_shader.set_uniform("transparent_background", bottom); + m_shader.set_uniform("svg_source", boost::algorithm::iends_with(m_texture.get_source(), ".svg")); - unsigned int triangles_vcount = m_triangles.get_vertices_count(); - if (triangles_vcount > 0) - { - if (m_vbo_id == 0) - { - glsafe(::glGenBuffers(1, &m_vbo_id)); + if (m_vbo_id == 0) + { + glsafe(::glGenBuffers(1, &m_vbo_id)); + glsafe(::glBindBuffer(GL_ARRAY_BUFFER, m_vbo_id)); + glsafe(::glBufferData(GL_ARRAY_BUFFER, (GLsizeiptr)m_triangles.get_vertices_data_size(), (const GLvoid*)m_triangles.get_vertices_data(), GL_STATIC_DRAW)); + glsafe(::glBindBuffer(GL_ARRAY_BUFFER, 0)); + } + + glsafe(::glEnable(GL_DEPTH_TEST)); + glsafe(::glDepthMask(GL_FALSE)); + + glsafe(::glEnable(GL_BLEND)); + glsafe(::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)); + + if (bottom) + glsafe(::glFrontFace(GL_CW)); + + unsigned int stride = m_triangles.get_vertex_data_size(); + + GLint position_id = m_shader.get_attrib_location("v_position"); + GLint tex_coords_id = m_shader.get_attrib_location("v_tex_coords"); + + // show the temporary texture while no compressed data is available + GLuint tex_id = (GLuint)m_temp_texture.get_id(); + if (tex_id == 0) + tex_id = (GLuint)m_texture.get_id(); + + glsafe(::glBindTexture(GL_TEXTURE_2D, tex_id)); glsafe(::glBindBuffer(GL_ARRAY_BUFFER, m_vbo_id)); - glsafe(::glBufferData(GL_ARRAY_BUFFER, (GLsizeiptr)m_triangles.get_vertices_data_size(), (const GLvoid*)m_triangles.get_vertices_data(), GL_STATIC_DRAW)); + + if (position_id != -1) + { + glsafe(::glEnableVertexAttribArray(position_id)); + glsafe(::glVertexAttribPointer(position_id, 3, GL_FLOAT, GL_FALSE, stride, (GLvoid*)(intptr_t)m_triangles.get_position_offset())); + } + if (tex_coords_id != -1) + { + glsafe(::glEnableVertexAttribArray(tex_coords_id)); + glsafe(::glVertexAttribPointer(tex_coords_id, 2, GL_FLOAT, GL_FALSE, stride, (GLvoid*)(intptr_t)m_triangles.get_tex_coords_offset())); + } + + glsafe(::glDrawArrays(GL_TRIANGLES, 0, (GLsizei)m_triangles.get_vertices_count())); + + if (tex_coords_id != -1) + glsafe(::glDisableVertexAttribArray(tex_coords_id)); + + if (position_id != -1) + glsafe(::glDisableVertexAttribArray(position_id)); + glsafe(::glBindBuffer(GL_ARRAY_BUFFER, 0)); + glsafe(::glBindTexture(GL_TEXTURE_2D, 0)); + + if (bottom) + glsafe(::glFrontFace(GL_CCW)); + + glsafe(::glDisable(GL_BLEND)); + glsafe(::glDepthMask(GL_TRUE)); + + m_shader.stop_using(); } - - glsafe(::glEnable(GL_DEPTH_TEST)); - glsafe(::glDepthMask(GL_FALSE)); - - glsafe(::glEnable(GL_BLEND)); - glsafe(::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)); - - if (bottom) - glsafe(::glFrontFace(GL_CW)); - - render_texture(bottom); - - if (bottom) - glsafe(::glFrontFace(GL_CCW)); - - glsafe(::glDisable(GL_BLEND)); - glsafe(::glDepthMask(GL_TRUE)); - } -} - -void Bed3D::render_texture(bool transparent) const -{ - if (m_shader.get_shader_program_id() == 0) - m_shader.init("printbed.vs", "printbed.fs"); - - if (m_shader.is_initialized()) - { - m_shader.start_using(); - m_shader.set_uniform("transparent_background", transparent); - m_shader.set_uniform("svg_source", boost::algorithm::iends_with(m_texture.get_source(), ".svg")); - - unsigned int stride = m_triangles.get_vertex_data_size(); - - GLint position_id = m_shader.get_attrib_location("v_position"); - GLint tex_coords_id = m_shader.get_attrib_location("v_tex_coords"); - - // show the temporary texture while no compressed data is available - GLuint tex_id = (GLuint)m_temp_texture.get_id(); - if (tex_id == 0) - tex_id = (GLuint)m_texture.get_id(); - - glsafe(::glBindTexture(GL_TEXTURE_2D, tex_id)); - glsafe(::glBindBuffer(GL_ARRAY_BUFFER, m_vbo_id)); - - if (position_id != -1) - { - glsafe(::glEnableVertexAttribArray(position_id)); - glsafe(::glVertexAttribPointer(position_id, 3, GL_FLOAT, GL_FALSE, stride, (GLvoid*)(intptr_t)m_triangles.get_position_offset())); - } - if (tex_coords_id != -1) - { - glsafe(::glEnableVertexAttribArray(tex_coords_id)); - glsafe(::glVertexAttribPointer(tex_coords_id, 2, GL_FLOAT, GL_FALSE, stride, (GLvoid*)(intptr_t)m_triangles.get_tex_coords_offset())); - } - - glsafe(::glDrawArrays(GL_TRIANGLES, 0, (GLsizei)m_triangles.get_vertices_count())); - - if (tex_coords_id != -1) - glsafe(::glDisableVertexAttribArray(tex_coords_id)); - - if (position_id != -1) - glsafe(::glDisableVertexAttribArray(position_id)); - - glsafe(::glBindBuffer(GL_ARRAY_BUFFER, 0)); - glsafe(::glBindTexture(GL_TEXTURE_2D, 0)); - - m_shader.stop_using(); } } @@ -570,104 +572,8 @@ void Bed3D::render_custom(GLCanvas3D& canvas, bool bottom) const render_default(); return; } - else - { - if ((m_texture.get_id() == 0) || (m_texture.get_source() != m_custom_texture)) - { - m_texture.reset(); - if (boost::algorithm::iends_with(m_custom_texture, ".svg")) - { - // use higher resolution images if graphic card and opengl version allow - GLint max_tex_size = GLCanvas3DManager::get_gl_info().get_max_tex_size(); - if ((m_temp_texture.get_id() == 0) || (m_temp_texture.get_source() != m_custom_texture)) - { - // generate a temporary lower resolution texture to show while no main texture levels have been compressed - if (!m_temp_texture.load_from_svg_file(m_custom_texture, false, false, false, max_tex_size / 8)) - { - render_default(); - return; - } - } - - // starts generating the main texture, compression will run asynchronously - if (!m_texture.load_from_svg_file(m_custom_texture, true, true, true, max_tex_size)) - { - render_default(); - return; - } - } - else if (boost::algorithm::iends_with(m_custom_texture, ".png")) - { - // generate a temporary lower resolution texture to show while no main texture levels have been compressed - if ((m_temp_texture.get_id() == 0) || (m_temp_texture.get_source() != m_custom_texture)) - { - if (!m_temp_texture.load_from_file(m_custom_texture, false, GLTexture::None, false)) - { - render_default(); - return; - } - } - - // starts generating the main texture, compression will run asynchronously - if (!m_texture.load_from_file(m_custom_texture, true, GLTexture::MultiThreaded, true)) - { - render_default(); - return; - } - } - else - { - render_default(); - return; - } - } - else if (m_texture.unsent_compressed_data_available()) - { - // sends to gpu the already available compressed levels of the main texture - m_texture.send_compressed_data_to_gpu(); - - // the temporary texture is not needed anymore, reset it - if (m_temp_texture.get_id() != 0) - m_temp_texture.reset(); - - m_requires_canvas_update = true; - } - else if (m_requires_canvas_update && m_texture.all_compressed_data_sent_to_gpu()) - { - canvas.stop_keeping_dirty(); - m_requires_canvas_update = false; - } - } - - unsigned int triangles_vcount = m_triangles.get_vertices_count(); - if (triangles_vcount > 0) - { - if (m_vbo_id == 0) - { - glsafe(::glGenBuffers(1, &m_vbo_id)); - glsafe(::glBindBuffer(GL_ARRAY_BUFFER, m_vbo_id)); - glsafe(::glBufferData(GL_ARRAY_BUFFER, (GLsizeiptr)m_triangles.get_vertices_data_size(), (const GLvoid*)m_triangles.get_vertices_data(), GL_STATIC_DRAW)); - glsafe(::glBindBuffer(GL_ARRAY_BUFFER, 0)); - } - - glsafe(::glEnable(GL_DEPTH_TEST)); - glsafe(::glDepthMask(GL_FALSE)); - - glsafe(::glEnable(GL_BLEND)); - glsafe(::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)); - - if (bottom) - glsafe(::glFrontFace(GL_CW)); - - render_texture(bottom); - - if (bottom) - glsafe(::glFrontFace(GL_CCW)); - - glsafe(::glDisable(GL_BLEND)); - glsafe(::glDepthMask(GL_TRUE)); - } + render_texture(m_custom_texture, bottom, canvas); } void Bed3D::render_default() const diff --git a/src/slic3r/GUI/3DBed.hpp b/src/slic3r/GUI/3DBed.hpp index 9a03bab77..71b319b0a 100644 --- a/src/slic3r/GUI/3DBed.hpp +++ b/src/slic3r/GUI/3DBed.hpp @@ -118,7 +118,7 @@ private: void calc_gridlines(const ExPolygon& poly, const BoundingBox& bed_bbox); EType detect_type(const Pointfs& shape) const; void render_prusa(GLCanvas3D& canvas, const std::string& key, bool bottom) const; - void render_texture(bool transparent) const; + void render_texture(const std::string& filename, bool bottom, GLCanvas3D& canvas) const; void render_custom(GLCanvas3D& canvas, bool bottom) const; void render_default() const; void reset(); From 1483a7fd51dcbafd7ece744efb5c420eb68bf393 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Wed, 24 Jul 2019 14:02:36 +0200 Subject: [PATCH 12/24] Render custom bed model on prusa beds --- src/slic3r/GUI/3DBed.cpp | 16 +++++++++++++--- src/slic3r/GUI/3DBed.hpp | 3 ++- src/slic3r/GUI/Plater.cpp | 17 ++++++++++------- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index a41b39a7e..3a8a66904 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -189,13 +189,14 @@ void Bed3D::Axes::render_axis(double length) const Bed3D::Bed3D() : m_type(Custom) , m_custom_texture("") + , m_custom_model("") , m_requires_canvas_update(false) , m_vbo_id(0) , m_scale_factor(1.0f) { } -bool Bed3D::set_shape(const Pointfs& shape, const std::string& custom_texture) +bool Bed3D::set_shape(const Pointfs& shape, const std::string& custom_texture, const std::string& custom_model) { EType new_type = detect_type(shape); @@ -207,12 +208,21 @@ bool Bed3D::set_shape(const Pointfs& shape, const std::string& custom_texture) cst_texture = ""; } - if ((m_shape == shape) && (m_type == new_type) && (m_custom_texture == cst_texture)) + // check that the passed custom texture filename is valid + std::string cst_model(custom_model); + if (!cst_model.empty()) + { + if (!boost::algorithm::iends_with(custom_model, ".stl") || !boost::filesystem::exists(custom_model)) + cst_model = ""; + } + + if ((m_shape == shape) && (m_type == new_type) && (m_custom_texture == cst_texture) && (m_custom_model == cst_model)) // No change, no need to update the UI. return false; m_shape = shape; m_custom_texture = cst_texture; + m_custom_model = cst_model; m_type = new_type; calc_bounding_boxes(); @@ -385,7 +395,7 @@ void Bed3D::render_prusa(GLCanvas3D& canvas, const std::string& key, bool bottom { if (!bottom) { - std::string filename = resources_dir() + "/models/" + key + "_bed.stl"; + std::string filename = m_custom_model.empty() ? resources_dir() + "/models/" + key + "_bed.stl" : m_custom_model; if ((m_model.get_filename() != filename) && m_model.init_from_file(filename)) { Vec3d offset = m_bounding_box.center() - Vec3d(0.0, 0.0, 0.5 * m_model.get_bounding_box().size()(2)); diff --git a/src/slic3r/GUI/3DBed.hpp b/src/slic3r/GUI/3DBed.hpp index 71b319b0a..3571166da 100644 --- a/src/slic3r/GUI/3DBed.hpp +++ b/src/slic3r/GUI/3DBed.hpp @@ -75,6 +75,7 @@ private: EType m_type; Pointfs m_shape; std::string m_custom_texture; + std::string m_custom_model; mutable BoundingBoxf3 m_bounding_box; mutable BoundingBoxf3 m_extended_bounding_box; Polygon m_polygon; @@ -103,7 +104,7 @@ public: const Pointfs& get_shape() const { return m_shape; } // Return true if the bed shape changed, so the calee will update the UI. - bool set_shape(const Pointfs& shape, const std::string& custom_texture); + bool set_shape(const Pointfs& shape, const std::string& custom_texture, const std::string& custom_model); const BoundingBoxf3& get_bounding_box(bool extended) const { return extended ? m_extended_bounding_box : m_bounding_box; } bool contains(const Point& point) const; diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 2c9f41c56..de64e226e 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1851,7 +1851,7 @@ struct Plater::priv // triangulate the bed and store the triangles into m_bed.m_triangles, // fills the m_bed.m_grid_lines and sets m_bed.m_origin. // Sets m_bed.m_polygon to limit the object placement. - void set_bed_shape(const Pointfs& shape, const std::string& custom_texture); + void set_bed_shape(const Pointfs& shape, const std::string& custom_texture, const std::string& custom_model); bool can_delete() const; bool can_delete_all() const; @@ -2010,7 +2010,8 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) view3D_canvas->Bind(EVT_GLCANVAS_UPDATE_BED_SHAPE, [this](SimpleEvent&) { set_bed_shape(config->option("bed_shape")->values, - config->option("bed_custom_texture")->value); + config->option("bed_custom_texture")->value, + config->option("bed_custom_model")->value); }); // Preview events: @@ -2018,7 +2019,8 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_UPDATE_BED_SHAPE, [this](SimpleEvent&) { set_bed_shape(config->option("bed_shape")->values, - config->option("bed_custom_texture")->value); + config->option("bed_custom_texture")->value, + config->option("bed_custom_model")->value); }); preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_TAB, [this](SimpleEvent&) { select_next_view_3D(); }); preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_MOVE_DOUBLE_SLIDER, [this](wxKeyEvent& evt) { preview->move_double_slider(evt); }); @@ -3623,9 +3625,9 @@ bool Plater::priv::can_mirror() const return get_selection().is_from_single_instance(); } -void Plater::priv::set_bed_shape(const Pointfs& shape, const std::string& custom_texture) +void Plater::priv::set_bed_shape(const Pointfs& shape, const std::string& custom_texture, const std::string& custom_model) { - bool new_shape = bed.set_shape(shape, custom_texture); + bool new_shape = bed.set_shape(shape, custom_texture, custom_model); if (new_shape) { if (view3D) view3D->bed_shape_changed(); @@ -4502,7 +4504,7 @@ void Plater::on_config_change(const DynamicPrintConfig &config) p->config->set_key_value(opt_key, config.option(opt_key)->clone()); if (opt_key == "printer_technology") this->set_printer_technology(config.opt_enum(opt_key)); - else if ((opt_key == "bed_shape") || (opt_key == "bed_custom_texture")) { + else if ((opt_key == "bed_shape") || (opt_key == "bed_custom_texture") || (opt_key == "bed_custom_model")) { bed_shape_changed = true; update_scheduled = true; } @@ -4537,7 +4539,8 @@ void Plater::on_config_change(const DynamicPrintConfig &config) if (bed_shape_changed) p->set_bed_shape(p->config->option("bed_shape")->values, - p->config->option("bed_custom_texture")->value); + p->config->option("bed_custom_texture")->value, + p->config->option("bed_custom_model")->value); if (update_scheduled) update(); From 48dc2bb7622ba6db4b251e9d9166a5c1ae246fe7 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Thu, 25 Jul 2019 08:43:21 +0200 Subject: [PATCH 13/24] Fixed positioning of bed model into the scene and changed bundled bed models --- resources/models/mk2_bed.stl | Bin 2484 -> 2484 bytes resources/models/mk3_bed.stl | Bin 91884 -> 91884 bytes resources/models/sl1_bed.stl | Bin 416084 -> 416084 bytes src/slic3r/GUI/3DBed.cpp | 14 ++------------ src/slic3r/GUI/3DScene.cpp | 8 +------- 5 files changed, 3 insertions(+), 19 deletions(-) diff --git a/resources/models/mk2_bed.stl b/resources/models/mk2_bed.stl index 07b7655ea6f601ec070d0c06f70265e35d2d1e5b..21fb29d0c36a512748bacf093bd9500c7c395f8e 100644 GIT binary patch literal 2484 zcmb7_ziSjx5XVRI%Ro9?i!Du|9Fav#v!{n$3M&zX6d`AImxPN-z`|?%OY|QQMax|w zm4AU)C`d}vWdDFU}UwD)m-{=Ov864}{J6GUMi{o_-PN^|N+U>=a4 z4~m6piMC=N=~^9}yc?uqfBy1l;Oj=ezI?pzY9;@;TA@F&5z~PrhK69 zfGBKA_&d{@t;(7Q>T|6Mn-c!VcaX@UN)Z}Wq~&J;37(R|rsOiARY#(U%1=B0d^P-k&k1X?^-u2!=N>mZR$#=NMkQ$*JDc?9~v2$9B2w1ci6=nrW}@cokm zb7e$Une6oCHq9o`l4$)|%!}2fydlh1R$1&Q3(;H3i|>o`2(7fsPZ-X)J+WPPgRzEP zh_E+Aw>hexoQtq#OY7sdf#hd5O0qe$Q>LIEUso36Li6yC~IsoA{@9#BWaa;deXA v-3awDBdW-*fBT}>0P;u@?8ASTsFrz;{B1Xby&qaD_a@pN>qe*#jZlaSReh_L literal 2484 zcma)-ziJgx5XMh1Q3#}vyuc~7i-s*_F{TQsqCP+n!64i~tkNCC#uQ1b;7g=S6ZRIq zfrzcx3&I7lbiOk?XTG!9WOE>!Vej{we>*$7_vT=B`0Dl1;k&qXFxx*mj?Z80#s_g{ ze-`6re7x~!Gd^5fjkh~%s~e%56hi9uc0X?)KRJ08LY$vBVqd;5_TOJ0vz-Z1lG95WPR(4R$1X9F z)X{pcLIADRs;v`K^dbl0T@1mWpb(|gV}xc^t9%xELj2>TmVaTt98aZ?gBaFfxig)K z{xTpacYppS)&EjCsbE{LMv0W`C{q%GPe$E^>|NA2sr4r%-7S-G6XBCstC&{j`Px50 zdmbE*>r<^{)FCaND<|UIZPVXONQPxXLEK$w+Mml!j^Vy!mz2uc9uT>sHtkMmr>#CP zsl^4BtJJS;HQZMls%e5fLBCjTTKoZZU)mqryQt5mvLbR;mIuG@+JTP diff --git a/resources/models/mk3_bed.stl b/resources/models/mk3_bed.stl index 1bd1a8faac668c98333114facd74187c54433f97..e494641168c630bdc4591c11c012bb2d7dc4f91d 100644 GIT binary patch literal 91884 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 J_h414{|_T}dxZc1 literal 91884 zcmb`wdAuG)nLXY?2#W#2A^}8}I3UY)V1yt`a=Y*Qh7bWmh9!h$k^n;j5)}MOL}ExI zAT#VD%wS+30y3!RAo2_Q?JJuM!WR)36lO$64G2MyVOSKBU!AHxRp;q`-~9aJ_kQH& zv8qm;=Xq-B+PXT+{{Q_Ates_tAG>qD{YH6(oOl2F$=z)6D?iGzqUe+-cefqAq9G%d zB2p?vt6UVo;8%K%o98m$EK_unn}{)M+&C08$+8{)=BXZXjVQ^HQWZr)7e#sHNf8}X zsu5+Y3LKZdx=r=S@Amf`>L1mFa^O$|W004kDF=>CFaPP_kAD(;^~NDH zy?>C`4nLUT{f1PO1BW6QgH(#9960`JxBc_4JrQcj)9)M_Ysr*7505p2;V9WG1LE=q z0x?7&Um^m>_6bq;N~P#v$0mQ+CZAn)nl7saAgPsVVo)fHFm5@Y_f zk}~{8ndxb{YLaC46kRp8kL5qOe648V_RIH*sT56?P#$VwN|j}AT>fywa{4OeTNFvo zvcG@+W0BkXs*|O1PUYdAiBkSnD`i)$KKZE|8(Ps<%C1_SzihKUT4{_T)Q3$wQjOD^ zm}FW(U(KJlW-Rkm{wVWtF`SrC9-~JkL_!xul9`?y=VZNWVycx*gleMsCaq-bt7+%G`1icSsdWtnsYlGI~ zB$I=PRIjY=$qsT*tHf^0IcW=yS&J6tf1H&M13kQWsQc1S&-Syef4X6)yW{g;^fJT4 zQ%w;}g&0l6@bFZ-eED&C=R>c04vpFUsiE#WJAU5q1r9|p6=H~n%<#Zbt~Wm4Z?`EG z?3l7yr(3LdiqH4^^E%z>zdq5+3=bTNU@F9DDu&lj=PlRGyMHs&b1()7%1Cv~mmS}j zz~}z|CR6fvKR(_gR9|uc!SJA!BA5y>nu_5;s|~OI*TFY`b6R!(jJx)I_JL0K)E7_q z5fHoH*Xdrh`CM=Lgq5A{j<^23m)#TV(20W+HeFbqap8IQDMC{X=iTl z_pN(|pAVLuvfItRbG+xE3{8eBMHHvpH2m(k&sXdI=DvMznK(IW_2{U{QIo^ElcR=N zw(~3d3?I4u!s^L+=iR3W%~#P`_NS4vC(ZaWXQ@dm)m=5rvaLS+!r;GsW^Q%$q6_ZU zl2Tu(N3!gr?+y+YtIn*R@09m3FL+l|DPNZTpZOoDKJd(^s?DZ-b>g$qs}wOtMl_~hIxFYvX2GB{BFk8FE!&7la5p^SWq4jku< zSuy+%yBzO1Q0B+%eW~Ywcc(79%;!tFjbIEkQ8ZmFSCYp+J;7|l( z)LNusPJ!bapF6&KWUW_xd8kJzBNZ)gBQ%CGIEW5fefr3J@CNrRM0xlc_srM4uh7ov zE6QyIW5BLx%0a7VKJd!m7N>^tAOd;e`GK-QD$0RF5sX19MN*{6HN;DuxFRL1avY7){0Sz)_C?P#z_o$gJ%g0U#B_1BW17iwdI*#Aqsp2aciQEP2W>+*{$EooO?B8CAHn*Jx8vHgcJkZ_Tm`#_WQAY^lwpn%^V+lIQ9nMOWtkv zS63{%CfYIMfGwjPr>u2hA3LZo@>Q+we{hG|j+!Idp&V~bSrP5%@2eRDUx`{>w&B0J z))o4aL*AUzM=P>JE9Ia^;M1^nMel0guKh}jBif-_sdxMPN_z(OYS56aD?UFW$1NwL z2ME^clVSQ+d-(7+f-%Tf5np_KzZxNy`&N6-hR7@QK8heWJY@TJMJ&E+Y}AnbSR28f z3|g_rfy|z$jnJMmtaxY-j`YpCtGc(JyG79t5xh(PsNdRJwKWOov?g=^NjvA?TsN

aKB&9zs@YzX<*!fcF8jLJ5ji>|2X~K~ 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 LB}?zYs#gCmVnz~> diff --git a/resources/models/sl1_bed.stl b/resources/models/sl1_bed.stl index b2cadde4bd50b42ae247da4abba4dfb0b74d1413..dfbf12845b88b2a32afb50fdd8cb6e92a4c1193e 100644 GIT binary patch literal 416084 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

^STM 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͢g>BY zXX2-w-Ts|B%dh@08G1vp@p$`b8Dqjq0RwUs$@h-&bMG)I@1Ist z4T^i9P~^LA#dQ2X6=_i11%)EtwSwt*RtICSLPzD*n}t^M+XvngvGUV%L7sJ^{}jE@ zUa$Nx#muBUyksNCyDhfmS#1^NO+>t6#I@Q~sBBgXUJkNZF%g{;`Mtf)@5J1DP;a}& z!l2$ZZ&3<=rA8{E4nK&A0d4qYrbf^P%flK94j_PWwIbMJ6e zq0;!KLk*oWs^$xhR@VYZzxrZ(U1^-TcVyW_rSZE5-0iGIt{2`?c>0g_y3#mv?|3pT zd%<~U@n|Pe`EjTgfN1b{`@(mp2CM;P{1@Vy=_8$kE1!2JAV&%l@i~1(B>u_CzJj@T zL_(%@a?UKD=lpy*Duxgde_(H^Na2*MK*8L*czRTAXJOAACr>G83o8tY-C!n+dkNP= zGZTC-AeJG2DtI}4owFFn!F?TjpmZdo)Fgken5Gos*}M0-(;9X6>Vj5hDxGO{W?P^* zGs+sVV6gpl9HKagC&qH~$2gFjz2*HpcZzy5Sp%lhnO5iV(CfV3R^>-}*qatA4uHw` z*m&LFFHao6h~uZ+uae7o*MU}NDxGO{9uJ?vPc5q=i1-Nd4yrL?x%p$`sp_{eihWhZ zqwc_CJKf`;)m6Mr6Y(kz7p2viju-FktYr-b5x)dPygx>ie2PHx3~ zJ9F>&#uNqs_j=FuF_qp@B#<^uM6IREeDR^}jqI^5o z2oUcKEpmH-CLag|x8iHg_X6sxU9-up_g03Vr--i_UmGUn5f@GF=G==6P3^G$!5ll& z*ovCYth>?o-J%XwUY;}Mq4BbZ%J@$C|5>e`CC8r04;8P$y#1c>rwMz~`83F{Yi zc4>?HzS5P`)Ron&2|iH=rWYUszf>9c`5Kh`1dHDKdVF;R5~i1;%H z<08j~W(IpjtUKt>q7&BN6-Ky&ajuw~FTA%>w4x4k?|6qBogklH*T=8H!&_Lv^J?;+Ry-h{}3 z{?q+)!mXHG7h>PmPIiM+Q{6qte!*M#F5$ZenQo8vv=6mHK5zWd9J`9$Gd-?)3nh zu583ec|@Pj=gQ5`jPzPeG!@LZo9f7A?Pb5|qr7S=13wYt21#!4?adQfx}$Ojc(=i2 z%6xnFh%%AH4Xyl@4TE(T1=l|AlwLg8+m4*%yhZs(A{`~1O70cSrmpAX}ZMQ?-bEeXHyzEXDBWK2d zV)f@AWfEG-N~o6-Nj_}w?W|6p6Bki*YoMt0{V415mj>GpABH5DRCnlSxoyBiVIQO87r+f&W9Z=jyKJl~GALm3W3KJpw8-S!<14R9nP1_YI)ygHun1CNu8RwDl#p#ZIBa?GUXd;kR3P<=)m=jIn8Dz_-Vo z*Re6UC&V1fXSvrMEp3l{5mms6Z)bj6tw5X^kng{v2=U2%xo(Aw^YXTrQTvQ?^Rrqp z0XkC<-emUebeEMmDqYk?W-6W4iU}w@yEYu-D^NRvzLeuK3R%C>(+Jy}K zL(aS7@5+^}ODMA6UKvTPy4vs8pxDK`$4YxI#b?Ruuqwk_3Oj=dXucxY6Ut97#CK&Z z_hQR9yT!a72H(!~xKCVUZVZp3_oCj;R`?C>z?%$H=_Rj!>^gm(UeSI1jiz?|ksu3{ z&a}^Jm7ysXHTZi_MYnW8Q~M=UE8sn0zTH&3{Y`0aTg@z=_c4x^$aRBz7p36HExXN@ zi{QxJ^)PBBoLla{e=@nwbi5GF5P^Ke$+Mau0?DnITsLX;^N978{pe!KS9sIsR{XRx zpKw7eRs9>%>fx#-limD$jI~z^rq!8HXYSop@D?V?nJ_mMOvEyw&SRSj?u(DZA3Hog zA&TFgDX+9DZgWsow{!A45tV@^2i0?#**3ZGrylPtSK#l;zn?U+<1-7c>Lsh_x#|gZ z!%r2pxjl@Y8?7k6y;>R9F>4{dEJ2d%{Pv0k*Xsr*7d~rCK#~V54KcdjZ1rA5uRx#< z(twZTs^-=0xRcGi{Q7y3#DTNg|Iny>5tH2}Nxp1hDLb)QY5UIEO})eq*F;2%+3jog zgo3DYCYpsf{lp@<DSjI`BspV9^Xq*!n}lnwj8LiHm1P3q0WIX#IId$b0=c2?!;at zeuypMUKuR7p{VxgBDe87H`;HWR%drz^vIb7H`Jn6`bX}d#?|e?=hV4c7rh=#cC)(V zam3sl2P&+IWc)ANpP!r816R<~SMXR8^4x`2kQoLZ&m1G*76M|NS#Xmoj%k8Sg_;Ft z1@{zdubw4}bSP}t5vybsiq!g`rpMJ7x+hbiRum84*~wR^RYXmXv)WXsRm%gTgKYI` zrBc)5tTq+u{3Jfr*&jo#hH848)&H(wE}Ye-LY?=+U4o4G%!RYMgaWI`-G2=fOpmkL zRH!>{!4p9aeWtuwZ7S6DNc}X(Jr6yF`*3^f=;kn%~EY;yp7`K7MVotObRd6={;3 z)hY(4v;U(KP11~l&PyiCm!UBE@0eQk6r=IG4DaTYdN4~a!f`PF&1x0PjE!-_cX>{6 z-gudSbH)5Ot5v)-b{u1F`N>)EPXp-VJo3l+y)XrosTsdTqwd&%NpxhH&LMy9# z_kkpT^>Z^1y_$<0-h8{Clb(AL;;cC8p80sE?2CC6bKz=^qq9z#?0LfPv)t0lS}tA)5_XIcC5>rcrDGHmFGhl-al7tXx6pT)!0Sv+_PbKyKT z-d=}}@*aFCpre`1)<3JL3iIM{#kZ_u7mFO(=N3e9h&|_hHx;0~JxzJ*e${dCr%3-k zh~iADGtM6KdndQ+f02iU`0ryAkyZSmR6mMi64;$4j^H7VbC06l1dq;p#q_rjJx~R6c&kay zJA8RbXB8sC{Ei~oLWVc$`&^;l3wX20) zVVC8!|H`DinG5Hhgn0gNRr|!PS385onv^$_-Koe3qe~*%VAmdd~wRm@W?g)&BV7!d3VV; zET6gcn}V!w&2z=A_`C)0iIp)Ez7LESlUY3bWkwu(HLR7l;Eu6Y9OhB#y}fYwOa2U! z8EU4#g%~-!nKvi1t-KtwRHcajaGpPd+=c#e_9GBJ73Bu2ZzJIu1H51kxItidq(Hc#88)P@};xUE)siiHvSG>0|h5CG`S*qs3 zO%^;hwy9vs+aSBCr!-~q@xBLDd3)B3jcZ_BZ!Vonv{1emT4-uRpvXt zM?}G8ssI06cqXynv7b3J`-rz|ICYM<@YG*{KhaiuFZaa6Kk>W&7fH_9*p*uI=4UQV zEX=%Qrv`h7Xzjmp;krtx+0!OueBb}-)~zbzJM-Vng)4alixKPNR!ovJVUC;w zsH8mOvL?=p$os*qm?USy9QjLnWIFY_+~+)nS`gfdNpgcQ7qgQdc23WH#<}-exaf#C zXOf%=a}e>zBhHv-vYpPzs=}?93unR{s~NA=bpBYr*y#@iQ{JpFh;O0jg!s(?oxt}J zUw`wyGF)4To~4$V=(CmFFO!Gx_C2uA{ovN_-j^ppq)@JNrbSGW{N#?_){+rD?1$zB zl(#0ynXE7=?++XP=#C!K*n10k?wIC2)1*{1GaiqP`T1*>HD_N7`~2a6^42T4+^`Muis4qzS|zKIG~TkmeGYFETcwTfnHlAQZBDeqag z9(C=rJKdL_3v!ZcdR)cirscH_@}AS!h-DlpPTA7`uzUjZL4S;pBYm`4#ku87vu+A04BN&eL*(^IY-Fmai+_jfd_t5p9iE2elihN+%t$Fx5n97fG4tXeo#st; zpRYTk;1rI-*y2~H2r4NvFD}Guy|diAAL-`wz+UkdHHNOe%e*+E=iA4-gNpK;@!@f3 zlH5Ozu!^rbBT=ecJXdFgTlMe>XKm;!if&QoDy&Mw_ks}fukP!vDN2x!;_Mn%4Zazj z<%q8nax{K0y`T`8bkY>LOvHFeiaACu54yga^JY?(Y=apK6XQ&hb5E!WsCB8Y; z7@8R8R?LWlDt@9|%E|O)&JcV%GZ)US3`ShM`Oe~$tL;~vNti)07tXB=MqH%7bvC8y zl=;p?whOQ{Vhc8D|02XrMo|dxf3)=&RjUtznIZiY$7vor}R@}P|kK9gVm@;i(D2f zkjtV;n9D+wNsJJN6<0`VL)h0>40kr!4M|)c}LRww(-^_*c zc*wsC7VgvSb>;QQDa-t~!G#+n`R>)7>~qCaWdd?}Gylz8IQIl@3E96}FW4qOMlNqf zMDKQcI{BN zIWpZETS&oo4>H#u>1kh`9FXL^KA?Zb(;~`<2kQpsMyJ|^djpbO)8lH3{#hwBBOWLo z*i+wb7;>+?MgOc6On>9qzM-N$wL(v?{&#BCGDdT&vzvW9puA1Ry~tcYb=$*U-*Kjb z$!=B)k#=c`d>+}qZ@?8~7FZaM67EB`qk za^dP{oev$~QN^RI9~KVw_8_A*w^Hxznmsp3@|}0>ldW#;Za2Pg$l${H&d>g~QY7ct zhLFJC21Vth?slt_I1Zw@4a(b4^t*Y!T;}w)XSTs{5Y5e$H}`~@*G(7 zoP#NE?kSkj2mc0qqK<_##mGD)qRzO}wF`n*E%ndp4%f`Kx{tBqUcbJ#*0DYB6Rh@y z8M9O?X128=_}G!3WVZiPu9i11tFhPR??VRV&HT2>Y~Ox= z1@A0)>SZ8hxfQe3CQsdA^lrEMJJr1%TUr>Dx1x&GJWADcXW|>wz6Xa^lqk)o_CK9%9TSg6XsS-F*D08#PP?EJI^+bw^LAw zhR+F;(kiQG%ppAymCWvhZ@W2s+e}^awee&9U+U^(t@m0^mHjR3G{gXyv@WUE^LF^W z9y{(VZWV7kI1b(uR-1b@Y*>*i3v9U#YpHy+Ok>YGQzxv&m`!jirm;;$9mL2k6qT_S;w@b9&DqOy{nZzKMzPv_!ZFj#PdG(K z>nESTGHSMnA+7AqpN_TmpHZup$O06uzH%$(tYdqnRspzQrPgby z%yJ9yA;uVaaIDiI97C^+a=(0h$Wj10dfkgP+cZPQ6K1xVj%I!vv0m`nv+#HI-zKxo zoHqA_`|5DzZOepFAOp>$NtRZRUax zWUPrCtC-zBbD_!sF|>G~+|#?E-NvL^PV>sotBvtN&-Hkc8NP8q)q`deH%JKIX$o@@{7mgE^^Hz|ys#9R57CjjS4QaPrCMRSJ=Izy5=!1oLO*Y(uKI=uH9~*H>=wp9#GeuXmv2j z=~ulFtQ^zWsCb}ByW_VXKqrt})dtRwENT$-6b>`JfQ=ztKTAc}X?kT2F&qTEXs%dp5 z)VZgaB3K!X(dta7b5Ev19j&I-O+r1^lc`|#oOyHZDW=eC+nPOR-kf`iDb#T=d(OPM zx+`^0rh-XwrpLLbe^)T&%~Uy@#b>7%%*mK6Jw$Psz+^I0eg0#tbMwZ@J7!Wm-*waoSqf2S6(iFWG?V1q6BeVt$+P0tjF-tO7EZ*tL6TEXm=$&IX1&`dOQvBA zCdQd0=bn(zq4A8A-C)lX)m~vX8as+}-uZS2oNOI~4wdl(HFgefX1W6o5$Ns^a3pC(V<(?s5dm_BdeJLZ^im!!R(;C}m8ANf6wgZD~B zxi!uZ2h-$nrJ%g$tl$+PA-stbyti(f;#57F?=b7iEVxg3NAn9e_;|E8 zqxU4M`h{m*X2E-18RQ|)JXfxW)yP%6YJfMUZA;nr%psE`CoY_OLJVMCC$IRwQ)T=H zGs8G@;RaPMQl72jjcAu64`V*a{5NyqtQMl?;PdXVuDSA?(EGaemOF#FEOFtiMohnA zuKU5?v*b|3keUBxE}W@yA#N(y#BB)1Ya(V7OkgM0TOGZEtQO+7GTodeiCJlU$`yeKB`+|X9|1kkit+%MY^v|l59xoUp>&9{3*ctWh3 zFcJ~9T=#cW+hm&CpuC9@hnsxc!}jKdU%UA!CAjdbt3_&-wtOy})$k~y_F$DIU%L&m zH#$0|tM)yE6q*qajyy7bl%4-)s{7wTpuBl>R9M|LDAkXPnw0mas6E)VW_x#@swPOS znCvzcucA`y7*vWq*(j(KyI@4B@A+V|o7ISNBFl}9^^Y92nt}C?q_L^K=Yz>^R^x8Z zZ)#8IUeVnKE}EA)MZMzf)dk0$ouhmBIk0t3FebZM4Zqrp2j%Rm z*ErMR+g5D0TH#e(I5Xm`7UEHOKZPz&$9%9i!_hbnTn0Y1wG{!G{;qGR;85M9!eyebPT%9k+{Rtg=NQ18*1dGkYZ zHAa7f)34dUn>S#nysb`aU!l2h^&TB#!NF`_GdG+G2XEi{4U=hZZWUw1g_w3(1Mg(U zLb(d_LA6)9uaaZLA|VB5s(Yo*9+I0d$6Uc#sR~-Lla-B(eA)YH^$&H9Q*Fe;nBiKx^*K_;&5 zBMb1n;=Y(xXNn!)QSY5_mZD;Myi(vTqx0o$f~O3T>pUKOUip)(%iAWnfTPhU&JFU*dIJZ)`VezfKl+dp!3Mm3@S?|eJA zQlHeVPY3zQ{pVQ7y_Y;!%&~8XBrXdxn&a7}bCn~@Cj2;~;47*V`iiCvj`(|}o}!v{ zSI@4PA~s5%PC}XU1c}dkz&+0nBUZ%bp2)SqZ3>D3Z3gbe%JpZ;`Buu z_gkUKy7L&E_nce(Fb;J5$Pb`a`ND%gu_tL}l!!kQiT#X`{NJnAAmXhU5g%ja7sQ>7 z#E5uS&lq>FQ)8tfknktU&GXLzL!TKPd-RsZPV(3m-t{Ree>?u@Jnd066vuvZ#q=@Q z9y<=zG(472apr~zh5Edi)V*pO{85V4?K7Y0h)-=!A-7ULBd@4`opfvU-%QWk!lZqy zCn0{gx{h=HVjXL92~MBce3QDrMx1kMzJJadJK$+Ar|q}x(_4=7GrKcSZz}G4@%n8o zmfj+3VEsdJ^WD?N`5E7tp=Wh)9Czm2BCiY;dIdvq^IC1P^-41hV_XG=V&!!!=IQ^b zcsf)lR$eQZr)PDrSDnJW;#P{f*J>v4Q5guUWQm2rDw*QK^(q;Y(#+GVyawx>?+!Jz zR2Fk4^H^;vg8fqeW_qc~r6QTyok#iGnZ}N_SBm`FrTn*7^)16ZJ=6H6!XG1iV`ZM6 z)utkTa;fMWEA#ZM{&xlQ^sF`&h_^)Di_Fur+Em29b6KRY%Ix6Hn|OLw#}q1toW8Jh zr2FuhzJhsrrtxD6b#~Kdmx-<}Fhg&sNn$FPh-WnkFort2`i+&ZvvH4+B-1;vNEV~U^0`(Lw;(i70=|mLBvzOMj`eiYu&>~P?cS=gOo#^377*@<03kP*D*c%bg#z>dI) z-3HV>Q}8^VigL%7-srnFQ73M7AGg5*$^X*aj)?D8QA9jZ_lhu%)|us8?&7jbecUe>BZmoM$cie~>jO;P zo0RvUQ6t=qxBX<@hUhuB@}FuUb#Ku4V(_~0?uH|IRv8sNCpMp{d#3T>C3`r_9hK3| zx)oz^E2i$5#>b5QrO9skx#=leFb1~@+(!X*Z_xPS<`t9OQGZM?*oZN>6;t<2;|r0{ zFUy@Vu$xmFk!^0p)V;~+*B>R?S>&#b^`F+f`|9)@B=rfMh6WPD96}^FpZBq+nZl-x@;V6{r6;0|3kZ%)ptf}+cm*nsY)VY_IDwcS6|{>f6v|4k2t%` z>8tOh{JATAg}R!WGslV78gGRuSmTE9dxXQ!((97Pk9^Wqk`SLv7KVK93P(CRyOCg?QX)YBwKL zQ6__|VY;5xYH!mgEeaJLxbRPE4V6nnE?nnnXSLeHj9-?7irQe$Z+QT#WH=6{>kT#^ zRC#>bvQTl?oW}O7wm-_RGOK#&A6AVVdug>#_A_bEJz-7w;B|JFp%v^ZQ>uDQ*Rz6q z!c4YIEqf&L#HS)xar(pYk^KLz^Lb+??YSr1iD!g;;3nDZ zs*&!duTlSlst53W#mqiDCf}E~M^w*p4?GXr@U?_U_ZO%8=fr451U_O8D;wF(YYcV& z#Mu?J#kfnz<$;ROm3!LXt*z+2b84fbNqc`Cr+PxVRC(QefyIF+k11w8;(KOBRhWfkIDWR+!N03`igeWl|8*}Pn!yZ zv?n#*0N(pT9{Q-Sx4V9jFI?wrS6q0`&8_{_B||M{g43_se3-Ws3MTDY!IVGVMQgQ` z*2)3i4alv|96R&v+!MIhZ>PG&Z+7w)z?aILe&X)SBE5#T_E(yi#s}H|c3ro}!LHsu zZ z7j6hEJIwofsvM095=TLjGhNT>W34JiQg7WDDz5mduDtczuJ)VH!X-qNrC4pwSYqEf zCa2HbEAy~$-j7c8v@3;Ii}gCNf9Dg8k7s+K?QOiNzIR!!$?5NUVrBFb#WX$$y0dM( z`>WRV`XMu3&8JsJlAmwq->=N+n~IB*8hh8r)$;CFzKLloBMTO_^Vd0EFVAy4gg>l9Y^ zwrqz>h-iLZr(k|xh}N>4_jak%?pCbCDPmkz&QfeXkH<~|#HssNl$GB?3>lOK)AdZ< z^C}0{CJtKGUEsn?`SrXIr;hU9F=n580xdEi&fRs-KG_YkJErTILsv9JY<9PDr|o|H zXpvlx>Re3Mvs$e*r2o7joDV+nWrlly%T4l1tne~j&uX$1>W1a6+b^rh8{V#>{yO1#kRq5t&F!vVVT9qU`IhzQ(9~X6Tu%7viAMPb# zZLForU@bL9+Lzoby|?PAn`y_My|Lq9GFSZ^TdDr?!xr|*9+vZ0xL11gl6$53eId?w zO0o~kt>`vPQET*TqB+m_?5f}Evo1v0sf}d6oAxDFMb4W1tKW_2DyPiNo1Fg4#pkRt zub#7ZK4^LYn9b*&;8-tRyG_F|dd{sl(##QPyu(-AD)93XX-YavA)2A-U zcenNp&M=YhoM&AV|4Gd+?L-Wqw6Nda*w@~-Fn)>lpS z#jTi{7UGxRFUk6w``VvOnQDx|q&@TdLiD;q*tg`H$DzhBTG8>L1}Ks`%zCr0-J!(_6awofxqj5EIH2xjtHcW4Io4>-#6g;nzg4lv$S(mX+nJ}y4 zg54c_g=(dFdR9kQUtPWWI%Yw~U`-e+u9~N3b?n)u)(zCUtZt=_<8a>~`@8yCXM#5s zyhW`dcYZcdsMTf7)+5L7%cZ=-O-g$?F9s{s7Y26r_lhZaQxUF)dwMl|$iB|e^>a2?=JpcF;CCxl1IKa zl5;Z1-_CqHt5MN&#``-a{ODMN{g`Eph-V7kWKv_JsMXil7_2bH6Bj@3BUfc6$YNF9 zktk^9)=XCI<8i&Mi>;PhQ&ntyQBK2olA*We1$mBm}eS1($tolL76 z&Mx02g%hhp>ojmr$Von?V=eUdChqp1(_~YuO)xjl@qJ$3 z5#kXL@y${uISC-*nS5s=o_S&T?%?cSQaH-Gwh3yVQ3m#D4Oc{R_IC7VldMLZ`jr7* z{~9f23*-Y}@|_jjlMsEjb@Ha4nkvt|Qq^Pfz1JfvA_u0X18G%q}P>}ui%~#fvnWi-k)F5bDu3i#8V`d zdjb!4%P@P}xh3w0AmVvX4A$M)t2HYI*sr#0>5lmAkV(WNDz900lW#9sDOR^)*4^aW zCv9(P|NKxzx8uQJ6+jd5%(|-;0i8izh%qwW?mP0hbLVt?28oDQImtEaZu0FN)*h7e zZd>EDM$~{?G3##f?eC#Rb+t;!l7=-FZsil|Va_v?^1crl>lW;po>En<$`JW(P~`?m zUUXxY99^ZG^(GWdzB3WeJ>gCqJYMczm1kALlYz;1CgQm#A@a^XDyw=Ytc!><@Y@6v z@!S(A3lQ;_Z=YUpH;8yOdX#UceP`Ak>roA|8wwQ`oWTNC4`t4rz8*3G#*#9{OD`K&Q7>5q_C za@81y8uOB1{!wzTVn@jIIMeEiCGt-bohyChv1kOJ!;)jfA`k&1uGKNZyrd$wrG(<7 z&a*xXbIuPo_6_$e){3cebrxde`q8V(dQXo%;a+xAYoB{PvnMCW_|EJ(k?T0SmnONJ zKP&B3L*$NQy3B~1TzH>LDROp;IQt1?@#y{*vayHE4M%917YB`d&~~RjUF0rD^=$5! z8F7;f7dvd3nt_T1D)u^VeKf|({W32u#L|yWI4M;|_?gnVUuMKjF8u#v>|EeD2*Gpd8D=+yG-p*VvbK%U3W8c>Wot(;NKkP`>IRo_=K&(!3)%u;oHgHq>CpW#$PUW4Zmn_&^^lxJPmYVw}OdpFD)k)CbA95Eca zRg*eUr-EDQ#pd3OdJ?Nob&(B=dsmsrOz{LVQ;du=Q)pV9&lR7;Fz0|D=Nt$#I;4nr zR-d3D-c#wbL&5gaQE{!re=qtz+ysR4O)*}8RtAc+P zdj2wcZXID8Z2P#34)1Mo6SBU;+&t6x$gB4Fe*fAd<-Bq^aYl!jp=WMh)|NDl560`J z&HkS&vb2iiD04I6nGJA4#{NZJY18yxll@09h^)I+MH|NnkWGcHp=IF#BpU{)=J{bR2?G zk2h)MEjzd?xn*H%E8gJ90mK_jtCxdwS;Vmi$ksEUxmWq;_P#f&b-*zOTx#t&sN1dg zL=FFWo2K5PH+%Ub7hP;AxYUUv6r?xO4-;>|rH0f(Ohc8YV8g@$m=RNMDt3XR67*-O z`J@pFVl@?&pg)VET(X%{4-pEj5uvc-SF|dQL`aW7B2_B4$kZg)!~EcU zaYRK`WXsPP2z&7vP4&Z4$p7d_izi1F>0K8%>O!fSI8R3lnE|h9k<&0$As%JPKn6qe;3~6W5e$XV)c(~Tl@WkP24H6hXU<_z;PNJfuYobn;Rxe9Xi{YA@Lt% zgX?9rv=!N=;E&2mi{{|i436xG6gtv^V=!1@$83n^M9~}^r*V92Mz^?CT#7wo9J3L% zD*D%E=$V_hqAt`Q$nyV2>E@1P`DYrFOW9L=!(**mt+hOvADtH~Md${}+2Cshh;ii{lu$UOT2? zZH0V)@E_Ct^-yr^f~-w<+0ib_SU@`$D7C%8)y~1@5Ge zZ5;(6cl*w+-SBiqbQSGGfc5s~%aUgy&P&)2J|f?!F59C$k~!7^Zt8c|CO`V;@7X)` z4lZ%5ggmbboM^9Sj&(pBWT}nG4`*1?-C!8XUT}Kqn)%l)&cLWNU=c_d_)v88gvYM&an+4>$kV6({3}BRM?`>IYSnhbq;iX#g>mM3ogJU4dya^}vn0xn z@96CKdbbNMWkp1&*Eel1Y}tIFbBFBtLQxQ0%8H0k^$<<&=RfZZjCXJ;xobsgcNHBs z!SM~qLi+=k^Fn7>oaJAiEB+4hnKn=AXm!m*C|FSm^aM{+P=taVm0)Tz z3VAzoynz*CKs6bKv?^~zMk*T6iZ`Ih1)~rftl)S9RwGX;)_v;Ne>nLl)_pj7fED78 z+&S~{c-?0p_L}&yRCB*OR--tsfa49ADn|yI6^}Y=znqmk9ez%>!S%8l%*6KAUfoZe z+HLpw2)~@<5Te)>@igRSP6=5~E0RFv ze_zIXrp`FOGj5MgD6_xN>N9?c zVgXnU*7?1Exy`rq3x-^VOz9LczzVJjzU_-H(MH zSOAU@0MD?fPjb|KJ%bCT!bhJLF`#1s>==PrOZqsi?&%qPfH+|}qDzHi-#FfY`v;%! zg+IE(9&F|{0ol*|zjYsXL)6WJWii?RT$3N&%A=cktMaP{93{Z&5td@q{B`cK*4bVo z#2avw07nmSP1phK=mfX$-A-Ps@!0=^;+i>nfNQd!?ab*i@hfzj@v)q}!3!oeZWOeu zyei3la*hSiQ3a7VeB7Z+gSj;u1{c>F?{g`R3$SAWYCPC1C|99Qu&C}1D|&$A0_<3T zm)|)vc&u-wpgOJxm*ThpI~HIoa_R3X^FM$32bkkf^Z+yaHm85f&W--I%&+}#W?_$9 ziXIShUGHSZF#=%juFCf(-gU^Y{~RJyD0)Enc0FTZuM_sDI{1~pa??itx4fQK^nlPC zdgnB@ZO@~a`DcF=`>B+A7JIl2!yax|hI_b~=mAzw{AwxXp?5A`oUDa;)M1%NQIr7F z@iq~ER{spYSGO&0A$AAmC;^Th;F=I0^|t5VG^E&Fg{<-%CBV@GTod*tSNHgtx2|@J zW!E=~65!|ou1Qv-ru*3y^W6sU(X)c12RIG^`*Ws|H9E$C34D$!!07d}U4;+cyu&S$ z=mClnV9HPUlm}_HSkMh6mDx7}P4ma<|!B+G@y4u*7 z{8?ZBi$`m?FM$NK+D>r+b}T?XqJA&yb*=Mn%pf^>pyZF26FTabV+0VDg4L)O$~Jdq zV*bIU_*r5rDj*iXLC&-5;#dIfMdl|_`1DETDZ?1lGfyoO3!n+y$nVTFe!9YV!)>); z0{%{6N^$f+y25z!4KJ))82RWi`nLL^V*#X;@wi7eqCTbD;C`?|pF_M2K=zLW*&l%H zXS$x5{T>I_By_$UM65U4-nQFgP23h(t>sd@W@#&4?bE=yzi$KQAXaO8^mr4qQoZtP zyeDiMqa`dHd;l)|h26W?FsIMdy*^h_&$VLHhKUwQZqe~EL!VLvVk1<lF#j za)ShfjV`sF^D096jC7#NvzjY2<$c#854i9Dp z1;`@!+VxQuL0yVja9c58%6`AjFXe(e;I9?GY>EqqkA6qjX#GmArY6jlYLQhwIQ7AO z{_JxjT0|eQY)}gkdEaNVf9A5RpliG@K--JDro70SJ!jiWmDxAQ_xm&s<|Bef?mkVD zGd(VTXU(J|LsPdrfBzE=f^%Vmk645{?nG@Hi#X?2@Eb2^9&D=LCfq}z|D9JvK3aIg zkGvIe=xp0OKf^0YrNl4a=(|WE-w#c(Bk$m>A%%bZ{E~AY)=QZFWcJ)5LCFa277z)# zC9JS*40bzvOs=Q0 zEjT*cf+m-_ltr%Vofkufg=uvzWs&Qu$!E`J54~u(EERkXdZMdO9e z=y#f&+#=X^D>+h(ot&Ylts8*r}p zZs5Cw)k^)RY{%r8lV&(IWZ8qL##$4#}AoIKQB&Q>; z2h-eJo4uO49;`;(1mC;Fp7S%x;?Q;0Q%7e#)%Px!VyYY&fpA})HF<_p9rqO<;Z|{L z@iwS>U2xs<%%I%Jl}SyK%N+T=gNsr*$$3tVwFvCfSRFaZZ)~H^PXc@X>@S#iVt&pFrpH;0JoGb12D2-6@Vg-=Ip3pv@3I=ZhHmZWO#w;1urWw- zqQ{x|wn_32^SXOy46Ybd#cEVh`5LKw0Iar2@+TH__dXg}F(`8zY|!eNr6!6U`$ui+ z<8^5~+n-Sb8Bd6UmmO9|t#iX~6m#f!e|*r#d#}xGf7{QW`&?=#vFEk|@gE-IKYWS* zkoDI3o82(xgV}RSt^RnniI-J&s6Q5~&a$33;wv}ItuAYbI?p<*v2R~ahIeCC$1k3W z`5;yucN}!XZQgSW!%gu;J zeLR*(^SiQ?A(JW`RTIH6-ScnNP;s;D-@@J7io~6R)t0Sbu5gGiN55?Sb9czRx+O;&8Vc zJU?6)bI8mmD^(2N`CrTW`qw}q&(}r=q8!-FB(puNu#D>CWFV?>GJL|!Av5u7+i3S% zr{o=ro=$#@yPa(?d(8G|xQp2l^Tw=@H^ans?ZP_-TsU@pdlkFB6~?>1Y3`NPGD9}J zsIdZa8M{8^?Thv}x8>kKhrY*WR^AP|@g0uendby=k>s#wRLKeJ|L6n`GqD^Cewc|~nA!s#(4 z>5OpHcEbxF|Gd)miVZ{H{+%Kk<4W8OuaPkEoBkAK8=C&L?eX_RC||=m+QhHncbklE z?Nv`UOP&{I%{HYheixa?bv|rkL0V_8co|06W`~VN)=f+)p?}ZV_ZV84P8BcyVyt&< z!}{29S}DT?^XJ?mZlO{Sbbi45=n?EGgCD~M^XGI9dEv|pycb%G^G_MvI$$o?sB?=7 z8h}IY{{U7hg?s&C)H&Y0m7ex@Exp)MaH$hf#nPtSfRBut{cA#9*$(vzn~F1XB2qRy z8u6`C1L`=ANe=%U|064^hSS9#Q~YjJAUCCUGj=<5LHrhi_+<_`r{=*##0%#Z*@SUy z0>9!b7`M0nKICtYiC?ZMq@zzjF5~S@8Q;xkssCi;vgs49L8?!3J!)TA+V3~JWl#^f z?wLcj6zNQ|n8HuIf~U_rmD)M&jX>S+;7*lmV}6joz3<&cItzXYk;`EjU6XnSEgFFg z{EwkkR;fpyFVY$KnP>(zi)%3p4E=6g59X8H#vn zX{~uG$={p`55c%%uO>9Z7Zavr`Gm$WLI52!mKmb zB;~Q^-5Y(K&1niIqFEg&zK<3BOl0nv)sbRK+$vVEr@>Z78u{0zqnULU64-dES;0qG z!Mqn%Kd_T>tCgdZeZ!rUOQ$?BOe-@3t(2Yrs&pz76PL2-=$m2V!BwN3y|E4LQDVNC z?WONJT{;z6%6v1cO}~Zl;!<)JOg^fUvCdLTB1>f)l~=2DV#IGV!p}DA{O#OQ-hJ3( zBoDiJYCJse*6QA4A-a=QQzd#f+Y5WhO3WG|Wt>tp#zu*MYa?`!7yC+MyaSrOj5 zOliUka7AviW!D>=Ct~_j^R!Gy+idMmm8T{Lm1^!hjrDde#dI`N(^$EyH9L7;P}Z4` zb!slfbhOP=H%rb-PAy!O{Ve*yrI?OpY8v~7CtpbZ`E;x7!4hAa1Wz3^)J#V+HH|o# z(_T!<^WkSGxD?aTOiib36p9Tl#dI`N(|BIJKQB3U{i?!I=m(c#I-03zrOrQdc5=X` zvdIZJS6oWYo2H|gng*p;erocxBh8Y_a6Pyb-z9waD7D_XEqP$_Lr(XY5!UPY%v0NI z`sO(*Z|4e$7GEw3?cYSP+Fgm+JrcQfPx2YE~PCJlo~j zr`G_OlxDS2hz(XSDb4CM1@;)xG0sd%v)We3Q(s3y%k|K-2&-*{0->zW6`xW2TWd79 z9yq%?e|!IZ0SVhO3kBkno zLa%vhR!a+8{BuF97_g^|x4YIj_f}BF76naeS-I~~cVVn}U}ctf-@wi8W@PN`@k;f? zh#OxG#|BJ9TQ#YMi3;AcW&h{?6MQ05(5&E^koB~0C9nHCXL{4YKr%_nOe)ueh>;D* z|1h?O-y3%c-wk}1Fk20u7YM!23qAiZC_Uz>tx`lv!@G1*hWD>Ov;BYKn#(!S)HPpo zz891_{lKN(T;z_v@FK9zl!1Ngr_~ZInzW1Z6p=>=?0L0@-Wxw(8mvU#bEcprbA8(* zZKGUBR1?^!+bVj8^ScL+wi_Sjy4MUfE4U`azV_PUI?Z|n7wkuVYT~Jd#?9^6CiE^b zTa9;YtJ$uzrBBco8OE82W(C)TecV54=rHJEwEPZa zKk?KfzABwibJ~QSCZ?v9diw56KReknID(i4K9Vz`Y+^+DNMTdc?>y-wTW@L|4BQDX zGV#S-o{lgGzoR_zUY{=O_!WzplxDS3+r~5t zx-|RI@BIQ;gE}uK_BMASKPQpWtj2QNs;nTR?`Hr0Em5AkMqOb8SBiOR=B$x{zslGC zo1bm;pT~2T`DW&+(^%&ZHu@K;ul?T7_YCueYwDW4S~X5Kt?FHaC{w0xnT}>(82GEUS0_J1F0ZEWM={gP^sg{eI${iC zh9ygq69$ZN2jIEOOf#z`W1gPLAlm7jeaW(whr6;PG&9YtmfSmL9(B&h8h+*FeciF* zB_leT)#Aa@d4HmufQKLM?7o|(5dT-fnM=bl1C!G5rB3ba_bAicZ43n;5f(%5E5x)h zyeeBK7pgnQyW^qY^CSKiLn|*$?ck(T$FFu}e+8cUWq1@ruS}c~ov%%g9ZM4?8~cOb z@5*k|XNUU;=;-u%HCt^f9>To##yZX2udoX^x1G6XyB{1sm^1m6gx)!cp9ZWBbEJ6K z+1ihGw#Kt0W}4HV4El*7&k~z;Ha=m__-$%BUSaZs*{rkiBB$FhN78Jh{Lv*KejmQ6 zfpZ8ekWBV67tAYqO8s|2a_zR_L5^hq=2E=YXDiHe6wh6Y>@_@f@9Nl3_@n8m+-+I| zugq^t5;^Op#z%^)gRu^Sg0|@c{nXOLSeL;8M1|`{7GHqae;GM+`07 z5Pz+<9cGmekX1f7)Z$gERm{^erK{BYKOOTwUTfQsR#~OUc9<(nGG+ymE6gHr^9;W$ ze&-a|t6~pt01xk*+!A@(39~EqY{lwm&-sQYXJlWW`Ijiuqk` zA^bR?an}SRle^B|Vez|6<1!D4ydML429u}saSmbkA*OD3xQh~9-n~2=EwdWqt1aDw zS}Pj58Lw0in7U;J*Myyc@|pxQY7TXa!0$43yY{g~iM6Bgq?YkDWu8Xfs6AzZQ|gX$ zOOUtLqHh1aDA6dhYdH4hn&8>&u-YHLZ-l!Xk$OzsN;Fu`=qo~c%c@B&f1$Jg&zjBM zd*acO-iKAjJ37w@*JQ7~G94=;C%yJ=^SgY_B|D+M6Pd>4Cy^;HccKtf`kFJD%W9*L zJCPOKLRKSisqnU--kk6J2@7m~mw8%dd9kY2_>Q3X&jtR!2O|obvOlY?ixThMj%EmD+JQ z$J>5T1tryXSTwHeCaCw_Vlo$NGXJ~Ot5d0Aa1Hvw>o69LYpuy_Jhz8e*VeFc7k7Z1u_T_v&)?AP9}3zmAOs4rz#Bf>mXK!OEG6_v$gp>GQ4#c zIsTqUqP0Fv<1%L}t5KTF#on2nx46&t%J2_^f#g!m*~(g$&I*mU+I?f(ycJ85=i&Ro zrI@p|+1i?QS31*fFDYyS?v+ak_o`;+U`$u3n8{O&so!7bY`Lqr{k_#634}w{JS}s! zOzA4s|6eaVAALG4yEFVB%+|7+Ia~N~uAlF$Jbh30e0a&2t>seurcSkLgS3i?SSDpp z*s8)*tKz)Z+;dhd)$O}0E{(psGRlZ@63ci;KI>6IvD*I`zEoa~keRn;U~TS| zy{{!pkw-Y*SDV)sn1@v=6Wr@pd42twV79ql=2LC%b^FqN&X_90-TN`yR>Qyr$GLa7 zUYmPuQt@o3^XMsId=wvH!t}j2k?Hn|c*kRP_u)kH+^I8?wQwd}>7C=P@i z7L%F3$GKRA#WMUQc6|exdG7jV&SfAoIeV*ckD9--8PEEAT6-%&h2b|^XX>>{Nw#77 zkZZ9~Olh8cWkRUQ?9ayI=?tEXSWZ?WUTt{w0TiOg8rStsB?>qLayfJ+s^jR`Qau1 zqq|yL^d~DSEXKWX^q4DW0ba{tb-f+0ulI*PbFro1QZ_p(Et8*U6~vIFT&m>gFA4SE zm9QbKpZUr43@;e{H8;hGYC_PImQS)C$47KVS~(_M?^OI}|3oWzxpBQa-+3oc%Xfy~ z9Ybk~VsE3;?!zD_o8c~Ds+5^jn=qZzy1x5coavTHQu8^th}GP#+@S4eU|nO%lkJ85 zNU@wolk1s!l`{282|f#Z9vbhj>x{Pzeoow5&ZaA+a!cC#4F)z3PDegu#T;rXdoL8J z^Covmot3@(4Q-nS4UrGoQc$UrQ>zN1I>l= zy=y+>{8);bFFz6_AL8T#mWM9oH@qkq$% z?ebS$O1`!Fv;5t8Ga_Z}r~ZgUkIoN6m2gzJ-Gopr7#a=1cHFW9onf}2r&xAR`OscfjWD5DA_66R=;Y0oAVICH9^nU36g}E$fr&utl@lLVnM620p#ltSHpWHpyZH$#v z>7iy_(-pcVxq9qlF*Zc48Cb3fPrGf$+>DL=ygT=N*p5r(eOEfMGjm1<$=}b^tWv*~ zWO+S*`P^-aTozo4=~!EF&kOtAx<8lmWXD^Jlm&~`Z9*mxxQ4VA#bD8Tk3T-3jpNa4qFqzA0qYxX?k4CS@Igly4 zF{@9mU^17vURxngQJE>qoxyhut8Ilu324s`UuRz5w-xgI(1fW?;2N$sO#vT^CVrVo z)in_dxy@X7uyzeTcp7R!& ztF}y=kvzD*t+xoR;!;fD+KQ`x9pv}K4o9cr9mO;*^SjLT${suw{2TGc>4rCsb%ZEi z%eH#6SDxSE@djR{@XeW#dUGN$QNdLS#4iI@sbr) zdoq0MGmXn?MBab)lyiljn;eLom=)f#%1D{ z30x*~!K8Mq>g|4EPx8zOJ;PlQHRa1{oA@0Hs`&lFI?lS7D%PAX^Sf*hYf6o)dfmqE zai%>R+0dLW^Sd_jdoYpVJz33hcfw0%ak|9s+Qe_eZ_9W$RUhYmjl4L*y|!qzC?tC= zX4fKq|2h7Ud&Pi!w>K2b>9T@r!icPE1@Gqy|8uk60iXDAwM5>ZOTuvpGrL@qQh$~E zpL@7V1#cG=OiHqXYr?r&(%0>9M-BfMi~#s<5byhlYo>&Zm&Nj`y0;d)XRP=9YmsxA zkBDcZ#c9*SoXgDhB7<3Ci>t29@H_60JSLj>Wd+l}O8He9dJiAGG#Jws*6Hv1(zaIT2om7HFh%(ZFUhbCiw(=Xq@3*0N0VrteV zW&fF#@3$%cq(5vovawTsV)6aw)XNUZ0cLrXs#WSqzc@4BKa3bfJ|gU>-d%;gXG)#r ztoA4WZ-k!>?<==N=!BvPPH2N|D>WW_zKkpQ)V&e&D2oxLy*k<7hCIUWPcHQC8t>kS zXCiaD>3pi*PXk$1&bm5zam#V;`Ivbzr_1~<*QC_Uf+fjGy~nt_MM0dd#qV0gZ_5w% zCF^GlcRQg~%;_?}%Qa!gLJ+_A;rU*WreJ=TNnp(A|7zwBN2Jg_P;e<`V43R$Tln7O z>{@q>cVB`+yh!Gp7=Cx_CrgQSzNGnLXCU@Q9tM7wsaw7__VxJYlgZhqVyENNV;hf&>zb*_t}E|%zTN+@#qTniYty*qJDwZx6M&x#td{b}KN%vA8xy$v#9$k*W-KO; zw4qq#xnh`GR@g_Pdc~g9WIWicu!&e>qu}+$i5^{N#6ItLI?QqhU%lO}_fWsUR^V!4 zZE?osM>g8bt+pZK#JmTw&uFvb*;<>qy}s;??)Ig7-C3|<*JW(j3T;E4)HZc%Xx#pf zgDFhezVEl*{yoe0y4zqQU19pMEF7Ij*NJWPxN$u6B%-esEo; zAGRWT(`ZYEdlkPbbGC-kjs3L&{I!=bd&(56s12EG6hB|0IZNrGMS{kJY1H#LzYo5# zN}Y)Qj7k||Q@20zt1*9NF;^DLi5$OfoZ}a>J5!fre$wQsMS|)*azpNwOEGO~D@?oO zeO@`Wio^7uO{8c=c<*Aj8%>2V@yQ&iE-$}r!j$<$<`!)Q^PEY7}}cLo;_4@kuoqg`6u{fzUl<;*&X2Tft|MuOMGp zTfyr-yw=0Em1;a=a8Pgc$YlQ(;Nd8ns<4&4TP4D|fz5KZ!QLOMf9m7($NnEoWA1Gp zNmGywu9t~TjD5EE3m(|~FaMeP<9+5Sx6WFW*t^UPIZGa$D>bV19YNW{ z3;d%JGfFfjE4U_HkGZ!7y)U}hUwPpUi_GNvifaM^aU{ok?vM(aoVvqjwvu^Bo3pI= zP&2Owc0O^d;@%CaB_`&y3-4D}GjoZ4+~3Um?P%>_!sW2R5wfJV6=RxYd*{qs=dW0f zSt>E2vbU3t^JD%J`=2+<_Etdg=MwBIL#3Fxv=yzMXy844Wu89@Yh<$GA#;u}PLwjB zvKn#12N6?!&NzQvZnVOpBlVcMWUdn{UWi3@H+udq#3IYegq{yDb7`s7@~q+RWMg#vjTBZF4T*~hGz@|;sMylMv zCNRzTs$d(&U3+H5W6?V{9`gr&c#-q2j72SG(~PfV>~rD~veZ>j_xa;kPMh((0XB-Z zU6g!J#-dhT#)hrno-_R^YE68~s4u7Gi?Qu>@ZDWsKHsl_IS$WdnbNf9wST^}#97y8 zjQcU}M4tUHnaRW^GNm7A=9hv0?rPAV@}$=OI%X@`o>C93ZRXrrd!>_)tf$O!GSO(; zxNpHd$sQ{wC9g-OTeiVuCfhS-N=5+8Y_dY$4BGRDT^IUqbF*7!c~wd-!u|$^*|bk;_oK@%GIEldN@AAtmyqTB9p6q(2pQ(mCNsZi z(#o6g>n`W^g^2Da){z-Vo9iqKmh*aK-}6G2)9|8pDYgyL$dJmPK!hBCm*R0;@K#xp(u=?cIY9Ad3gp z#WwgX7z?oOnIlYQavo4FFA8&h>{8||q$^BIlrm(dZ4dpZbDMYCJ$pl5)XW`$gvd6(4oo`3xvfA8eh0rQ)zsC^plh58SIH4{bI)|I_ZpMT?*8F;a!;8G{0 zKk+ue71Wd-F``wk0xzoGY9BFc(wFEbjTcREcJa{^J9=W~4lM@Vrl!@)k+z%9apmzZ zS!0s>YAXJdAH!DGKJDkk>Ty%zzeh*qUr~UZJLcs?e`B>~?xG|5-)J2xH*Rmq`K620 z()VySY+@7n^h?^iXMoJC4?d9@QE5p;v8EHICu33#FUktBxU`^`yAdpBBYX#$No5;s zTQvGd)&R^EEP4~Iiup~hNtc%2(b>(7dv02VT&mXDJt@V?gemc<$cuwax@DibAeetU zvXM{*RVG)>nU;GuiA=gpN1qc+L^fSka4DNfl^#Stxd9(3xvN@{8ao@`O}XCqN%6bW zXI_B!-#GsaAb!cZ5qm>f8^}qM}I$-UsI$r_A=3mU3EvD6AVOOenmg5 zBV@y}ExC#VovYZ;s<4&%M&bKGoGn&DzZiQ$?v)khbJ%W-N21^IFMkj8cSWv&{w!rq zMzI=oq=?>jqIe3eDmb@3xN`iU?Geo%eb04-f+1R^P;+FuUH;21r)EB`2l1_@6l|nw z5_?CUZW+`^^gu=~&Mqmq)bR|g*b2uC@RORPRD=oInzX}ewIi} zlV*N*XE+~ z&zoC0QS#ODI0xOMh*9i<7{!X1r7}s%geltt#k#?BM+`4^cf>t3qmPt}3OxYgd=s8A_XjQgX)T=V(DJr#aYV!5x?@ykMXjzLSCBl^L zA^Z2r1KHn?o9#?M4pYuHD=YLmlJV~e)14DNeBbbtAsfspn&%F_ix$Po^~##Qo{Od_ z@Qu>BP?$qyy46-#N6;!AN6%~IX$oReZF1GvHVS!vFq6t0D$}h-Aw5rLQb&9pt#WZq zwnC2RwI$|IxhA8KRxy*x94gmj6yf#2+0}$8Q>9#!t&p>;uep7lO-;5!zT27?749*o zILiIXK}K_b1#1T+~DIlYqn~Z zpUShH$`(txW|g{b$Ts({=2^kIpQ6m%I+B$cQJXNm|Cv%={zYYi_A{gG-#RLqX;W6) z`^ub%7nNtCem+L;bG&hU^TvsIQ7L89n1&<8I`t_k_!MuPhXh-I* zRWdHI8Bx<(rOteEzwiB8&g<<;q{XSJ-0DnxGDoTuvats`8#^nQ>twZ3*>%P{Gk*1w zH^=)Z>a4I9{fV77^S;!XbF_LD{ctPW+Av zp8eGQceBM#Bk+k#d9qqsn=@cutf<#_i~H@s4EMi3L`0*`>&j|rVZrMQV#V-5#qPoN zp8Gy*Sd=F*qT*>N+WTUxxa_t=ZsE20?$~)fgPo(QCvvL48osxg__S(Lua)`Qy>jbD zHwU}RGh4?Bt_iCO&*V8@F6fo~@k{K3MVWxb`>L-qlb}i+JY~4MYs0?eRN93;*%9z6TVR|uX7i)&JM;(K1<5jD(qnIp=~0TlWKxu?*#XnH#!ABAe%1p zo0fuVLLM*pgR3uV8FWN0R;DAFn&g_W%kepm|HBm-!Q}B^?kHpH)`O)J6+UVc#uYK+ ziLvN}J;_a8)u7TOshWM-4^$`RLBOYB^- zBp!?Yr(3=|WB4Jrl-#?NrIpq7D^^Vu9atJGrc@s1UbVA~_a=C19^0WYs%JGNs9CrCN?_5RAS&&z}mGQ^*0yStFUBn9^i5vOw)D z6HKcy&aa7cC4_+9L6QkdR%4Ic{;U1sviJBu>>3;}Tgfb^%~`&HShfB~r~A*~NzJ9$ z|HX`_Qg06}_ItnW`GerE-COqM)Gn25k6VZp;lDO**!{nxb3OKg5TA#p4a2;1OA5kw zt<6~u`f6rj)!uJ9!!S4CBf>4Us2VAl*i>qN-~SY@>$A*R2%i@p5jr9FuQCG_mu&xaV{ZaXlJb?cCF1oa?aWr%{W#gTmKEY@ zG_gzPmQh~0Rgoud>xjjP`UhW#Vn*YP&C$q`zvtIAeXVU|2iZcKfsRahqzyG`6Pxf< zyV_H2lbObgY%91QHnVA1PO)t~*zi=l+EZ;Sj1Aj%wHwP~4MTn~^Rg&U(~q6E3t{?H z?5R#pe8ZhE;SKlJhx?@|j18L#jp~nVgx^7RJpE}?p&NfJ>(=`1u-gGPY|7KvuoY~> zraTS(Y1_W|Kv{n^YPPLl%jujLI>DwwajtxQu58NF z^utzgKg4Icw$kM(@2lZA*~iKXrazhZ6x(@oy2LeUMd;y$@3((`lqXfrkIwyR*MwZG zZi_c!Pc@aYn9KO@(adXo`;P8cpR^42V|FK*hDQ9=HBtMzip3VCWznDW&aL1!UeG+) zRKJa-uvktaL3Je;TL4W=>K9(-nN&HOmYSMnU%~$SG80`Mi*{?a&+b&P9~)a_1vi8JkX2xP z1$oVi?J0E;$jrs_`Xu*&%wz(S$xMsCQ~4k`&fDWS&tZQ9CNOv2uqaVbgzqCpPOMhy zJM4z=bMH*|9%L6|0+SV76INJSW&~Z1X1gm9amWPbkrx&v=3t-d`kN~jb4?+u=7Uvp zg;iq$Q^r9<4s{9RShyy5Bwz09_ZV2ieH^?G6PT}#L*z@ZE5cZPuF2ljifK%VY0y#e zToYYDd2h*6=Q$q7Tf#!YmHRpO+jZB5u zGoz%%Y=8H`&n+@@2Cm?o;j({i#bO?vD^>s1TZ7E=FZQn~`P}EbffY8Hxp8_k?`WqV z{lgDqc1Kw+Wp|Z{tJ_C=9h8{-nM!rtex^5PaHZhbMBItQR!XepsDAB21=oa8pQ_`1 zbzigKx*Y6BPjgvTGqH*LYIHNN>RCVfEnh{%A+>~=OC~mzx@}qmuhlhq{u1mG!=;$H zv^mRD!CC%#_BemiqtV_qn#`27g%op1l%`TYjVyN8Zu0y-;E=f#GnY1JnZ9bE$xLQ0 zZO-z7mzOxFU(+Z#1tWbfC2s@GSu&+*-@Edj&{+zYNo2LHV9t`+N@gRCLf*CfE@HNl zYcdLXt8raSO)^bs6k>yqSpA^>VRSGP(vK3||BjXj5 zGxLEP%BEP(s4lY~y=EY7{_;=QDEm`ce@4u5niwTx!&aESBj(5ADGg^Sg zBCBnMX_w7ea&P%8C{^yZdHxgcoEzK`(x1x`+Bdlhq0&cl1QQZA>Tonne;yGcrw!_HYXv%tcp7Xt#Hn zO=y-=zBh&noq!0pqN}#Mf5Z`PrY>W{RJbt$NXJvoQyEF zsZwrLlcz55Dj-gHB&aavLWQ%;t~LQSqnw$VHWe%SN5<5Kxe*@nwke{>D`MId`z~Qu z_VSreyMw`B@e#Jcwo`k>hujhqrsnhCw8~>%R6a-95F^@D6HvMj^4q3Z#YVIXI0%MR zCRZ*m3O*vABWhAg>FboPFui3aHKJIfv-@`nLzvoXr3zQ|@~RBaz_k!YP_w6438%cJ z=ChPKnZl@Zi;N;<%66XWJ=gquzaw%dFs;gp5yKB7Pig@eKT*^>aLmPj{^%;8!iZcw zQt&ITM;o*jcl*gG)_{);nQ|y$*g->6N>B7p^j*x=d~1r*gOwDer^`maMWNX-o2?Y) z^3?ZEMzKcUL8-&2qZ+5;&bNPZy^>>R6{*CM@Y)z^GAfm;TdO3?EwbGnSBl9@^I6oO zKV6-}lo?U;Ik$-U)R6vkHT}u#X-+kq-H@$KS46Fpf8+0Y%vtjFV4^kTMP1E{@)5Sd zwv7eY@J!pI>!GvI+T82O&Xqa4>A6@x*!z-y!M3x5?#S_LF{vr47@0g%*GcZ(qbt|@ zj}NaKY?ux1m2$3fspE*&uru;@4nJrnmAKcEjTfM9&1}o{*4d5u9yOoQ65>3qQ@#J#d@M2rlp8@z>F#p95xm`ml(m|UbY8e2T9YK8Mu9r=)V<6Q9(R@kjN z87a&CFrT>>I9K=%<`tQ5lpKw|MTRz&znzR?Wx~`b3 zM4+P}ELt^HDk6T(d$17scRzf+m;0UM-z9QYdaFwvPq9WVkZ+XyM6@cGlC!SkG@>## z_bP3d9_pu$?ycrtha)1T0U}fIA8eRXk{kKR0ePxvwN}V?FR~>6M%-&OGhs$F`g^qY zdgOmu-f6#n?tdiNLWy-{vPKw4vsKzUnV=obtbIAOhg#MH|*NlWZj$%?sdm0?}E zwdo2?e@dU2HZ?V6#hL40*u5KMjiDx)yOmHd zJk~Q{a*_S#>{rM5q1bab++OU~1((4TBYTc*qOtxDBm9-!SNku5XJB%%XhNyPjLmJs zl{>bLK5gIUoKkVP+YQVFQ;b}%O*C?BACrqYT~wmcflI@+KDHgj_LZ#@#rAPsOf)j- zXwNyBVw5=giS63q-mO&3w&gC-KhZu|np|X}(XywD<2UjFAirR02M3}inXFUl&n_MP ziJ!L&dQFS=+tzd&XIVTsH7RxJHA}g}^{TVnSDL0ohQDV^dD;sgcc1nGu$ot(sT<+j zxpZPjzi2hv<{sI`wRc_Qjm&N5H+Zroo(!c^xjvYCwADpJF7b{Qj7~m*nXoA4Y`!e? zG%)wbYJ7*FP^(5e39P+}qW>iwLj`k>tX3*+m8)B&_hw-3k=1t3xs=$ezc9+tDW5e> zX)E}MT#vP5BZYmt&|$cQZA~>h!xERC*lkzyuwu zm1=eG4mbb&-G!eaOByqf%p@|ah*8?ppSr8hT%61THObT*t8E7I+$(mt4o? zt_j!U%bCuR%BLsC#(Pfcte4gmgx8_q$0*M_)_u+#?%sM}U-AWHRblQ?{1GMHriVE* znREn)JYtMHe(jQEw|ECIohOqOd}ZNxzVJtP4ffnF7Cwu46a^U z=ib^XJ9q_rA~T7s;F{2?--fsik!!Lso+Zp7N)B|r^E=msxA=fex8J&!!2`1PT4ZuR zvVv<;YWkUu-|(`GU?})R9)&TV$lM~Lwnpwr&H&Lk4hk;Cd?Is;nAMzJH+jyM>cO4x zU~wsVerP^XJ{xYaca6HvzUQ0%WR^88}i z)0>D!<_K+eFz402{=gA6{GAwuGhrzHbDj5vxkaUJnbq0f2Y=Bs@ci%*@tNmz$qq;1 z>_fuc-e9=@`#<+3U&r^{YRNe-Csdp%hHWdgx>ef^50zi!ynv@q=qu>6GJJk8rN?w5 zMpW~L6dpbDk~0_?Xqaf^QWo8)Uf;C6ux0aw&K>YBG117SEV@yhkykre^wRTAf9&DL zL?f4CRuMkoUlPf(kIZn|K*2|t@ndcgyDp5ZkgaZ6=nO-=0kea7HI`vdi-=F;v!GOd zuQ}Owj}4qBkkOhwajf8)?6)&Bg5o99dC$3pcqSr_rAMnW!QL5&vxPTIk68FS$Tfk# z!=v{f*c-6!H_O+sLdZPr8MVKgrd^2JwrD&<>Dd%w=|2v;&%$3jOgukU=E$X(r$uy| zt$6s>@gdzNYh*T6Xj&E7)_&Zfu<`T$vi`lWVJnOcn?l^sWxKn!%Pe;)6m~z1!ln>g zAh(ZKe9WB;g-!e!h0XOrk<<$Nh*8+QUn}^7m*mWHPnUjJSsjhS_J;HI5KmR_%ucc2 z$z)ly>AmA~2x(81*oZuFw&H>Fo20IX_|FW#XKaM6{Zj9@ez@~2|G944{XgM}vlYgM z&GqSi$TgR9^6K8>NkH)%8bUD6ndwW;OuH^)!&Zzz?CXRT{eo|?)3{s@O&Bs2Xmf;QH}ov!AH0s+&|EU=T-2p zd%k%vwt>vNDx@-NGHuAVm1>Qda5K!E??6YN&lX~TVM1^o(J-b=}6%o3)&{aQ6H0auz~o;Z@zJy3$SXy zq+}!HQVg@(9>-ahZ(cRHr{5muve`W?&XTD~t|{Dm*~i|?Zn*a{Wx8Z)lGRuj{e76f zdeuH>A*e~FBbl0HHKMl8T9ABcz_re1kY`LsGBwF+`+3FGBrBMpRB8ZLAa{U6&I64r zV+Q?{VKwuRN|nDM&t3LdgWy{13m|-nzEVs|GJlB-m<#s1rEr&=il-0T;ChARG0()8 zv8(P6xJw4$F5x3=gKdM9eY;Pv`l8u>0(*KhTgmeTo@FRC@`LWdz~Y8}KipS*|L}dq zH7RxI(=)w>cT@`2J%(MtiLJDFNFp|sx^G}5@Aps73=T~Onc1ys;?)+HhW9J0nYmPI z$jz0!ZSR~J)WK|6<@uQ<<0K4*>ChEp43EUN~~qhC+)-Bmdszm%UY1-?Ye2R zUkMyCmtr#0R^0sZA@}x&kVO!2cd}-&^VjwvNzBY8tC9c8TkY=seuO^*`59(hj+Vq( z_nFLOHFnQl+ShG#XAOS`WM#T(TO^tFLA{XIDKv`Czh*+1Ws9p+O|O>+L*#V6{>| z!p7n=MmuN4Hd3qSl#7%3%ao0H^}KRIuby)$?w?W}m+bYcSGv*t0plxs%xT7=GU7Dx zM&@iq#Fk+l4FhTOm$40BY}h=dv0*Fjn)HT$@e^><#y++ck0T{azsrs zJIJ#>q@tp{A8dmeNVaFrt&A+?S*z(tR>)Jk{+jIYK88neZYgg|%QD_3_;KVZs_961 zifV5b*A%X7$2)Xm_iUmjSuJxz&EMIrQhA8Zdm_pd!98al6499l2KhNRHx6F8RG#fn z#5o|i6tj^^-Cjlo->&QzTz?BPA;ff~te&&lR+x5)|6J~j;~7Ysjm-VJtSd9s3*$I1 zlZ8^$(X7Z;JdC{uN+X}X@VgRaW;jHn;B#o&6nYdbI?_;+c56HCDeGTy^sqY(Hf)~K z*sy6zVKt$e$&U^aGRp%HXUhf*otdoW?SZJHXUhfMBiF%dklE$ zd-s=h*Tvs+!&4d?Hcg3h6er^>nH@BrMPYuV zb;f!+*Jm;q#(R^8d}2CnsM!z0`)NiavV$2Uc(|HZJ%KwguZXG1h}Y0u#*w?~dik%f zck@8+aH){YQ=-mI<1Ej>ZsvdNdCC1N-pyQdB&@Jo74PGI9A|0z#GIwH|71Pqdd+8Z zW~1C^rX`rErTD~%XpCr6R>E!J_^K3j7lrkJ5^N>Qf88-6d3ZrI) zT){IzG~z#hR2tF93Z@&;lBVCgWp|w#GzB%uL?f44yAzo_H$9G)i;cvW-?;g$DhIU& zTx==06!Uk|U;Pt(vvOmq&|_JGdU~pnauqokJ2d7krn=1F97GL|5~P_7S77 zZAi-{rb; z?|HOHXX#}&629$AY6laMWG3>@6?q3wN#v~4*%k~BDJyrfTYJ=}TR-*unq!Oo4Inv~Lu5XYJ@FXz zeKf*tpS{|B8e9f5iR`s5`mRc%{*n!cX(DK-DlAiuCrK+5;Vcr)MyaAPk(JNt;?9&P3_oeI-+u?=3oR_dx!7kInwo$I&g(IWf~_88eI z^rhIOq~R~+dgy1Bd^RnS&sr^?jo;|0&MmxN^E3U^ajxWuUR$!+N<(bIt6%#9@0;6) z`t{&r5ry8jExlF7-j^S@_V)L5l7D_C{wR3@To(GHY#P(p#xo18x@BRe`!OgzQRuZL zo5sXbB4#|5+P$^4H~I?4IU16H=195?Z5u>NoeR9oTZg(|oE`O}U|NUN+11g~Y#Spo z&aC`I{H8oDZMM>IondxL|IRo^iuD~NwXP}R^y56jL5rWJ!!sI@ znPP)!OpEc9T$3JhO$JLE{TTA?!o7-uOW7^F4c^zM;eCzzVdzh`!M0O5mjj)1S+CqN zjcL=Lzx?-@d&4^0MtH6)M%3802?(xN?j=n?$aT_GXw>@XUwPLW`cuwm(K(aDv(O{6 z620vZ3lMyOyqr<=K*U)_=jzl{HcY!FJmCVwO}G*_As)98zs(5W08C>t;|Y&Rc@->1 zUgs~mF&n?`=BHtz7$Rrx0uuQ=Y7r*5+J2FMgk&(rt{}0lOT1hgLD=$!ck# znz0~O)V_GQ`|Hkq&Yez_Yf|%~tPXQPtbQ?8T;6lF+w_kS?o8z66#vJFw_XWHEKGdb zyy&26`R`Azmmv7ZVA#N~PJ`Y{cHA>Y9J$~i0>W+v2}HlaU? zYeJ6SpN6=ZlbQs#W8ZM*H^W?tv4U#?@%!K&Co{Wh@bQ$M7X8W8B-ey|uY)uE16OSE zrz2Ack2&))$|SZ{jALaeQ>9X`v|gNia@D8)L0mzmKkL6-HZkJiHeqy)&3GPYy}R(< z`*!#f!Bg{*{#Tbv?6@FO$aBSzpl#3DoqgVQJN%mPlG#TpByuw&1@}p*zJE=3S7qe8 zMQ9Z>n|#LJCI_qgs&tKD{J6_2A?ZI7wns9D~-@R5Cf1@I-zi-~tZ zGxXv^&_o(?0xs(mT(W0^|Hsnm;hvK%M(2cnPG&CI6ARzOD@}rAt)c!p?3gb3h;k+% z9{~LF%v`b>GcPA2csj%JU%@Wm;#nUuJ15EzO3WpzF-z^R#XtX+48I~~6Nu1AGb$Ch)78$Gi_>e>05pM8~;(mZ-S=}mtrpv6PwsK{Pr<^ zgQZK7HKCZe6GXz=oRHsSdsYkSQ7zB*rKw!r%vsueqLDy>Y-rk#!<;3nO?i162oI$r zs+hB6wNZqA1MHot=NZggvf3!bhIsO|g1JXl+Y0taac`NqRO;(bp3kn^V!pHRBJiS= zA(A~pnG=ALJhA%d3g|T7tmuw^Q z328>qu!A_`cSX!u8jjHB7GvL?FTOjQLo_yQ1;&ZueZ}tC*b6)6WMrIZ6Nbhf;);$O zb5C8x`6KiixyvHW6S4 zm!Nm6S1lV%7&5o06lN2?nN65h*`-YXQls$T84#viue_->ZEBH@igz=&j~InkM{~9G z`Jk@XA`fGGk;1x5Vp1+TyCyTD#T2S|@0wsoNXnX)a4Fl~%wxyg!?<^&JH^m=Hene3 zJ-X)cjtH^BTtWM)@jZqe5j^aO5KMg%cRTfi*I{gSu<_Aj?$0`V5-IFbrnML|fKmJ9 z8z=cFh(KlsnFM6sOR4uZR}Wr3tFE&daobG%?YM7IqUyTK!x0ComD-S~8a(mL9%uc8 zXk4PREV6=Y0$Y2{7JvJl8SZO{+h*cV#wa^(>>Q3!YQyx^C2u&*6k_f5&ttCHnbfd@{Dk8tUr391LW{gO&3-0wy-Wzg!vGs5$5v!R?oq20 zaf?dbx~@}j#oh`2P0u63jWRj*zH?DRk7Vu9>)KDc2d}Pg=y#bP?aHn>R90|JSlMn> z!5gvvCx07eMNI!mG+>KI+l8|truVP{dCLFXjBXWz?-0Ahvn`49D(HP_sNkBAhvm`= z-jI@?{7;dMo$F=B&$iKX)FJnyUip3{aIaj789$rr`}yY8Zhp0U{E^7U&ZU^~v$?*X z*Y$PJ8&ku7Nap860y5)gbA4szG4>LkDYSk_+65t|o`_S=rKy%QTtbAVN6H(GTz zN9^-cIbl{9p7s>e3X_33LU z<6Rk%u|lt3GG7J`;F{dzrYmkp{sZx9%+@h;$MZIAL4Mnm9;-D$7rmVi)+z5zd|;nD zzhN7T(ql4D=G1yU8M~51aV#FGL*t8;iwiDOK zGa;TKDK)xlN53+%Uu;753nue;7RHQUDvmyg;^?DUsyufsHSvCka4Xfyse>4-p}6KY zjc3NxHbK{9>Kkqk&~3dzx5-?_WDzt9yXUZx)Hdw8jKXH|;(OPXd)FrAjKb#OX1=!9 z@0xL=`(WyB*QA_L*ks*p7gzSa`1BihsW1~ng$b*)c4x$RG5ck%U-Wi1erMr}4jqk{ zGOh_RKiIQ4c>Nvsy?D=J?PX^hhO!dhcDyfgNDeT|Wj@FG;bIEy41Z;-G5??)L%9_5SLW~1^SP&=?JYUjDIC2T<_bCbh|*$p$jP{x zlVRS66_|6R*dOi*{Ddh&1m__|h(u*_Q~BXeMr;}OhlwreN4(3iCp9s#Wj^N?F{yBJ z1(!0PrQVY<6E-KInTc4D)Rcw%e~R8XA(s)A(Emn0)!g`;l+^206lD>FwG>|@WhE0L z@*9R%kdGJ=jI+Io;$(~$Ggs!bC_q!WnpNW?=CfRblU;KurOB*xVoUFGooZEd1=AD} z?-k|i)9lyZ^gMNbxaZPB@QJ?W6Pe61=M9R~nHGg)bWCM+WJ+txFl3aAaz8R&<4#nxk8L9ffq-`KzBInvVO{YGP|% z#%|}KK5-*P?@)#E-k;YI%qLaukCd|fDOAYW5ZUI zTjlw;-cjsd3?B<~R_s?}e;eK(_tkLgzuMO=g!k2Au88Zh`Kw|uUVkm?>t7=Z&O5ib zRHDl%Q4Tt`Ejz#WaqhkNC1>hK4+mTq^HL@zjFiTteC%Id$vO2b_*)GVZCgRSuDi-ASZbpMWbWSZ)Q84Dk=7#1R6!abw|>>(Xw zgBG#rFT=Cgq)NQ|X`pvM)qW0E+f*1ZM~i> z?1x^Z3a?!Fo{g@IDJ2TCV$L>jtu2MjwslK1y(MZhKTlWame{4(9=@%|*@#vLn9_x?p?#Q5pzqj-kw?yP+Adr;>JxarYO#Y;2{%2JDUVD><_a>DUK{WyC+ga z*Tbkyo8_m_5#49jXRzJkc{?f`%1b zlTtJ8&hV>Tzr|PZ%JArgc^~G0;LY$BCtut6sehy7Pb4acc^~G0Ftzw@SK$*k?C@^_ zg~X-g8Krq2`D_TG>q_m;UVr}%KNB{%R9->F6jQ|gLr%a-Pr6lW<-6UWV6KOGAHI9= zJuj_266d5X$7ky#v@zcEx# znu2&Are1g*)+ppj&Ge2%><|ZJ6w)fDTbS74nh+m5c$@nmcF4Qyr;Eaz9GY&is28Go zlzI-kpS}g(-IlopAuWb9WdTx^^#)hq68@89#P$;r9kjcsw-m@v0@khy9-;8A0tB>)O(9xh? z?!AQB4<&qD>Br1p7E8ua2{PPS1dS|3hw%vJT14i(C`3f3N)1ui`9rs>aVm zO%5;zz%?mV?Y=So=dWWwx;U$&-k*^<09GSUQS)WV1)nr_D&m>Q{(j~FSe?4q_#mW^ z;Q&~{On|Lm-@oMh)X_X#)A9L5bty{?FPWLE@$8O$|GHkeW5i2l6u7Tq{z|TS)DJ0T zsfo+N`~kadE*zNYe}rq!*Osq2d-#=l_1{0aeOpxsChP>cOn!OxzS}V zYHxy%o<>Nlwnt0#>V55&`gNl}9T{S|UK#aGT+%KiQrLH|)QeePyVrcV(O>galzCW} zVt>7@Xmwh?d-W+#`in4Tkg-9R9qmF2#q!rv-XEpLP3r9KE#KU4C}Zkht0t;eY#&l6 z?A2#AxbQmTof*G+$(xa7lS>snf_{{bvYh^y3NcK**k4K{K#Nd z`hs9Q;)*_w2|7JXP4{hUCg6A*X6|g50C~ch^#FM*n{P?v@7J>}Q;Io&^nRH21pB#b zRw>dIX6BChSt?SCZJ$V?Tg3`9(@$5JdB0%-r04n^h8|w=zNX$$#(Qtxwb483rFfOo zoG0wlVEOxvN7?rFvqHY-`kM0?jz@r|eAFMKkmr@&7l8fs@Ua}s@(M~mcV9yU5BuV| z6sy5bc#5W0?(8Gx>{>PbUt?DSW>s;eOMwPK78MaUBt(NNo3aS~?uDl|XmH;! ziZ()`V6-0W~%V%F?%9L&OM11=B9$l4)5c2og|X05y_xZr!@) zKd))V_kEF&r}v%`yhv7t+ar7!ZCfev`{>TFpSRl@R92Ak z1KKt#t_RA-kd5UcYcYQ@jj{$-)1-gJN=^0*+;1 z+3DS9@$*1^S-$7jD!DDK8bVZSL`W-K#1pBBsTP^UwVV;CRExe$XJX;DG*PMYg$8Taj!YRtA3A3VDV>{B8lfs*}gAp9z zCXI4~3NIqkK4iqiJw>_pEnMs!e75qP%1{V?Zx5^Rrf&u+ywq^`xIGg(R?xV(e?;@- zMn%WHC4hQIYoE5A*tjJtQ& z4j!R0w2~`jXvA^1)K1rPt>lWrtINJ_%<^FHQ_F)d*rQk4uau#cUu*|^ytK0>X@_VN zTKOIRW$oZE-|Y`Ja9`y`@$l@2M$Fx`BPu*@uzinsI8<4?gZhemsWGj$w+Z%->=}H{ zr|2M(2C|XtGi=REGTLD}mQIt? z`48G*D!Lk`(i$82&M}MQ@4NH*8S1sZR?cUjvl&*-X1MzDFW4rJaP6R8O{`9W%kiIAwuhbG6wb7>_~f^ zmmS<6yh~#+AK}NK)(xA`Ug|4p??)jaxECeHj?4^NH^f?%&NvqKkvP4MpG`i(uL6vf zRPpyyr^I)k`MbQGG@@PmS+C`?W)y#Xl5w> z4|ndLOGkwdbwgt||LN7tv!9PIFQRBYs8p5oY?>_|H#MFaG$JXZTYed+31WGqvCMrn z^PA7d7d}8`s8m$O#0O_Pl~hF#xS{cqOpDw16kb8P8Y+j}S9?DAV~o)H;F>=y&h)+N z>HmXhZBEGb|d}JX7A2Zg9cg#b=H^O=IPZk-^k|*2-Nl>RP4t@g0}--t8RoSIC4> z)a;g-;Ks`vjrV;jYTGiC* z^^02BF_(9Vxh&N5Xvc5etD~(gM%wwbs;OUA)Xp|p(>X?HO>f)#W6N9IJIZz?jtqY( z?o*KMGT0$_W)S6%5QQG0f2o%pdYwa{@<;o9PG}oU7}GQO6R*y&g9@LfUTZtN-9C36 zv7DRfAM?@Mi?Z=kLmdy%#67)KX=hRVggZ$~-7|Fo zMI*?@d?M<2h&JYl)+6niCte*rOnuezbwc#X#yyG}8={T*#p%G}TU6-R4ZqIqe(Ejg7EbCy~^ z<1!?6v?z2>(XPq*FK@SxQ#wwuZ_x8&d+igO z3p>(1il}YzEKyo^Sv*T1n&SIRt+d@*Ey{eGMDg$^WD$Wm88e{Q2wORAai$~t9~{La zIUyU5)LuQ~c}1&a^-i1?{kW!f<_|QN@XX*($nrQZ%k+xJJmw@l#l2f^?ZWKGy^G>h zi1w6U;jG zbNdS24Tu^P?-ptPUl+U88P2FuOs5Ct1=|+ywFPv?A+FmTTV~9pE-?agGUl;w*95)J z`P{Y}b8Q^6#^;L)7AjkG?3vj zk9z8Z$(f~5N%U*l$$_a*k3yYF_b%#As7E2XW(4od^GXBT)Lye-gto%P$3b1?NC?#B zQ8(h5$j=PA4EaUtI8t`?InnDiGVk&%D*BFZyR-B;l_0z~sr4O?a6KT(2(HvT(j-1$ z8I7p98~TPDHt-EcfdoS^+ga`7x~}u6QjCxtJMrr z6xAAzYdfknDr$sQUqqEbTcUb&n8QWj*R@I_rN^xo1;d@3^E{#h>j$y(J$Zb=Rr1#^O;lKH{2{BpQUU z=hU|;d(NpJDZ43{-R1nS_kxZ}F+r6?GpSoIYH9a<{5$u?r_3*9m3}X&Q0y=llYB}- z`NjWj96b;Eq-g#>q+sRvfBYTmE8p=f8K;sDk44cr^7RiFHJwu@8jEX39>VJ%sEbg9 z4T@&{=A?7NDvD^0eS&=@2!7jDJ5tR9+l1|4L{0jKYPouX+!ptt(`Tqn#D8?XD~bUB zF;Pt7mg6siCdEYMR3ifP2tjZ=s_3NNE2P)1V!amB1u4(zI9|Jr)mQ7)S46O4=0~m8 zCgKLh|DjlupjvRect1Q}+%6>o0i!L|wc=g9mU;7b&bVkVY7o*DSrluUEFMF|-QWayE(H)coM z7SVv4OQQ{}0sz~O3_X@7&x2QIWa5#b$MQ4+&tO&ks#dn5qzlb(_1CKMOp7}=*@Ndd z%RTx{hxmR@zwZ?pdMw+R59#*0I!l{{jVbDoXXx2S#`2J@C(gI`dRy<6X1T58Z6iyL zWpMN?Up7S^rdUW{F6*1jiB1KG%YZXqzHDdpCHvt*+BNwa{(>q1v*%*<`QGwAr?BM0 zp8MLmGAM48mAFx&TIjlqI^av-f7vG0DuB0SS#MiW|FYD2^(c1&wAa3DdIn4Cjyd`C z+z!q5OFMWJi1oVRm|KEPFKxFO8Xx%x&(L!p9)2IPo&jWL(0W1d`3(ttXJ8XuYDS*?vK2b>Oq)HYk1`?K)7zR^ydXQ3N!?JvraUl8XJB zChtw{(fkIE(o26&HH5<11_w3t;x)>-QY`TP2O={gmbvGU88 zGe-|vyZQ_|0gCznve~FWkk|C~%b9lfuI=_9Avl$1{!tOoh+<;T->rP6(6i@0!Z4yy z5lBz)6#5f9CW$bNsZbFx=E6@WWezktHS@dVRz!ai2~)Ahdd-;$8)?oMQ<`Z$Xrs+#9qvaZY$`vD02tJ_}xy?bdgs_1m;AMho4;> zecfY(eT29rwHAR2pwt0V5L_L-e)dRv9`%)hRHy==IzW8MhOy-p_l&YV34y72%zG6; zs{@~{A6s}9A^LI|kgD{BV^XC7+h@#2mo&-seRx~+1f8fth7S3C&FK%HTxqwRyC@ov zFn3-BKz?6y`sbWK(hfP{>gZGAWH1%-`_{15^OTy+h1gd8>F% zL3RLH17z!KMqnx|kGu)u85R&7s>5*rv0b7Rfrq!=70jobHqN4x-pJ`AkB{nrG3`#O z7aXMhqJKTTv(gPvk5IKWcivGNls(ca_bJ~Vk#PEKWuOXxWgGKwfeBBesE%(uyk8NhHooCeE@X>%*mJ@>sCZ7-~Fy|D{;uE51?*b34&i1_LCgEWZ(`YY(j!t2OJ+E> z+eIA^48Mu^i>;7~OQoH~+ty*mL3D-Cd@hNhcwq{?wrDurtHaFLhMxIWp$@?cs9V zhnVe@Y4(3}wPIdeo=3u-$Il#p5wtrCAZKN2LI@fW{FaQ}d&vHLH$^gUhcZ_a$b};UbMjA$|Ml9is}{uFxa+nKN%FtF!Q;>`ln(Jp9K#wtd-l+aU2jg#VOht`T%wfpvFU@NRWsevuK@ zeTB8s%&&M8tc&z%Sd{R-H)!YvCHi<Ij7o`)WrLukL< zykJW3YeHxqR}h-_odJw+@w|o*4NR`0d5nSKWnR8+UvbD(dY6Q33-y4isfZd8Lyx~y46c_QGut7sO|&2G@{jF;Z#I{g#c?@>@jxCHxf4%VoD=QK*ncSCyM*GqOo2Bug- zRx9E9c%2un4{x>7yrGn#5m<)i4W$fS_Q}N74*Oxh<&`rZ;dxQbGh!Leg7keN7J%j% zsjmXxSDH7Jc4$Nuv4i!V-&|fo>>#p$$PVi9aT<+}%DrO?JJa|;7LecY(ibj^cNHVr znC|C}v`tUDI@6R8$O0k)b0S|YnjH|&;K z6Lhon6%Wm{1@TSF!U!T7c}6Zn^ChgyJH1xW|3AXnqKhClDx#$&B}tqK|ICGf)FW!v z=KF)wibe8Igo;Hq7 z2|Oioi<(dTcc4S4LTsOCI*p6WQ z&pYRk>q9i#)Dq*@-zQ8rnYsIflbhe!e(-xHFehCrw)(`{mibDvhGZdIZ-qOn&+j*u zF{lwzien(f+J;(D*;W#|15lJZ&8fMXYTyoLCJ|(oFw8&wK8-~ zd>LGmn##a@mlqr$~6;lBEA$tpXFSZ7PDvqC^BqsFmwBseKMP3*?!88n=YLf$}WOg%8aRo?LrY zIFwH6A=iVvB>~gel@^h+~clvb_HabJCHfG$SPJ2U|;WyV9B-Q-bs8 z{5kJc(+He*rEK4`KBg0=^5;K<{m`5f-T1gQ8beEY_}_(O8QE(RMJ~M8i|jw zCC@{%R4u8Dn|Ia@{y}AE)=A3Hh(UDM)}^#UKTil}pUd;`y{kE=h7|Sm%0{;YO9`R* z9qC=o2lYSyycMo3ZapvAF)iVDgelSpUd^QSnklNd=l4CfpXc@tdOnEmy#L~gi+vex zr5A3=M{Z%uK*~Oj?z{Wy*@i)1x~-WJK3~m72!kZ`VVeP29OQtI;}Aq_!vTwf%njxw z2*=h6i-XJ!@|c49hTsl9xXQ_TpR)sO=sF5@?yai@^K6$^qQ}A5WgQ655Cxde>&cW1Ivj>(BIXFMMiz1~XCxfXpKl9p!T~E6C4i zPG)TLb|Y&wglDB#F2fw_I};Qifh}Cifj>>#Q1Ecs;!($SvSo zf^QEo!bh!%{yJ%9;Tqa!iF^XG2AGrYTeqI`v#mJyvX}!vgk}(yG(RVtN_UxF(yB9! z5ApkTD$N0Co~`_PIPZ?mJBA6fQB$?T&MP)5ji4odV!{w49%l%GgZ9WC817q>-xOY+syROET3 z-#M3>5Q0WTH7_;w0XZ-JB((ysFVBMn#NjqU^JO&j4#-Q3ckn9l-c#p6yT@cLa(-k*~MxVcO z;$8#qe`vpiv~BCPZB|U=OeL4${6X#YN!!`05bq8>I*s^<;@sUvTG6d5CsFS@+nN17 z^au4bzp-q4(0X4VJB?bdS7B(m^7``6bIP132>m=>pgC~_#hPSQpXWrme^6SkeH>ml zr1j2^a{EZc-{JOgzd65_&XHL@1O7}L3Iai&h65%w!W z81PaMp>i_CkIX3CGBOw4M~XZ82Ff46oS^CS>|ypn{{v?t0K{*Ln@i&T&7dM9IuFtP zm~@82TA}x1%w;D%8!_(NL=(RM^Gjnp5j_aBOLZCOH6WtTgoW|y>{KVZ!9J85>}AzQ zw6*|n)M|TB)^lw?jv)5q)ke42XOb}}mZgkZ?PVmMS2y;&(01l__+HR0PxSLb*3Z$7 zMg-<0eZ?ydTH%PmoKj!SdSA^)gh8~n$d6=S$!!H_kxRXJ7D78ptZ;2bAwvHm2>m?f zuicRe8Vt5~lHHD@2rY6w1{XbkYi8XA^P`#cJTMj7(WuZ#ow#?=c18rB$oBVk8q;m` zE_?lfg0P@Fujj|6iW{PNr<=cpleqBhhwSfG^$ph#-bv?+#M(x*M)-Pht$6j4{d;0l zV@^Ij|Lf22`juV~yrK%fdn?^wKdSL9K@q*}+CG=JU0dfzdP~IecJG2)iAE4-`QWbF z@wp=XY-J4UcR^Z0`bTQr`M)OCYiiH&-)XP2r5n0K{*Jb@*rjAA{xk&GhJs)_@!+0j zxoh`*WY4F&Aka2Yb|S1kE?(ck58H>Ov<@n}4Q6e$0OK20L%Lx#hS4%+^JXRfTli)kmvvLE&buhCngtvf+5m(k}WZ}nAY zSbWTGMmQTz+jhPk{O)R7O{_DG_~K}jYqON?Q2t0Nd^Y~?ZvEgsa;Y6ctRk^$7{Pyc z?{0N%+uKpn4z{B1KXF!KUqwajaxcwkXunBVXK(vxdk4#VoX%KI?Ujjsy^&);$S?VJ ziPY+8+BNycpu27KGiF$*R5r*SxX8ui zz&YQTH$ItDSf}$JqRF&R1`%kND6~B8JljXvJ1`yrzzDE?w7nx%RLuyi3D!^}(8fXA z2iJCrj5nZD7=AD;bMDt{g$v7pwh!iX2`L;UV8N^dgKsn7zT z5fw^FIO_{qTL#xoYm*s%{F3M$TAlIP^6lAGpSWj^t2RYS|Gs5r{Jl>{7j`672G}}8 z;7Tp^;ddCnH(+L4mmvtf&TrXxQ8?_1Oy&oQLyzy3 zewXmcc09FSaN*px;iWBk7ZR*RFpBirmBh1*-xP&_Rn2o8Zl?Bq#WS{ES!7kyD^bF? z2ds1EBRt>kcm}^lB|4{Nos(@Gxo<+|cGp*a?eevX-z&vT$m)}iIPxs&d~%s9xde^C zHA?1lStV$urIQ065nEeI?a*tHv_rQK+o2KC4xYiK?EG3`P1q+-+mWn9#uP9Ay72hX z)1t@7$H8%qbD|!DSS$2vi+9w`e%!(_Y=?hKTNjOyz+-cJrUM2N5Ia{E)DKg3x7L^vuLen^j%Hhbdl$dd@JH=oy3Vino*L77W*G zFdKY9`;b$sSl$Ic$^ZHGtw%zDfVf{FEn~V=c=&{nZj>%P)^$o{OC{P|fro!49 zlkB<=m|N0sgS;hr-1z6=JQr6hH`mIWs1b{a*?y2b$i?v~2uX!CQN8Yqpnu(IKzT<6 zt>5XlPpW5okp*xISpb-?dV=u$jTw62F1wTTkK(SK;@fWgjDycW-p{jQvH!on zRK7_sB`K7O#hNE$u^C=0R#sADVxvsBpu|3piNMz}6@r2m5sQU{ERR+Q25}zrGl-bL zJZw0X2>g9VbQJWLLF7|OUZ%8T!lKJ6DAoHjM#;Rlu1dSH4tlx!pY{6PwvG_Cgl?&9 z?p#|NYsb#jnK~7e1pY(Ce){|uN2#_#M7N_FC6B1bH7|g6<9etH|6|Qli3KC;WLlbA zx8j;(Z8>aPB=9K{L4Wct)n4|EZ3Sw#R9>>iAk~I3T`F#?{H(U>KdE}swv}zSY=mu} zSj@&M`g&*7(h89>eU7b&t!u-XaiyD!+6xiG_pI^Cw=VZbCOZ9-lGq=Jz`k*MFlG^{ z1je%A>>k9PLbQFJL8SImU+^FHfsGXthgLVEKA*{Bn)>6#w+jXR$@gF3v1@v;tR#PK zZgTL&&u7N2`EJTo%~SL(n4dxL_mQ7$d;elew-iPRBl^%Np+7xJU^HL}-BR&LNQ)W4KKgdMx71djZ`pK!#(>CTtyIT2$GJi1PDMtv?x_6$eqr%Vguh_mRJ&|&j^ zOq*9I2EJP;?_W9~J@}~nHNY=wPSxhg z+| z4pHBro=dof2RWAd&Z9LEzD+&aO&&Pw&w8|3a@&-*qCCvkOl|e$R|^+R8zp;vH6V>` zf?utjCG_kQi>2wS9Y>}lS{J&68Of>B{u^p^esbY= zFL^tT|InEeajp#fz0*dCD=zx1=)9+SB-+_>&yo4b&3%@tU51MoeqDQU)&1>d`ze$M z%$7Kd&Z^ZsIjihhl{fc!G>fL}Y#D=@Q_rGi?h1VQQA5#SK~FWy?R+yY`S8!YdvWJl zn-Z^sqfe+O3UYgi>jyoW?y)2`lmdU-c^wv+RSj1IL@fL+?b+{x z+G?R`D|~~i0j3oACoC>zB3w&!f0#WSzCnb$;&55iD5QUJWx-fB{7)+mu2D9eJ-1_87z^_b z{I^DrjdwctPRXU)^XCU%_j~kefNPWuXXPR7isPI(WcDe_-);tT@H7b>uBWfqhCg@gh z5q;-glpeggP+lLcYIY9DKPG9BWtZI+G-#D5@afP#`;*o;u9md+f z?AYXvYI+V1{JTfA7n84UFBiRdnzIfT$lPSVcF(I*Bd%A0f9To~qVdMB7am9R6|Q%< z4&sU$_%&yaQtQ*PH@oL^M#N$p)yj$J!0%t$UOYdcy_`*@!Z{I3f+cj;!4%Ko`b&+K z*fr5zMb&q%N~K#_uVk@)zaeg$OJmk6r)6CZgMr z?qX)sM7a5dyyUcYOS}dh`#7sJuG)b=c~wKvZDvogbnoV+_{Qc}>Xb0>SLfFfGuoAk zMJ=wO)xfUdMc?Hm%eF1{+CF=^$`9A`Xa}HL*Syi~v&2hm?W+*xbZi}3j0v0lc&cdjK?k|hZ<-u9Uaj;3cK|M8WRE%FTQ}#6Cx7lBW6PQ*8|~2u z+$SK~Efuckh&V7hCpmaU<-3esu(QBjhTeUYA6I6trrXLQs{SkOr3SrEvkwgoYSqmA z4*QbZcQ#Fy*7;rS6L60b$t;DHS?b&|mOgV<x&_x>6WdYk@eZ|Ra?&ktO@0)pH_0Miq`$SC3hTRVTJtLjGerOjTxS_3hYkmjWwCSmbB#C@WR zxUR?i;_Lq|6jlD$LDqTT*krHz8iBh>M7yH|cL0c}A)3HmwCBz?;+ey30*9?zop*kqQ~Yovf-Rb&KiaFC~ML@$ul_DFYrT>;?yT8&J6KK zk=Tz0efQ^lMHKjhl6HcF4FZ#=Umn zA6;}qn44@Rin?@icHx)@<{kL2Hd_@|f4i}G{-=)e_7ifFJ%+r-yFP(?YTTU%eyYpH zaNj+R#Ouup9R%*Y5$(1W#%lR_PO|hCl^;!hsH5L9v8EdB-tIp1FP}5@zP;C$ykxK5 zYiJL@CZV6}9eLpMN|Wgj`o~HEIeh4eU23n6DFy!YPwR+3t4u9kwZE6hU7MGjb#vNV zHtGYFuG!tYc~Bv<@=%-tRYF9}UBA>@_T3tNHpmnzOP+XfPIAh9zp4E-o)g@*!t(&e z+I?HoUUi17G5OrE z`kNi(@N1hT%hsv$hrkmAo=e<%VBgO8vsrTgQkJsOoD3(Kz(3IP1i5qH^zg^aJIVdk zNyeH|`a1W-0w5 zXg(nw(fnEO!2B(lInf~SB$R!Qsu+Q%A4KzWi|DfN?Jg6>-Xw4Mc6qsTlqq3sPTD)I zBe9;o{FF-d=iW9lpue8;Cpo7gJPEnyD3X!M-!^C&8J>RdjDu$%B_osEURp+GWXQx} zfm0EOjl4|hair1X47`7VXZ1MlsmQLJYIJZW>Sy!dbB$TyIBXFl@sdWngy$t2E-fi~ zc!6iMPCQEfuag(+rc4QW2Vlyhk@n;joBfVwwEB3aQd)i0Ry<#ET6QPHVLjuJhA2A2 z**y5G#k5L?uk?(5P@i$ko_hJ~7Zra;dv^Yt9c=ZCRMwt^XosM5!Uln-JA0yw2^+?9 z6z=qS<=H)FlehHy|55odRw{w$z!xLmiqHG|7FGMEzpeGmsR&PAHk^HqvSp`qD?}rL z`@^2F3QBCc1tk{EyFMyaXi8-fse}y|l-M&Io;kVZHR?1>9`LypT?xHKaH%TG!^Xlq zvg#pL-B&AFaHq}#Pj`5lB)RCdzlO)X-cPlzJ@>_g4O8F1*|75SAR=s-`@FLAAf5pS z!b#7LUG5J&_hGEfx7SY28EQsi=8H-(V$aS-kSUT zJhu@e<*z%$(g$+89IpN^HOCzQ))reK z@ISoeWU*>ui5RuvN$1Qt;_l4_J93$wD{lZ3&r^1ZQ|LdRC6+| z@nv3e*(Zy=)T=-LAE#74ZKclJncx;NC)U6}`9D>}SEaqhaWnhJF)fZ|@^BGwN=@0* zXn}JcwDn*H1R!Ge4I=Pd%QIXZIy--VWJhsq|3}Wm_Obb)=7-zrg=_Lf&5a#I%|mmX zlkm=MdC6McmUugoSC`=Vlg3q*BC)(yTQO8(Pn>zXSbxOI$^ z2gX`BEiZZ9LPThFDk|w*PyDp4 zmqK7#QJ4^Trlx)S2S0}QO|C9-7j~3W?#fAStMfX|B{6}gVi)o5C;P+J=N~0@_AGP| zcy>m#yW-%<3laLfqw#|4TZbudFsT{aEIFe%ZsjqVu_t2e^nuwd;sh zyL!gAy?e3Pb}%n_#Fumq|4B;<%=sKo`how=tcK#QsXdDSHKb=b8GtG~)yb{LZ=Zh@ zAH8XCeCx~o%H?6s{ah-OANPm*ePFC|@=ucD@Ti`4r$(S`0nu)$P@aH@ z6@N5IwtNRA6U39r*s?I2MoS}5w}}!9l}Cze$9o^lqu=KTz2UXB7STmy(x*|#KO@UP z`2~l~bG>hO`$L~OG-Ca*Z>f~VdO(j*InCzp!DUJUrs_^l585NK6a!a1m{%4G=4be;MbrP{SLA zY4$-mO5hI|G(-%0XqG~tTqFt;B0`s|$BdfIlD8KwQe{VZ2}(i&|J#~PALmU*!e_RrP_@6Z>M%ta-VLOC>e<( zVbKUJc?tYw1+C?M=iL@Re{!LNa3m}sd2vTO%3ct$V_&o6=68QmEfV5;MDTMf{ouYf2p+fQ4Wj=U5y?mZ&C(W=l3Oa2!(c2|CNr~b?&8Zx zQna2WMId`YiH?gnruY=uoBr1CSspf+G~Z)g5o^Oy4udHL{=LMhI)_qC>)HA*O-QMw|vmb0!1-!Q`L$XzK8>7x{)BDs$_4`>;O+36GCM>5|h zO?)3Kd*Kta#{OQ@ncKo6xnn+Y-CGQS}*XJUz8wzk>W;0vL#y&ln$Y6iFe^BjY5PC zv&PJ{0`I~Rfp02CXlYbb^OQyCbnR)v%AB&kbC5dic>itBu$57k&d+i$(;OYUzzR^5s1}R328|Mk51cZz$1o+X`iRJ-XIP<~Mv!^`?uc zOxA~a*f5X8WxehRCx3XV96@6jWp60Cb7g&P``#12vf)%Yjz&BpFjj?1@LiN+BJ5~X!019aNT$)m=|MiKAPMcjYtv+>bapCB%7 z-pP>;Vjh@x;9s-w-0;T6|KT1?p{y?o(>~Fa+|k)N%$%K5C|bGQhwu`18#4xg<}VN&7@R>!YN=MYPU8MV!>{6#3vb(iIJ$v*jxD=>;3=!pthV=pn0vT<%ITay-G~*V@a^K*b0H)anvayui7bc=ts*P2_&{|tX1=*)x=#cT8NXs6ymF`9UWO8O4v}& z$fG@~xvB@tlTz1gOXxaTd7?c#KlkdE_`g^66pzkX9{+)40EK@q_Lg<~S|Nh8QJ#qG6rK|iVdZ;>h?Urs zcqen^q!RJ;%_oanet)ufPk&-3JWu;J;tpAKtOVPQdhqIe(c?psK>j%=L@6Lj?p$U~ zoTMIWNCGnJ!yajyZYh)`TLSs$r$W3{oGWJCJSIe`?46%4E5W=;D>JU4 zIR3g8;^q&k(R@NJnvok~srqluORk=~#G7%~byV~JU0O}Nc3pG+a}XGdQ?l|z7$qru z!(lC98Av-zD~DGzTs$+w#c(c(!ZiCtaz8a+p>zsx2ww*c|XNl z4ezMV=S|aEW{L7d7xCQMn)1(pj&YeLa1>SaYl`OF50aH1NmNsUxocvS;`($wl!EBTODFFEx1w{)|Mf zxNpdq_*EYZQAQett8>y`V#%fiN>yD+>gKv_MLoHp_~O4iJCamvw;%4vOYUAkb`v*# zLj7@hQ3J8%-WTEnU+~1-mBjwKk7m&(A11g|Mn;PHk+oCf+Tz2Pf_Sy}%Og;dYS88T z!>kjW2O@YbNlo~OO2wl~|5B1AUc(EuycK1yC=Uw!B_nr+4<4v1pD62~_;7P4DTF|I zE20CxR?la{$>UCtEr0Il$X-$2%3rXN;s*YLpH_zVKGj%0n4_71<_+e-U$DtL@ZZ>U zLpWNtlATD?z;nr-cgo9mQSKY~HLkcS?Ap4G++AAeAW)`@vR>O({MBNt&G$4(4&PIe z2CZm<*AQ+2lp#l9n%g5;FSV&#b1luBr{-6bQ{#M0c12Y? z$!Z(tFMXa*EGf2xX1N8~K7uqG(Sd)<10Ce{+qnmFzp!Zmwi|^8H84Z#QiXcf8QS zk!+(R9i`lXe@y>l<;4A~;`3UQ2PMUU)Dmn=mu2Kl(`p=34?eoJmpHpiJ@rLJHKck( zVJbUH)dN4%RwU<(#W0U3ObBi_BUKOl{J&bs38xK=ce=Bq(tosVt7P5+W#KMj(wKH~ z_lV~4PiZdU)-?!}m?PSbM6&}hk}X8&arLum>A-)p+dGT46BBU#H_JmjXQ1>Px0_h}eA*M!y=jfN(>KViY7i(fM>Ib#kLW{rpp+cZ z{M;fgzNA*y-ADJ6Cr|&qoV?wX>cBl|uhDzcy@5x4My2|jWbKFP@4D|@c{|G3+jgAq znG-UtQGeedQ)6?xYIZD;Fyq#;$9F}b9Ia`LYyd5R!R^HACe8XWr6&ne? zk)&6|v()n|O656h&eYr=N+O)%l3D4gk%foq^sAqnv-9e;g_7+J&LevRl(!FV5O~^# zB3rUu^Nl95$?e@m_)MeFv0{Mc zb1m7*NVb(}-uaKB%dT4B8Jid`iLrdKc{74+Wu&o{$wr_|-=LK(0DZ0IXQlm|2O{QV z>}K>=OYu`YS{fW$<{1lOM+*Sj0n!Ph;c|+0fBT+iEZk6=;UdV2F0#j2 zziy=$SLsPnLzhL~{mA6RqDBXP`U zp5cgMN|kF&P=jIfW0`*46Pv{YD%DL{rLqXrw`A=T9UaT~>YM1a`T~ssSKku&cbk6Mpk@QLHM9=iQd=&a=c_pj zwJ$bSL5U4>Jt{+3G$OJ}C9xh@c0^aM$3abu4QG!MtnG{gHIq}`)~$d#9oO3%re(va zgp2rj@vGt8$K=TyNGpSS71YYOnx7{Zz8Y?Clqb_P+7W@VT&)cBpu{)Rw$@6{D&l(3 zyr=xu8a)nK(Z!7w9qLk06EkspqsY3>86}P$XTje!=}h&a$^&&e%I+?1?Cvlv%)>#3NJB$shQLQX4(e;7ScHh4Q`prNMY*|UQLZ1sM(;C z@VJ{q&$4uvt9LASxaX)bL9LVay;HF9>!Mupw!oIqXEi>kJjbD~2z5w-?=3A9e~_F( zOg3KY^nMrR3@*ZGmv~Q&>9X#|?5R<|6Zrook8)!MK3d!@x0hr)T9(k2&NLEp&=qC0 zPCRy9t&G`ovNVEaZ!>BQ($bFzG3tSuBDMImj``pAp;=DzMVSR}}--Dp8Rvd)yfQgvyq6s(Mq(a^>aCWl*5S6XtpYAUHU$#wnk3L zVWSHpP27PT(d3RI@#5UMP99h)lFAaHntS4F3SZ#8CR{Fl+j=;D*M`=P&I@Cq{wwg0 zJ?$*fbV5}z?)X(9zUlEONz$t>^&0$mO_r9d4Qa^=)>RYdT-!o@A4a#8U622EUh2)w z`xm#>?5g7335Vk6^)7S}Tw4>1M~TsYRW`1)PT0g^g!zKWLi+oAqgfPZ%L->vHSZ2M z@O(UH#BFl>2lLXA28-ULNCMp;LH0l0UdqyvEq(lp_?U(L<=9W>rBO51ojA$eAJ7QY zW|2Jc_jBS~PP|(dE_)*#m5TCMMwSEv8)^jRO?rb@>xwt)^^%Xp=A|*MBH1*#Vy{M^ z{wwfNONP2Fj1@gsH7~t0AucT|puUL3qBpd%L}7}hC3jkTR*|ev>9z#wyj(azxyPKTSocO##pBgz#yD*BZ554n zbFR%#*66xhX?tA6bkbloSg|2}D`~J;Q`PhWT4hL6g*rCWo{=U_lE@Cw4)rQ*JbjKH14!g(hu}!QJB6# zSLbz3*Lq_2mR<^h`m-oZhzPCriOip89zAD)X+>c|puR2e=X_r$tk$fZ^hkQn^VOU^ zS`&vFGZ%64wMT{ruOt77#8yWH>eUeKwl2ofGxY&=nm~IBg-F>wma)x1?Hh;9b2#0l zSVE6lvZkHi@r<84l$9_@{S7OzSyN z6NhMB^9!yat>|p>O!4<0UibPMf%-Z`+qTNC2O^eT^?Rf%4E*MQZ(F#JcwWr$V*SA0 zBdaF)MitzJTN{&%2QwZa)WZBDR#?fm%D1u#gSJo0&KR+uteqO~?O246sM|#Iz0b#o{q{y0wTO|f zkPrv1X_h>+mOP=*t|suGS=3*2d*+Myr}gKhQTvAItGYHzK04>k45HgfcZ*B^I48b- z$J{igi!EA4-lj*eU6IN|_ci}FCG|Y0?Qu{CiP}Z7kS@o?(ccGZ6cHWxvyZDTJH&nr zU%I$cW^UK^IGC=hQ6w8kK};ky67`Nn=Mjaets?EBYF*S?Vp`a4(Q`GfFb_ADyLSmeCt3Zxp6jsLc%gcRy__#hg0vUx;O)N1W153e;M< zi1OcuMxbsJ(eC$wu~_4NVCf$9ec*~3_+*dMHL}M61}5q@QRk`iV67$VAhR{2Mx)5j ztqzjMpwV-p1{BeiBTxg1no&&2Efs1*5$$S5cb`SgtOWxX#jWovr3ad$}g?WVEkFio?&fCblAk*2`)%=xZa{64}v9wxgdycJwjOnOYrW zwnY_cEp4pI^qg$FG`oMkTte3U5AB-cXn0YtI%Vww&syFG9|>7hk}JjyC8jKt3N^e9 zN&?TYX4Q#ap5MDrtekKtEIMa_$6f>WkkJiswq`o2K9P zj4wUZ1EY4C^DsaDPOP2R!jfg4@r>sp(3%6a$f!Avfj(M!__MkRc!Q8n|9{!~9@VDyv1)lZrr)L~} z#|R?G6M~v|wckM->#_^zE6R96;5>}~fr_{WW>0NnF~aa{Bb^tGBmQwLgD|J93Qk@r zj>{*Oehnodv?YAD{=B@#oe|Es0*(8?+e6RXf};Dw`rdhu@*uew?R`*Zj(y|$da9S?^^KS8_XjXvw6GzELXj{D&kC_#vSu^{m>%<_40_0Mj}-0gpMFaYP3``S23# zXNyM)YSyiezM#a0Q5#M*cWe|f){aRZ(m2o>{>rubRxgiQeO?VJE0rxFmWmOT)!ep1 zwsj`gSpVoAEbzpJh&{#IJ>wO+a^?VP!%@SpH15La=qqLp@SS1Sw$qN1?AF~pb%SR( z0hp4DSih-3@(8;9lF)ERYAS(@0y=FsKS92-_Z&56Aw$5%Dk!mG?(@nJ7L5okHPCIV z}?0r|W$x+3HqkXMyo&k5`0-z}%VJ1>oIQsgz==%bKDKsG;5ei3e1 z++RNM(;MliRFuamvd%TSBFvlWG3eg(pCd-f-0+Pwrj;N+>qZ}i8neKE|Lo(%B{Pnf z_dfD_xc_OAvETEO;_0HU*<}vUX%VFTZwZhOQKZI`Nju`&-;nN** z4Uh+b`~Y0X|lkU0agRim;{8p@i{s?BPN&IQ-RH+C$gFW2fb+2>i) zGGZs>+?d5qcyGM+Hof(`^6UimHqGn=qru{E;4dVP?+-jNb#e6tEPrJ_gFee*ETcE# z`q2#6>nPDEHZA>h)5|5>xSr9^4-_4Szj*N{hCwhtVYS`wwKk}n!uC-|M@?1#8X3x zM58xdJ_F|A@&KAt8z^q*znMxz_p2SBms~MZTjZiv--dZrLj=CD;aG`HiDlsz+<2L| z_>Jn~x`Oe=bI;66Uec1hi`6@nKm@WDNI$rptYwoeM72#F<2(MHm#nvf7$W2+5o5Xa zsJXeN_@*>Ry!_t25ZMBzt=K}=wXf}4WuPd#ZgYIW*MFR8OHvAD&*n4ajJ;gs{&qOt z^X=9SI|2C&+u9Qk=-*4d!5e#1%_p@!OVoOxs>sjcGbFAg?ZWlM?B97+36?hSM}5*# zESLM@U3=w7e1q%+tP}A|KCjPGi8x6o)E8wK35dWiIPe#h#l#b_CGr3Mx4VPDSUj#Q zpW*Wx?=4QyOnq||;sF>|7_TxE&aI|-0LUl^{Eup!8$TxRZn=fl59Aae*8sTWXG{ddc6$&PyYQ0n<(8=OkC$PTu&HreVja1!Bn}Aow0I@XPyF*Kd%|fIJ6xe}zm3M4+aLyvh?R zVZ-vNi}_!zC#SicSO~~~FmpRIBWRa#{8?(=9XX+;n0A%6EKZ%jRUvr&V9o@h$;&1o zhR&V3csLCPX z9o9?^M7uK_vMCTz@ZV!2i)@W}f5s@0_ZHvidC)U_2IMeU?uX_xs7ZwW<620!&0X%9 zn@Erc;+6_oAsB06zqdVe3yO{BFGRy-bvtZnDc1*wYTV&JVM|bEXj^r|MGflR2IPW4gN6sy>6o^ zkJ|___pAdEhXwg1m^aNO)z2;tiS<&ASTBe`77C)>wn8orBDz1j8d~>`8vFU4YH=o= z?)YYqIXP96d}BJE?vUG}^H@crWrF zUGXSg9gF<|n7eF^b|CPF-!)QGl~An)h`=`$BGkM){Diwjy4Jbz zdv?8%M$Qd#W?Y`kiNxNizVG>X6_OMo=Z2Xa>Lyf57gM71`QrX!;L~5kpQK&*(?>N+ z4jxIj4^b;3BL!0;AK0TtinWP*i>Gdxo5tL+Z`}UKbT<9tvUjxqZf0r4VlEeF`_8Iz z)<=JZ%_E+r=Hejt2YERadF#gN%H)~8sE zV;OG*QM!bPo~s_bx^6FV&+B!?1Y%%gy4bqd>Vf}Kyqz9AWH{hMbA|p8Ltsa z#}d7vQ5}UTmLA8N)k8Y3a$GgV*vW9!R4m1;YkI6f3?vU5C$F2o^o7X7hDIRY2YEp5 zYJj^wL})+Kzo;=5_*Y+2Yq9Ylfbtz=2%$Vk=Yb3%!vsPEhs|@1=>FAt@~(l$(MYjA z5|9)IQl*0{6%n2X40^;4wPr;%u5u~y&6clC3_ zLi*Q<_2k}r9xd+EoNsqvgnq;RAgp~HJ&#yOJg4gt=~7vnI2(&oveGCqq^D%>doPgp zJ!A;2A4ZH)pq z>#E73ix+st_aByo+sg8m{;741q>vGY^`yKAO5;Tk^T2dnL}jgOTQmkO%@W}&CY4C` z(RefYXheRJ?VDIhey6}Qz8mSjiFgaS^$Q{L*nSYWQR5dc@QnSS%UgQ3q=h_bhY&w+ z>lnv3h(JCQG0BJ3lkIDG;Iac+gzTmrb>8;OjVM{G8gQd#KO?=eHcGY_L!K0| zaX;A~H+Q9AT9}86KwD&FO+{f^&t0YyYG1J)QJ4@BTGbqFsxhr7ObFymxwmsQJ@(zm zmj&{qTm;_lj0j}xAevh@ny*w38rvT3HDps6k9lM{`T0kox%s3!jU{`#ie*qCTHUT9 z&Fw18}qy(vmb%$#>}{8fk8#;ZhmTii|eAE=;N7H7YgeeN}U7 zuf{E+xnB|2fJ($a^9GqsxrmWH z=7ewEoG+eKJAI2l<{6^h9z=#2BKA~U6ZtQq`&iz3HQtT9UkoFE8OT+$+$iFdfp3}0 z^H_NHcF%afz?A5gu}klXze?=3TPP1q%gFnXXPR1tgcTU z_+KQ1%Ym~9t_Rmx|59@9!TL$c<1|1^${kYvTw{TX@heK8v^1W=$X=ZTPhNYKo^bFGtxp9iCCJeg`-(Vg#oL!F* zsRl{Yx5xxTW?eMzsx<_eayDF0;v!7{@d}EpIa|WY7*^(A&2^3#yr=JMex zLtreI-G;4;oHUG8+P_xvzy-|rpCpGSxsvt`#sLB8;fB|5hBHXzG>|-bi26Tu_A-c%>#F@QQ2uNLIxe8 z-I^mJ3S-UHs`l!fx^hh2Uh)&-0brY?K5rE1{*m=Yw^~j6B7Beda7`PyoIB*hA^(p2 zM*Z@9c;-E~$?9ue&K<@={vENrYo8l_dBWZDPw6t~Fcz}u0)Oi3b>&4=kGt5TgSj_@ zYK!&25(fTb*W8=#P27(WS=2GY74PHoWNN-kl^xM8g8W&EHvc() z5&5(%$Llk!K-~&DC1UUFKU%E6vrQPRxlpoKo`NI4@%EIsOh9A^5~pZ*6>8o7;iyY` zmqQ>E(C`R(_HngK`kbNlYKYLxk%27B0PY}bJ4#x7-Av@JYcBso-v`Q& z@teSJh5S<&HWDYcYbhT2iZuD8^D>eGWJ4gwkNAm0i^R#q2CP9$KxE2cEM(R>yuOs> z@6m2DVg%&;c*rV^9 zczuJ9UlpG;p{m3;%rInc{5!_d*9AU{h{Lj}r5L(;U;N5Tb0o$>mY$2~)-PXN_2-=U zoDCfu1b*9yrg`_sl6b+CA@Y%;u_3b9T9WUKDb0zcw``o_Pblyos`707rPBw=k!Oz$ zk!ROqSCizS?izt?I+7YJ+Y;~mVPAPp!PpSrjP2Dlx&9H2KyF;%KiFq<@yTn3$#+j< zpO$u=;P7R2Gy+RYE9Zck;>Vd6%7>C;LriP;Qt~=nX~eZwAQ83 zo`F|2h&6n8PO?FLdag9Qsk9J%Pc4v5=D7%rr8RLnC6{xD+&YXEJ*T{hJJ|U|S@ozH zaX)k0X3-_eCqw48O~t><_z~A!yufdNYHL|={%!FM59-@C4FWaC$iEBx(})k(cka}# zcSd|T&ADR^9NXO)Hl6V;RGxEZVj*kJ%+$=k3w*vQgzqfoyNk^l#k@X5xQs16sqoHD z|1=}P++dCjIxEF_z^^7Q?B85Ib9HmY@hZG{w`VwBhBc>n2O0hyNey;15tlu@Kb*JY zB!}I`u?&LeN0U;-JX>m*XNGg9%TBT^Vw)lVj;u2u?Jj6J9}g3LP;$FF9h>H(u)Lt%?t4SbE6Cqr1t8LAT((M10tjE`ts^ zcgUs-{D4?`1AdtkpG7kS#^U_ggIR*|bNO)jReOolgHwt-URKZH++nXFdoS=`?3p9( zrTOank6JpOjW7>feInhq>UXWF-p{*x#Yt5>JNhQHHe5fCcKV8iRQ7JOc69l1JpWaeQ?ZauKPQJt_J>N|g( z^z*6Oy~H6p8z9dvV$)G9o{5Scp!-eK>{Daf7xDEA`-|m^HP>0)Ax*Im%`;z7UGjLO z5YtX85FafSqGs+JiifQ3E6FMe&s}@=Q2i8Q>z?Q1>+iWu^dvqt^6ZeM$20iC+f5$G z(nD??qNC@k<{9ar>htIg^?4NLIstnx@QI~YY*>28t<$j%sQz~mW)|V|Aad0Z-R-Dj zvu@93mLBu3c!n|jE97Fi{436b5%~&Xt%+G1ZqS&L8oMb*v9xx0ofV$ByBm3Z$S(_g zx;H#-?hR)RhPgK!d3}ghcaz7XyUEG^+}vG*>_0@?FN)g=xr2!4{`4}>+=XuI!HAX@ zHHvOYNA94@1bk}xiuBGm3gx}8bdbp3LtY=EZK=4eum_ty*f?o8kjOmDsyUrfP0g_+ zE~4GAy6N4U*=C#M3E=0}(dNQk>_8)-C=vlLw|{!>I(a z5J}ee>Z8TK69;nPWu0V=Nxwy0M`Rni2rfVWxUG}`{u=Q*ZR>ImB4YQd_apCO z?nunNyF-_O{s^)3@zX+Pp0saXHOU@N@bt^i&B)hz+*knuW8v3Dd(j0=#EP%F%98V6 zE6->IpI(Nm$az$L^5Q*1V*RxayD{)b)NU(Yi51DO7H&xMiahZC-QL{GE>UM^!)`?0 zB5|Y6%oQJR6|%#iF;1y?wVbk+&?~PjaS@HHb`%?{GY6Tx)&Zl@hV_kwMGx<$xr@&@ zl`$GE0vU~b#`&%HQNnL>x%}YhX~leg&F@6~O}epA?RS9Ds5y{~D8Iilo)E}F0T9go zjMe^;_HZrk9w{cDd2jkB;y^OzF2&x(Xq`ZwUBoF=b9;HlmS!|+#ukMsR>VA1GP1kq zwwp}_1LJ2zx7}z2?p~Q8W_GpFy-P}3i)mGuhbmP8aR)m;cyGG;R?QtW^}w=6DJjIb zhlYrbN0r3$P9Ga0a}k+`MMIh;yYF70PDo_W*?N!||Ht%r{Ts%H$XrBp>dI!xX=S8| zqcauRO?=Q-oVjXCe3cj*A{!6UO*=J9)_93Lm?^}6Hx3gYoH@Gq_TR^ZSQ6}yO?PED zsS3d(Q2$a=-(E(H1o|Nd64{MPs~;Mze#9`OoSoyD32o+UCU178x)awbWI zn~+2pnUWZbN6bx^{+QXreKGPjF@FE^VJ%|gA_8L}gR-J8>SrD$74s}rTOq3$8JJO+ zV(G6-vnh!ePWO_{yscZhdgflT-QSkyS-OZ$4M}g1`aGSpwuAEaW)R4&M9!tVs^J*` z5qM?@eDYw{)p#&NsTy)CIc&VL={%S<$s9=JRw9C*TMi_DZ-!^d`$6*t(Ul{RfyrpY zn#7b;sZyp?h(IiM&oklb-YWW8@?BcY1y!i406+W@1W8 zLN7;WB=m?tW+pN=m0VP`24LLh`rX~8)STP&11a|syng+|LjzI z`PskQi<2H`?c{;XOk`}*Y5VO$Nq^$~SNOz2>yTo%l$9Vtae&mVkIdyHt9WUw;+frM zt>PJN{li(wHt#5T{OX_0gY&bJZOaOE7(#@!=^DNdTl6CnR9W}S=bo6_Ra^HnLbE?H zmf;Ah}HIyTt{j}S0Gua=2MPMxCj?x}(QxmzdRU&@!V76W+L`LU@_-ny4$@A%cpJAT2Kz%yR(EeDb;ZGhwH za#C%q$~dXnELKF=F!C&UFS`B1mU5P#Bkozg&tb75Ulci>$^*YN9{7=mip81)i~YCqDK4m&>u=9F8w~xpjyLY&W;9$Y;MK?|yOe@+Z0M z)=$4>u43N=KHUo-&Ak9vLyl#*u9y<7oTRfew=N*}6gjEb(t&^CS3>TLw-Bo~bc`b+ zLH%qz79dwO@Gspi5;JvmZ5*E2g&+Pwe@Lq&1p7tZkh6d(?NuBU+u+vgQ)aR?S8m z>s(jkjttW%OuLMT393#LnTaaJ^Ook;X^AnwNv{mWXeX&Rmvmcx>Bs@xk4Z>BTAPL zQ3)wl^jsm3DU1A8OgDP25OmvZNGCk*#Z>f$@`%Em2QX-vt=>fL8~9qhYSl9ZGD*45 zk@sr&u>U+t%*bH0MUaL;vZjGG4rT>lPXT8A;9C$Fq1HlmH#yy&EgNQT&n{?0T=~o` z*@#9yEZvG2&y_ddGA7>OQ{mKO#^42>xk=kaygsF+8tqkc&Jt$rH)}A7pDQkQt>N**2E!|Bn&E4eOANFPk z%dN$f0-tV756z9~*$Cv;@}7Y?x6wM7`4qX`jhsR68J2yg`@{HAsHo2^!dQUn9^~g4 z3+a^3ASLzJsZNS9WaGNr+M&N6C;DIeX6TU?py?j+>X;&nL;h;PMKGfoue-#;^c$(F)Q9*X5Fuq22kdz{l+i8*y|2z&JGBpVbH z(|(=e={k&GWC9bPq2&o;=f3ITPh{_mZ?GO%KjLLvb%v-h`P{HN*~U3}052H%!m8$6 zQTnAMvWJ(|2)+GFxkvejvnbvfhBH7ErkNpP|5B^Fx7{EYIEqDx=((AF;+fee7V&~9 zEsPaCR|qUslrAAEER{mgoEY(tkv)v*M$Z)@<2ylp>(Lv^BMMWj81R#ohuF~EUbov@ z9r>+AR z`2%9Y_?Qjr78J;>?lALn7y-SOUb&-l+n7IWaAk^D6N$FWDtS1AvCgLz=yZXRPh zHy{oa`_gmS%E)34{Lkk5;^LcXtNuXlu?-iLSROL(cPm3+EE~?|z2Y0>*6J3SL8WCx zWn5>=dq%D^m&&v);fcSygVNz1OeHKLm9SjrtWr5#XXG~{Yud@f;Zxgm$)$35m zd-)CZO_;V$jMzushUia~3VY3lkt56q^5j_|I~tk9$S`)=O4zn?{fi=NnixWR&XK#1 zJ3*BSSLE=%5K%Fo8pjpykTDk416!eTb~N&vZ8&RYaM;n~$JI>sKZ(EK zRAN0ar33%REw{?+_s&x?eN4-Svk}dk9xcC3d>Rg+xdhqD$aQx4)Wzf}bZ*h7VYM|b z0%N&cXZQvszL{85D|yxrnh}kxX|nWgT_A5=BIMb`DMDWG`1=|~JR)QQ2YwAI&B|66 zr{k+!cC>A)7`35gN^1^1myG)z-!Q*<}dGk6F3xN*av9iojwKZe^za>G&^>j**bv{0c%^Z~heI|tdD1zeBHUixLDWbO#^J4gB9FRl@{imWAbPFCKb~Xtw>a@n&X&odxdSUG7k+aS0SRt$??Tn)}(oISeL5F z*$;hOf++?5pL^Sgfc|>UcM+)DMzrPcvJ4qZf?QsgzsooMH5oN^G2Qg%u)K{AI%Y&8 zQ(E8K*X5wPx6fgDBSLeXHRGFluu75m*QyQ0^J}@BZNtA~j=0MUzk=9cTMo{NzfOEn zWOE~56q%=F;kH$X#)HPhr=6KA`L<2AOHEwTuLL>bm{NIOxZ$*8Jq&kH^TOE|;E4y7 zPe6wkjABs=_?;Bad_dneKZ%G?={`ucbC_8Jaf;<(wnWkL$daE z5X^g?R+kuin+B91Uz~278dgs{Qv6zYV@=QDg|q+FwsXGm`qk5(b&Xs+@cZo865l&* zdALgUl-aQi7o7F=7Qs6hp1<{vIgt9q%drr_T*bLv2T(oEpf8GJUrJvTjz0W~@av-U zN8?7~>PHy+W*VUpulJN~NXN$Zp2)H_>?hV|=+5696N06fnkm#^ulyyTW&mw3y% zeNDTi3AYuArw-+aGw6<7WLhKIMSM*+*grmEES(Z#u~pT{yX{5n6A*df=w+36GKkm_ z@y!uIH{M1mF$3b^)F9EUWm!D2u|x3@$K@rPy-H(u(BBD*j+G!^Jn(BD?jsr;Sxqc{ z#buIXo$^Iq^0kYXda3v?RP*;%+$`$#d@J6p>54RR!EGL;CEXk4C9nHwski>VOQ=-G z5|cc9WnDbD`LPgr;fOwPdS3FV4TQM!azfOl8*h6Yw<`Wr7Ly#mNB67!?26IFy=iWr zO>;ZX;f6zvEN_=jJ&4#3-Dt)6lvW&!g)DDme+T~Cho{GXZ9hmBo;o(fSjh55_IKdl z_V$+eHS7AyCbV*5EaYq>mz!7?SB_2}PrUHAi5H%|E}1&HYgC+g;j^B;P(DfPAf`L_ zxSVJmM8H^$OD0D7)?mgW5|X#~b{dEx%! z1B4jyCG}p+;eTT+mnXyW&|~hNx_AvSu#v5dEN?T5>U&>Lo!?i@C2gw2#DO!k_0h6@ zJ6+B;aKr;YpAhFhHg$0UA&?i0EN@IH@F#xKNL=%DEBX9h)*HCKQJL4pjBlPR%c>9y zshH=IiswXWHOF6vB7gkvAqoNa@^ zSjZPA|8VO%h?T$23G@1E&bDEaBYXS^;EM(6@6{$Rxv)jrOHKYZ zfsAjLv+ezPwiuP%5U-YhAYNEX^X_<>6TjG%;B*Zy9MOS4_mUgL_luq>-a)%jObh#; zXFHa+Cvv}|*7b+C7OQI25kK8evNu>KaQ(pisI9j45@&a*r$(dZ-|SbXiHLPgd-dqK z+PBZxdy1S`_+WSe`A*>PV8yG77cP+5?Q%bEYT-BQKoi70cPa zmAp+qMojXL)AQ2E|3+RorWE+EJ@!TXJz|nSK(~M+n;Ti)m=Z~A-xlKJQwl`T{Eal` zj&*YDF`4crpF&Ke1l{P#>%<-=h_s{(ll>LjD^f)WHjrO zFf(P-#I0o}km1&H*zjq2CuqVNVZ4PR$AcL=CKmG0-8?WYjK$AQ-Xxj0;;MMp)@|hO z(n84^zCG_y4^o>T-yB)&IuBKGsyVWUOOJTh8@@;R;*Gh8T0NhQPab!IY^m;+wQO}{ zs3Y$^@ZZ>ULwvMsB|Fj0C-??Sg{7sl!A~pW_deBFKA6)nWMSwsSJfc<2Q>Nw^YuOLd8(v5j9O@T%#s`esR>+}0t9C58qqo*( zxr}%$6-y>eJrIpt_rM?7;P>?2YVG7fzmvnd$8<|u9QJyRGv0L3-hl62G4=+?o5ykN zwl0%(||mEWZEMGUzMuZSPx(x7M)7iaF!(1;pt-@3$I@Twi#QN%Fx<> zydRBfWcDND-;P9<2;*0ai1lBsiabw~->Ao0E-F5JhZwPFQiyU9l$S6c(#|D3{EaOD z&TtqDXS=}Pv8I-&Iy5P_zdGMx-J6|WVr$)Y&jvj2H!Io1QbkJfDdQpb{j>^ZM(D^Bj+SysJt zr*qRd@8NnZ*zGmw*rx>T5J=)Baz)Eeg?#OXF;1xvQMtW=ElGh>68oH4VQ8UX-yk9e zXg+Nl3x%Uw-_Rx7-oV%xptXX!HB`{8p>q82HgT4ubfY`g`92oaq8WPwOo=#S}u?^`Jf?!e9^0O zRAezgt3h;jqJ2X2T+HskyO4K)V3f7U0YAL&TL0OXBrzq;oA;BA|tW zYtzuA{UGtmZ`0%FbR8R_B?4L~U`jMf$fhAlHVvKWME`WvX36z;5zB)519|h95^wCsxU0Xr$d0^G;RCXGPT1ufUB1jWA z^FqP4^lV43cl6o{0(%g9mN==ubP*pN-9nyKI5xzz3h&5CPHRl*a{q&UL*SEMLa=^< zbrbkz&)Yf4r&nYU;76ML0j%vS-XcBADLk&=4VUD!am2ErJkY*@^dIDt{F`5&4=<+k z2UL}ZDZ4b2o9U)8o?S%t*v&gAWSSiejmxSJwkl@@Ve%MXJ?*ue{fswb#+Ov8yJj9EU#Gu*EnO=J zw0vk=GS4%*Fp?C_zfu~V7g|9~dt#olZ(uza+BYbfzM2(SrjKtJ!PW`}VeA`Rn+CLx z$hK)Pwhr2B_FoS*>AHb5SZIlW77BkhL z$)oj4h2rJ629OnmwZg_&vk#`d!ADh17EN78JxD%;r12qS*pd2HL}s>WD+siX2>d_x zA1&9B51|F*LkQn6C(+nSFgx1#7UHoR`Fo{N%;_3E&H~TsajXr6@;W4q*C9*`^Wd=6 z716DT(%g!O^)P%pBHKa8e~RNm&!e8aKm9HMSYbyN9}Y@g?G%_ zh}IQ|b}cP7KG9c>oxCpo*^tK^OACxu2M#}>ZodB*yATTwi(Mt2cFUJq16Rxux=}om;at4cD*w3^)4xPMiAUh9rBDhZVe^Uz#powr*LL_}e%hdQgFk4ChQh{?A-b3Y?m zUC_?*Nw~AvSaVRiQ%1kznLCTohQeiqVJkMM|F&nmOJUxmV}ZMuF|C1@F89pc%V>3> zyfjC)844^Gt~~YDG2slltC7oYd_|$1hHK67#u*Ldnwc+zJ6`Zq&F!6&);0stN z-}B6U^k_Ze-e8Y2a*8bH3?i~tQ8V=b(xv9mEyvqGn3u-1V(V6V4H8sBlH#Df3C+}Z zd>KFbi2>>qiMAvdD|)W-pqn-X-4I+3fw9o`MBOnG-Z#0r$R$l&{=U`GT_R{#;v%St zQ{2uxc8Bl%+}m^>bHVBVz|UHeg^T+`w#-(Ai}k2;IipoN?HcLYsX@31dylC zZG{MHZ{nf@|Ni~whzoMG^?;2o?#bWkNDq+LfwlZ{wf;6`-*uG6AY`CBV z^K-3ItnEt7v1!3ERyo3=QwfXsr?x`G?AklLDQ|1L88;7WC6Y?mk%6`{**$1$=vuzm zR^U>R4VE-kTXwX&ZRH{=vz4({FlZ~orK&6sn_oeR%_FNGj;##V9P=YN!!ddC@wZ+L z|DwA&&|(B_Osq{ymWCJXJW>g3Y2mgTSt6Zsw=8@3ay1gI6-`Xou#2wTx&{$8%%vJf z^#~Wg8V<~=2bLYJM~G`co^;PFD3C{xZ(Ovf=-;&w-5{xXk7z?dY^uvfNw3GlYA&(0 zMQazXIaRGjiBYl)4cAI>M*lidK z`#eIZT}EER7V?x|y2x`$SA?UXY(gW_711amJq}u{(Cra7)Rec)xKRFw^igQLg4Q*z z9m}e4OZaM8U-?KM(prKI4qDfs)lJ}E^4Ik6>N5t(hsmS06AP?s(CUWnP^exK)+evo z50Teww8246GTP9PJh65Q`O8mTWUcGQhFDvylUwuOj;t@HjjAV${&k#VU32@j$0b+& zFjL*)iJX19UH*eo@kPtLu8HFsId>?aEdbi-5D#G7P2!AdYqmt&6)d}9V{@H!&HoyyJacDizDr5T z5$z&Ikgd${n;%|6|4OuQLCY823OXf{Ep=-l2LIeKOpqrUM4;u1dn3Xql5mE>-0-g3 zizLQk4t0&-8*j?6{#mv%R~^g|U(cNzb{kqGF&0|ExYjk~PlkQTgyd6(&LA#($7oCt z?OML@2sfHB9PRG78g_O)@tvqIo6{GCdQSX`@av+TWx*w)hxc=Qa?RO}9SgFUUHcEP zN=aGklLD|rK|2=K8vr84ylJgbKm^*c@V;bX`#Z%cw~dXrUb<+#GbR6`As)Fb}R)$n{w>?Y?@p)QzOv!B=EmmF(iHe)Enf{Ih!3jmdz87 zjY@^}BR19knAm$TA@izjcI;SME^3(%`?$L;#DBY_AW`Mj2B zn+CeYHBPs;4W z+)#k_ADSn%FEiT7zmGKjeb6cexj4wtQIb?)B&iOE8n+%H%_ZKxE}|XHC1^{6wjex94E&B#qCGtAssB||G<*I+afo)vXiI`< zo|SfvA$Gh%5Wg$VJTK;Wp=Ai7c@`}?lI#!^;)S2Oi21c!h?=yg#**;t6D!emVoq7V zGfk6_ZE*P&)HYcq?;XRU5drX@`3w+(8}I~!kCh>V@WS1E}1^%Wf0W2h(_C!z@PJd zop?1mcY5SCyD9ktFt!i-#Q?zz@yZua^9{`>WETIX4F%*$GH%{A8; z<2^>2eQuaaVIQ5S4T&nxrNm3iwjsy1?MOmc87{@WawYg$F&V-nis<1j3uM|b_rm2^ zj8^_cpfzBo1s;t=32|NAhAUAR;V-!7A;*H5!6Zufd+?l#*RuE`OV7e_K!Qt!zXuXs zI-affZtH30l_gvtA+}~qk8pcIEN}0QW@Yr_9YKsBKY0D4cydq|Gc7EQ_3GP_>d!5I z`1vVhb|48RUs&3`x*R`^C5*)^Xgd~2g?L6OKeQT9JsP z!!`nm2mkyztT&=yinalQ=d`R0OGK=U=#U$qdp!G&Gg|3<&`vYHI2KY(%*sR(azAhf zJ$ncFOmvLQy*B3^FCe5|fUu4s+TdPU^g^9s1S1 zUwt%xYLGExiYgg+e6ps9`5)7UNPJvGf=jt?oQ&&ADR?^RSNqk{b|*aRp<9BSADsWg zvOsvEwpUk2zHOv8Oh4w(HFg&+ln~d1Z|7Hfs9RQ5*5yiUU&f@4*#FKKUtRw>CC8UN?&D3tnZI4w>MIj&0^en`5Ln<|mS1=0~&!5>-Vasvxq8lVgNAAJHJ4u@Rme^?$=NxKA}u z|JkK3JpaOjIm`mVnla{Vbw#PT9)9Ut4)eobLczTWzoTB6GE_~h zk?a53+;A)d+JLCRevs)AmzDV^IOLm=C%5^{CL=tM3=$b4U;cj!8C~%jC|cA zO2N$jYGCWOUJd9nn7d)=WrJ%b^7dGXr#AOd%`Tbd#n*3f2p&heC%CCK@W>6?P?>qE zSMT-Sxj$}k2p*<(>bIzw=sX+NlR)B$X}7E8%ZH{bLYE<}&&z-}1O4j*dwLkxb^YoXXeuaeJ zdrm>Hli_-c=W)1=@OT~ZIKlpknIEp}w9F5r;W+??{#(R{JA~+BTrcxDF7pGsnu1+T ziCs;;arPfFJPx;EzIV*;sbmhm)!shRL9gjxzSS(}V{|}Ze(-7{g4IWf^+zl}PAOu3 zm<58D-iE%a)5qKVYREInWRT3=W61--n3(^;cN7S>J4?LecRDSKfL5Q185VxmQ#oltw96 z&w%_N9c}&()`c^*BgZ!1h>CZ38sXKN?5C0D*5TT{q&RB zr3=O($2wC&Oa{p~&UpB@_`uR%V$bmA1I_ii%;qX{@l=NrV&;cw9&q&Q8|j+2HBuc` zyChOh>4JFKS7V9T;%&Js4X@(7*1E#v*6LwULQ8%~$LD2~Ozf@unUnd%ZKL`vt@Wpm zwpQOfiR>yw12HAUH3fSg+4lqy<(T=A3=B4kob}8#SxH7_H_)ZGxAj-UuEqopOK?px zcU>=5yGxBcWhJ5<-sPD6Chj>R%K0{;ocR1lapxj3h^2$5b=pR)<6cQA%Mx)-#%DXd zD~Lm1$o!c2dDe5;5<`K$J)ndNxuSf;x(~P_IU}X4cl44>tpl0*6=W8 z`h-ilj0qDw5&2Ra^CRB|#Ysfc%>0P85Bblv&413k3Ue$h9b_8UHq$s$JIu}SRY)a| z%;>AX??2tEHS<%S*&ddzl$(lMn>VZ(Hw@7$-<#_7ZI|N@*^-Lecy`SBa7{sEJY5ly z@oFG4UesSi!=wB!TvL$$T-*HT++QAtdp|b+-bdkeSAC_R62j7EZn(6^%E2zB>BQ89V zK_@;iS!pEKv&;Mp%Brdn!Awa6v!Vo#Wqw?V-d|PMji(*+^sYt@(;&~e|I-SJYQk?5Q7u<%ek?F2(#0 z^3fw_->QNEx(4$0F~P&7nC5Xk==i$x{oo!VQaZkAFCBHSF7wI4G;=;&Z>-gap^rE` zQhx5@pIv{1p1IPM;8N_99z>zlZ~gF0N37V&uC>Ce*p*rc9=n1Y9;f3gJ#@R@w{?CD}j^-2icojF_+V(-cm-W#44dcOJ)vE~$XvF*e}|kSKlO^p0&HVft%G9hP<_w!>$z zdFRgQ>6;9@WJw*nPY{BKYf2?cfL*%dw%zHM!7eeu!_*{pQosa(!Zm zC$r(7J%dt~^NA$nU0ZY=j-gu`GD0G&qWk$W29aEnyBu5rzH9Nvlo0bj zSlb^xSMB?JJBTV+8i?&N77Tnx7m;?oKh1iD?`2#?uGg$xhBpf04r&_>k=qE5v33~= zlhX!qasFtc9&0wxYX|!vvpq}(30>2&2?d_ZVXwlzo6&~92lI-#BIbv}(Ly@>9mg)a#QYGK3V#nI z5Nk5Lx?#O&{j^s%kdQ1i$b}VrZHIM1B0NSZCY0bKJh_efYFMXq31mNw#gKgnGaDCF zF^S|#3@+JDmD;pu+3bUD90}%?SUQ-ya+C09$S_Mgv4puF&}HH;m7IR_g!FYIN9&O# z#8SNqzrt4ueJ@HPS@H?lhi;ybeeS5yx}xvWPRvI!`IJg-E_=CGrQQg=4R0J~m$(#j zOz^Ee>vI2_^GE34_1kHF7x6oadx+Qx$7g%*f{%J)?!vS~I1wK;W!{>QoW+~-*zdCmY$M7s1f71(b5%jdFZ`>Jn}Zpwh%rH4I?58{w!!_~I{E9k&9uQa!E?DuOyQsI zi#E6}ZX+UJx!N6oU3J)K$=)7*zT?$qrNF&*bJ_VOGUrS z)h&*8iufO6{ z8_}^`s|p)0)=m45@}I$4!mJEaLQKKn>K^N$zpvUr-*xVIpDB?FUR6Z?!de2W19Ks6 zHbJ-VmjB_AORugxv#ltWqB|7){4EF$UU*wyy#87c<7!t`oUCbK= zPi?+=s`B-XcT`F2m=f%~Vnw;4s0~wE{x?4$ku1UENK~(qsQ-?{#*w!(f7dd>6CUGj z5K=dION47lko~mAMO6}$J~dz1ObNNP6K5<8>qT8m2C=l;D{eiM=3WKwL3kVL$MO9< zq;wHV=+`QV$HyAKV4e$@?FTVSsx;8o!`qN&26Hp+EKxtl^d%>A^rI)YIF!)dJyjD` zCmHW(W`R=4=l-_dzvJRO{ZYBC4kfgs%Xy(cHM2m76?W+~KYv3XUGUWwhZ4H+t@A=J zZ)SnuWpQy^|FM7f*VBL5;!r|!Y9XUep(i;LL!h0?XXxD%GxflITO3NL{*q@KroyzEk#y8RXo1UMTR0cVC5UGqg2ABEC{_YC({<~Kc9K6-#ikO>N z5<5R3R)?~!cHyh2cgw-b#tLIfNazY{D_~*>p8X(%{=&aoesn1zCWE*pcv&1>v2^nI zJJoIbKJd9zQEw6JMH2BJV$I;5Fbm@HA9pYAp;}Iv*0CWXXGLD#{c@QrGOUb^O_f!* zvy!KAG)SbP)Q-de5o*VJk{g02*0iVk`i{r4-)aLL)}8edHiFfiUcJOktJ3i)SvTi$ z+wk&6{*N+uPWMW_@u|ZVF$KYl5%h4Au2;7&YU+Lb{a-$}!KJu8ct>O88B?YeG{VTu z2n`LyeUJRb`{ACidoovj`@?hT+IL>)P(mzyXh6M$3@Car*&kUa7Jo7QHhL%wiUn#9y{G*9O3GoxvX=JU0!~~oX#02!3 zT%+!7bI==AWv<5*4O2o{lv@E7-qK^#?@ufYEWELp;R11#6uXRGpoD6G66(0vrG$7)u0-RtBh>Ik zmw1EUUy_d6$jjYYsa|5!<>`3871tHXcJor7A?myLr+N=pb}1p2;F+IFUb1y)`Z6#- zG5E<8KZ zTez{0egba;F2&4`O9|a^?RxL-i}Lgt<+u7=iU}T<5-OEX_vu`s#8s?b! zpVP&AMJf13I1)irS4#<1E*PMGdwG}t+oQ+@Q3gIxLPBFV!7Nco4+XmnA$VrII;}tm z9z$>#!o{J4I?MC12m7m?nC*!thXgA_lScEsA?KQGH~IG*beJEOMpP9@OhiVV^C7{M z2vb5_6Z9qEAYTImS^muh4)ep_ZLUAud&spl;;ah#WMQrpOV@~3pk;oT9>P;wX^=|p z|14dv`g&*NOz;Rd(|HH<*T@9}Hp9O`y**>RKf5qXj6K5=vR+vhD3!eBkIPhfwb4IW z+hmEcXPEh676>%pmA9#LzMbRUSLs=g*9=|uLMG!hxW zx*T_yAD73;Y&Tqex$XUBQ@}#<8NN5NDh15Jx5qH@_Lx@#U)be6_tV>HCR{>p26IXL zfS#Fmq|ke(F#30(>thd^@E8&yX%pSZ_8F?NfR_2GZ z8>l~ybWrQyN5-TM6FgiKbbSNLss68YS2N(T#iR}sJX{mJEc|WWjCJtZ>TNQBS?-2; z9Ih#qy!QF-strc|R_LpCjC|E_jCI8w`Ohb2dPf=$R=E$FykxO=4co)ij?4TM{FLKe z27k^r_l@_N)L{vE8`zo_E>(8_SAh!9$QlWmXYfHiA^2P z8fJ6Yf5v=s+RP4IN{($C;(uk2jfCwLpOIeKo^TJr*V4#Cx(1_V+9mv*zl1UVe7)fJ zRbloSCV1G39k~IYY@NMlYnGOOOzNl zze75e{H1mo_4}Xu{i%8F3aw;#QgMcvAC`s(-DBsfr#5c)Z$v&XV~H^mOa`%ZsQn1; zIderUvE;vgeCHIbiTHCRm@A6yjwP0SX)J#(CB(E7Q$j4w#1M4))tdQxAIj9}YcX=l zwZrx142&i6YX|M&TJhCowkJHsmFBjKCy}D|px?dck9fCD(uQaUd0z3F5gwzBkQfT? zpfh)g9|}uBBIJs2?6ON?-(@aYX_N|o4AUvZ`$rjKS_{6~Ci ziQfxHZp-63Kq6w4`1A*PaCiLRgh61L9L+*`yP__nfl{qwE$?D=gR zc8OUcW{iqwmzYw3S}+H57{N$Tc(o2--DTm^-2{|jrn04kl<3`?|}rkJKyFE6C0$ZWtm;# z_JZ7JzRi8c5==O;babsS49%tZ?c=_2WF}hLiQmrrMivij`%VN|+^(uhe-qPVS~NU` zcCy+J){4N6(=$Vr`@Es9x%Q~T6){WX(oQ9i*Rp@_v-RL7r=;b3AQnTW;rTrabykLU zVhYM7k&F(>5JwSL#3YjVWqk2$SM|`0>bf4XVR9Q>FLP6=E@76 zspJRvnwa}6VpI=vX(#@6W{&A}6og@-3d_lOh)9uX$t51*2^jqAH7+V2dVM;OW zoj{K5J>_2o}(9ioaUDygaJp&+9Y_9cZ8VuM{D(@x>BtijZF zumg~lT1$UJ+DUc*wq8htzvDQFl& zUGp32#mr!$%57s($y_!3*O=P1eTz#}QBEwLJ+Pmjk)iU(Wa`;fwifE)uvbGHMh}PM z4c$EErc%i{!!y%j5|=6dW@vg+28{qgD3g3E3kc!AumF zVrjfNiKq%SH<-ID9sVB7U43VZg3fzAUHhpfn(YHjR558~_6$r^S=xyu&E!^(=#qn#S~TJxo^jnkx(4k~v?$iIxWx~njqmu0!=~qrRQVl^=#pb2sHWnk7;`YF1oSmuvzO}i^nD>OE z_u)3UZTNnaYOAXanEKw2@U~#W$@(`he|kW!^?Npa)VDbe^m4={VyTzVoyk4B`zI@pzQ z8{8}Arc%j~7`Z-kTEPva+iD)I^$Qo;$sIZQo@?)H+1d2Kee$!6v!Y9p3=Vr42`^G(<}2mcA}N5y8Hb+r+b zZ6hv5eaH17x+=N~@*VZsp22!!&T{XOg=adnQ{IOdEv&lvuDT{e1kTAlFt409UHG^LXHe_f^@zI3D4A>)L{ zXIO%njUdjQMw~k(aqgIE;!-ZV^!{}jI2y0{INP9+gPQLB;Pz^?7`QDILorm(lczGVA3J+=2%MSaf0 z@TU&4k{DYmkDRYaD#=lrnK+tp-U?8~#=^_w6XIncn>xjclIJe9~86h-hzorsYIrQTh#j=#XHJ$@LxNJ5^)k^0@UKhClC_cI6U z=l?d|=ekZLKZtLbYT970a>4ce5J-!XJ$3$*Q?lFkK3kO? zoQjtpEGya0oM^4xStR>Vzf=$1WW=prWjxD>ZxS8bCS=%3GY)xXWl@!C9B-D!jQ zD1N%&*}t`oei1A6kA3PpL>2Q<{B)hlM+NUFjF5XJ#{u;l#LSd&RDm`8V~oST2c^GU z%8bui+zZLDWtI%He3T;{WXrP>-%szV+dZG-KRUyV{Ma;eh6yK^k4k|IQ%C0cXMqgk zQgVIvw!tpr@-Ks|R+fUo7v%Qp`j=;p`OS7W3Rugms}aqn!uA}yvk>x0)|E(N?zN@# zTesAbfA|`XC@NWTSlY5u#qCS*C0w{KiHIuX$i8AX=2dY-RYX_i5g#RQ1Cq#>dM#@e z9mj%wiDk3?k6smK=w@knU{|Q12d%tX_y4YkFT`0TkW)Jk_I4O7X0zbsJ-4!c<(?k; zKMT8^LTy6m=j#9Zw@mG)AO81{Q`;ycwSwzLxt-iyUr#C(i|va`u6U8KyFv3+ zBrB-w7n$=ik?Kq~C}zIED1K5-{oZiDcW4UigTed5P+Kg`1Q$5^I%QOw*a82wtF6r| zpuqy0m(4h3Y+mMf$G0|SR%(1w@^CBI2F7Njtm;A z>px@ip9`-P5MVeX?+=@OD*WBP)o`5*879QhiDmf0#-HJe@Z}x+MZ_5Rk4A0P?>A4( zZd*Gm$kY@>HbGrXgRyifx$=vaO3ka_9Y!u8Zk;8BkFqs|8K>ku=v*tlKH->789AQ` zkI}=h?Lgwt(gFHO_+>1Fw}_Pb@J(n0amKU(y&sO{Ejna0jssmr&oTGvZw}A)ww<>y zEp@H?6yDq@#nN3T>-aPCP*Wh$1K!cY5L0$Eyra3^@NP;QAhKh*m?eP((`U?#aeLwK zkOqBr-x$5H(!{{qFg%0NhQ}zyR2pLGz0*dGn%OD)je~6q@8BZ2&&u4j;28fm;@D1i z&y57{gIF5g(Y?l|`+oF*p3@p}iYWKhlIkntQzVu*b^y$kAyZSYvDp`X{D5BBO!DwV z8M)-RcLgKCTp4z+XXbj1k*8rQG)usS8$^l0GI~a?f8A3<5kDDi5Ia4v&4=-m zT?^Zw-lmdImw3s04ZDod$R5EY+l+OqLkZ@}5KrdmUEZh52I!ucSIm!bsUf4+hS?-x zS9`Ofdgtt(dV0X0uZ>qdgr4B8aVe(6pubvCMmMPUlh@?IwtB%6ADjIy?jRFfE=yJz z%_`8D@ENW*{5_agkJN6ZTAo+a?+ylwnX!l~0@eC)M52Z3F6K@?=(BB@Q!fYW2bW^z z3tud2v($6?sx6v+RoRC z2{*oOMaL1f&Jwc@tV2(OZ-y8m>C`$`b?oqkzjlqw#6^@4Q%Pd4z39ApYW%V{{U;#7 z*MucpCJvXi@GoC8GsY}gM2Q)eEI)X6h?tzo+wl$h%q$tQj8UF1d~<#=QeWGkez5K` zR}>xp|KZh6ZBM)t@ck6_O76L3aH9L4pA-E~w(WfMT`_AF-RJzADC3y4F}KkOHR>Ic zMTuudbex~V(#0`xAQ_3Ai;ksNryqyRS38f*IP9E`=2aj$_ngGCAO92F4<^Hy7)vEv zE$F9q^!+)wAJNG1+))m%=vaDHoJ1s@pA$*QwJMxcf#*Opub8{a&x!88NQ{2HyZ-Ce za{8JI;Jp5*l4v#&&jHqRrg>cE$F?DNu#zjS!wGSr(N5n%Z_QG4bp z*i2NZ3iD1uwUNPsz#8}iT(Hd~;175F^=yXT0H;lOwqXk&wh`rqv>%}a`a6K=vyfv8 z#&O`~?s^jD?$hvM~=@a%FwsLhn{D6+0IpASA)J}O*fC(wN&!P(iwXA z_)PsFB$(}DUd`pa4jhf?oZoZwMUwx6s5a)+T*9sTP3!%f)_M9uWF_HJ%&WPC+ZpYr z`B|Uz(X)Tp;&Ulx4_v}6J|R=rK08Bu-)-@Ev^*wv;B@GfbkLky|Tq?1hpE6X)*kPiuGFk~vtt@YyF$bYrpCjUHMuabnT7T$cXd zyqdKrF`<-7Zb9agf4nxWVDn#p`OJ)2-k{RNz7D&VO74V&JilLw#EpgdQ3@F~Yjv

8t&H>2NHrw!)EtUvvR!#6WKzQSUYzd!x#5ZJ*Ey>+7yHvb7{=0xrEz< z-AYy1*w()~yMZIYyc*}nN+tdK+N+CUD?0vbhUQYttGR^RC-*m17d{r#Z&s|JxfJ^< zxgJ~0tH}(vmP(%O?kxGC{9oRff5h|=*rnL+%)A;uUGQ!Ln{nmdIo|6PpLKXOW;2-C zaOty%GIKLPMZf58ZgCMCXpq$noA5MuHi$RPv6M4ZNY7y6bBp z!Dl|dw|dwHGiHdsw|Am9eMJ|2-qV#epIN-CdZOnYrVVDyz&k&`)T`E{lfGs_WzA=n zbgz+^x7bK9F$O=f6%G9Qo4e}`&q0ESCQ^fe*|1`@9?O#k&w~a9w9Cu90{q z16BZBE9S~l$vveq)J%9sue}HqHZf|(hsC@(UHWX)KQh(dVj22SQ|t9&>=7)%Tv;l4 zY8+uBVf$7}#oC{)XU+#`1-id z`Fn^2UH0Q`UWP=123a^{^wB_j#%!1PEme38oEN@J;4hkgubO#ew%6g!x6>iDh5aD= z_yit}pB^sM!_7xj`T0N3_Rg)gFwOO{v@7v2dQ}O%nuKW6GW#r@#XWR;HEe9ADpN8; zt%6q=vsO%MiT75^)}SNcitH#B(uA6dlV<Y~s+w+8(C4442&d-TzV%@9hRYYfTDVBD%YD{Nwul8mgiCe-k$l<1K4mYN= znA+l+g1IY^3S}+H4<#`Bn7ayp57rX!gWkFSx;2mpSu03{$0!vNT)}K-&Wq24$B+oy z3nU6HSV0?nCOn2j*sDMS#GzN1Q!hX43C=L{75*NK1K9+9n|X2XzExq?KxV#JI>-&^ z|AzbnbDzr6EWvLwmNs{A8+1!A711s64uJJcspQEKP1QpaVtO_rN3cGD^$afOwdmU0 z)u{Kj_%9Z`n2xBeyjf4*Z1h=Q!ligj#dBU!51I24t-;>O zxvKU(7wY4sp3i1#i`g#GAl-N)vUa^FS*@-`WTWkfYIJy?%Xx_o$bRoI&4q90jeXSO zOQ!jKcNnf{$&KKn)_~L^YKvJZ*tU`R6d6!`$$rXTqx_ZXQd_5HyD{IghQ}~GmMby% zlRoO&*3Y-YV>65-WRarmNuV$im?M1;?JabpfF~RTk_8v+! zAfo+X)`}%63@prQ1${s&S^9(SD)*fRUTL(!tQAX3+jG8M9JHNEK0B|Adj9K)-u(HM zHM3SM-SbN1-TDCD7eN~b>UC0oKC#rByP~pY?uMo3HmaGp^Z9oQCGP&HyE;oZ@XvVN z^vbe!QtymTuuY&|cjWf%fhAGzy|+eU@%<*N6;oTxW5G(+ZJz(`UG>#-664o0QCMY| z!D4CXeXf4VziYzzy8ofJdUq09mEi@!j*ROqp26Za!egvji| z429jRUW?r;*UJo6*hV0M2>j~$WlEhu9xM}21U^^TZF3tg=LL(563dKOWw>7Ev0Mgg z1M(HuL7u8cg%M8%`~X`Tz6ZHpm-E_o6no}at}c0Gi^F*tU6x_6nE6U2U;QmdO+Fq| zZzA53`3^@Lc+R_l41MseZCMDrV16d2IH_a7;|1`C4xs~jXn9=G{Z$kDzw=FO%*}g-;Ok~cBr9nZ! zb71btF5ar03(~9|Vu_%Q!kSXaC9hrE(Po@t4L!46a%}TenH_*-u;i_8DJqtb-z}SE zBrNA8-{kfTOBXL8U+z{yq-}d#liMrN8dwRDwh~-ZD*5OGR~EDeOO^wcj0rH2wh~+u zzUaNfepmdv;u}vh0mft)*A&Buk}^^z&ENJ7XkK2wwov&2}) zt96tpo6>sKrN6~z9sN3B)U36SrA^MT;|=Q-s5(_0mW=r^t_kz%*;@K&ty=2-BJ|mk z*O$gW+7wGj1~8ZN+BNzj{aeY4RHZE+I4l{HVN8sHa9dwjm#bG-Ju&XM%aT!ct`nou z@yIedxL(5!=l*rSdaK|Grw!IKv6c$oYER_qyN^GYe&MbQwPfd!n36jYQ_}i{3rpsb zVb^}6^hbx<`ftH@#}ZtM39cY=q_&YG#TVEzW5S!1O<`a9z<^xlzht(%Ud8e(SeA^v ziY-@`O18bGlzwMGE&b)+Yw5s48M!hfpRDx@Ul3%bjoOAc6)cHAq!#$IhPw0__sSiI zkYR;cNgVpjdfkgM-glW#QsdjmM?pHUcUvCXZdO^FMFu{qW^qK2uaooVgNAhD97yaV(j9u@ol}Ni$0( zUo4Ne9eYyV z$!A!CuZSBpo0%x4wp>1{FY>V-{;7j5kDRPrim5H8xe%Wk`B-634RW$_DWpRHznaAYb^K1T?>EG01u>L1Ju$_9zXPbSwQ^^I_+^&CI z`eOD@_<2Wb)Xp59iSo=#!n2kv4@=@o5&MdR~sQ>F{ z4TD^CmYiY<`%VjtEg&&bTuR=F8=i!9dA?ZOpW0GY-}FKg{qm8Y zJb7=gD}k6C+27?D&c{$xTvKuHbJL!@&xN}RBtQ?v&N_fLkTG3vLPQ|Bi}D_9|4$Ry zhOO`HE99}bJ!sXcoux~zjq6MQ zlR8Dh*VFKb>98v=O$4^*p3`g0}%>b_l4gpsvDFwqCR58~zJSbz14Z z7dKYbkp(=g3liLhtnD_I4ZJK&j;cUgYu-ipc7{ZFjGhSp6J?zqh>TMge!6Jct6|0| zd%$UI%UOLz71eWXz zuw-0{$uK6yQppv6&Gde5Jy>VKLx@Y2eQixhtTQE+N^V=e&Aa5YzPbxMo%jq(FeT+J#eTM<0zBw&r@~|0LFT65hm5uAy`@U8 zgMOFW;CfjaQT{hwtbQ0U%D)br7t>%7gA*gNN8W>HZN6At)_at{dbKMNaV#;#+*B%w zSWDPl#9|V2NtiL4ohRaPin3(IQ9@C#m=cm+RT)rCKYnbDw-8Yy_MQU*Od{9gS}_^s zUaNiOs_Uy7ukl)KgME-Bm>*+lcim<7jU{3?t&cC+6|^0L_M=)oHKO26|2VD{UlYDo z5%VMCkn3drT$U`N!5ZgAoQ|=d=Lc6;q#~A#`7v{BnXlqmvWPKamaM2Xd`;4+UjG(RGtvomV1PPdF6Q_agfcvn%^cRYmMJ%#1bN z93IQL=Rq6xiZc1cZA1GpK1-LpXK1?Fx5xoX3|7~@P`7_j(oj>A*WFrVLC5CtH z@j7b2-{0}$@W0}^xD8k0Sg)4qWakS0_m{TQ^B$>^*u4){R@%1=or-EL>{N$|?z~ zVF@K5?P_sC3Dm{JnT$Nr;@G<(Gm$Ae9tX2)ZjM~8i`#G|SntFA<#8~ThHuXGeGv<3 zn|}#B2llQ7!^bX|B}$TTpy0DEn^j^2_iug`!4kG63)? zwGuWaAo~%qbYSx`yCqn#xF<{{xg^pQw`_GdFCia?b8 zOH@^R;{Cq72_xV2S1(oS*+zcy%u~xcpcoAzHQP zR*qI1{?RUb`Yj6`mW+uJSK7ev^9K#QySH`M zou^jTT#CssCdN|9W_u=jPrlJb{}XE>mtr!EiLq326IinU6t2`de>8U8$eFc%QdmRHix@*Fs%ZuH zK*G*l+lEL>Rx_>%@pnP8j)U#_)7 z`~JB8K3_B$tZJW}>6Jose6E+J-8Qa*H`PQ?Ro}szikT?xq48A&5fRW%xBil&79WeL zm*GuiJkLNu;EeG+!!i2q5>=}o$W-5e4m*K(;WFDT0mft)*M#SzOokF)vispjCQpwCqnWMfsZ1N9U0*uKpt_ktr*NSN{mnCc8q^-C6KmFC~ zhcFIe$ykDGN+oX_J0X1);*vl7^1^h^kC#1m z+u$?Oo^6BMM$7@??wE;Uf=iAg?hd)O(o;re>9$S88n+5>|Kq_|D*Mp0Z+$?9WiPug zh$ECAO5nRMJjRz^C=q-QmN`1xzW|(93GkdufH4{7a$euT%5c-W1JvPyg=waeK^CE7)z&;vk-gd@vJBPzajPxOE62u(q`_;yH>vF z9SauGXKc-KC73>Ixuis5N>}&@%OB+rb2FJSOUBa7l_65dcYXX<>NM3KcWdYHYFzKU zjwKS^rUmv-Tq|b#LS_utDm=!O=C%=CtQcO6DJrI`+*!i)GFO)Wb=8EOZ>c0dQOu<= zSLU*0{6sOA#=IKW6j(FD+0LzVuec`n8RXV^MRixv{dMR21D+a!84`;{T$)R`MeLe< zu@Dm%<1?IbEIJkmY9pW9h>r7fqMAelDZMd&`HD-`xaIeF`^OA9=Vlp0>3sPoI%K}j z(OfD@>YbjVYn;m*Ty!ksD2G|MX_4`KiMTt_{BMo#Un}#qxGZBhZ17atAf@b=<4=Z>)=Vx&x~#{sJyl+dPUP$%ZS=(qdh*ylQB>lXcf2^;kNT z2;PHbXYBGeEE%9az*{Y3-*6`6?r!s}N$Y%dd z63+)ybdf}H6rJcx{%?sGF?jL}N`7bLcJ?L5Gq=vYVyzMQ!IPJ%lJ!pbO}vc`smI)% zt6LhB>Y+A$R$0G1`o<1S%P~dA3?2x#T}rh=4v^FrZ9SIY?=$A{VBvkai|W34qCX$h zmh9*)qb8)*lmXCkLx;>n9WqWe%Tu=|*ZUI@HG;px4aZ_^UWPp}I&%03BaX$#*RS`> z{AludS<4u==SsW}!tKa^`=rZ2Gr>$8Q*BJU!Pgmt+eZr;_~(LfV}6XKU6!mbxVsr^ z`(%$RC*?i4)LXH^A(0;NN`PvvN^wt`g!j}|CZNG8}_d8 zRdDa1taIkirReT#S0mA{pNY}vGI5nE&G2h>X{5U%+B7q9%-}H}2d=2eOa9E8&sXQw zZ0B%yT(8tLaFX3$5xoqTrW%R8=NRrTJjS}hZHIX+gFQpY#9@^Q>xD%4JC5OjJ+Gn~ zSFxwsBCDuv1810tV^%Je{B8O!uL}H%KEz7RbxHQ@u9MMstenisAzDx62I`{29n=+I z;(;pIGo=9sStLR-b6jh(59B3?pH*hVTRobTTD2 z)lmxvme)CxV8Nm+Y_kSJ+meY=XhV8y={n@Re>_taT)xkrG1iR3p4qwxIo!4x3A1*= zS1oAc%FIscVpz)F2baocWVFYgMJco)Pq1b1;B^np$F6qMdIQDWAeb*LGvkiioIHv2&`E5 zpPcu6ywaU}@vfD%%1SW%#?tb;E77a44biIDGt9wpP4FWdSG(i#%&L0B^1M?hI@_zV z_brRh$VJw-8sDQ=tvVg{TjJl6Z(WLx$+^8J7sRbK6I48Wovqc9DY~3)Ccm0kDuq|G zd|Y5%3RX9Cg-HL z!%l#%oAnJOW(}>P>wZ~9t*Bnrkzgi{^RA_m>vz}G3qGl(`hlWjl8wnZmWGYx=!y=L z$KR=L+xLOP#IcUd&6YOmgK{0k`q~=SS8hWjL`N1|jA)^hsSSGSd0Ur?9`2+0Zq_$$ zLyn^eP1upiZfvRS%9x3ZSb%;GQI|@lzEV1Cdt3jWL<5}zYOC>?(A|Ii_gt2C=`-=u zhmU^Xt1mw0mZGzM`a-xdyOv7cFrl)pcdV(d^7)}tyu2+rCpB4*?^N>7FRJTd-!;-d zO*`guy@5}AAyLO3=J=uqJvZ*11%6dnG`PRq6CNKJtSEPl=Idig3t{4zJ`60?!EBev zs+Rc>i?pRVM1rM*7^d1rZ;gnNevSm!gf>bH)b$XH^;tyOU;>P#EtO*I&i9obqkn$_ zF*ETOabAsyQ4?D#_Hy7@On$ZEB%)F=k``O)6+?#Wa$6tperUfan+dn5y;v?2W2q$K zz3Q!q_nMD*uRIR!yUVM=s;~2`RiE;xN$xXi;dgnpadk)P*XCFAwjh#c)RVkiE|q^0 z%m$)*<{+wPD*14yVS4@}nckk8M|vkVq~gmzNC#05nO$?o(Yw+hJ#6o1**8~T@7cbK zjgBcHmUew{HcZuV>x;u2(;CV+23^MBp<43Z;|Au7&eF1E;(;A_9$^O<{vPZTSt2Zj zon?5;62W)v{!#bpra#a2yWH&3XU4xBzSY<#GFJw_rHy^{8>_eZ7s9KU&p2ap#<2yy zKF^fR(0#;K#2L9JEsqB=u(8Wv#td&YL@1~*4$+hT+Tze>IrUe>JJ*NB6%x#tK_h%5 zrjf%o$Y0B6HmqL}uQ~~~W=Jq&mP%H=e7(Q9VV>6YwmS6Lk|*AeZ!Kdam>5eX|9dh= z&p!~;w;~b(-?gn}mdAr{L$tx;OC|3?)a=(k?xW}7o0IEWa^nZ_nG`-+ohe$&FWFq>Ei81Ul#+1;Vuf9$n znL5CeET^3sgM&l#*5E1-eP+i5JLfOw>i>L%2>A~-_qZ;W;F?m&5}?o4Zd1DXt>c^> z0MlShrNK+@?=5ww>n_nQu)H~qa z(X5Pqykk3uK4ap{*w})MW04&v*lCD0%#vYZOSA2TzXxkOM-dEZFq{eN#oHkKJ$Qd` zMg(I&GaQt8FX0$(gRqT2;+DpZ_1V5s8OX}c{1De`?1LtX4{TnIM(Ar{>)e1CDTdTJ z7-)nCR@QNwt=qh>@ckLIap&YV>XmytrOS#=CZL4y)rfI0KPENpm8dGg$lJjW`Puxh z(;4tX<})ne+V1W{9;`wV2~`M*gu2jr*hADC{vNc!5@D(0B!Y1uDzHXWU|*sF%X{0> zXXagt(T49@L!zaU?D5O@!@PG*DZV#|z<>S-oi2a5KMGc4zKYJ(1u?J{GCVW-Mb$Ox|k!E;ag@RB|bFK9!*R5xoynW{xx{{0$F5?-%&V9BesQ-~7i+ z@3xNPeP+g3TJ{fRU&DShkQjKlgWh~@19c^|QQQ-rW3p$6v{CVfBlOP|F88KmUdd=j zinlthsN9>ta~=19+fF4Ljv1{-O_`8=*7gM;&6P8j1@r3SMs58`FZb7vVVA*sgRYl+7@yM1>=~F!OC_i1q3OG)+^);C z*y`|V3o=&5Cp9q=;@e>Jpn;=*e`t1xsd%S1keGeZ895F-46!d^Dh;-~dTqVU|LU)E zGPgRsTHc;jVH-@PL7&)qns?Ltee|xn@RX%|XA9P>4#&YH8lthU*yi2*XzhtS&pLol@s^C&v%S-Q!ckc69aIGR~u@7E;W?NNNcU<<|pOT9%;s;qG zYC|N7yH5exHPb)Br%?6fBn5zrIji{}Ne3EfAtu#i@sW3mdgM21B&d-Tzk~VM$^UYnvyrTSC z+{Urx)xx}6(LI;(utei!$j)_vvHTQEZ8@23`zaA5FfY~mVMvirgc@RM}bRVJoBkV7kg}BdizW2#>jq;C;>+Z)JqR-T-Hq?cy=H8E?aSi%4)yu1<#g z>o8xG)eMpGGV^q=-s}ByVB6+Wyso%w$&1j(Ol`i;?>)V;<`rj6g{rVFEeNbj%uRvY zey@)H&voVX`wJ^;rl^<9t*WE{2|s-<#bg*0W0>u=_W3RD%hcz*4ci^@ zV@!rIF^1S8&oA{a1fkFqnP|8avj ze==elG8wjRPn|@KZ)U~&-L@x}xtUb5^~@&fr+-}3aqTwGA;Xx*;hKV&fa?3gn1GV| z%tjGp9?Rvtmc3F%O~Ajd7gW`JhS{!3H-i8Ax@1D)5vG#m_hfhcc`+gb!zRV0#4=|6 zcjY*1QOO{p;QuDWtnG$*BScDnVu%`W*R+CPFP!f%ST@^DPS@T+J}=9B;i-j$thpsF zn(s4rCC9dur65EaJN>mI)OE|3WM8}Z5{C?98qCrWLiWHOb=h$B)`SwvCjA57A7u=E zBxl4gM>OW5V|U3g8AtcKrgi)+9ETymxQA}94*z+(y7Y?fop$s^J{BUtm<%)RS(a?g z@4eKzMUDJV%azhB!DJX`ID<93@ipq~bLRSIWFPdo6#MvymyNaWxMY~jK5MVzndsiZ zO{p)vB_qG~hhVm|^_6Eh&wS{}K!$zWdH=FwBjHCzS9dv)VG)B>JQ>C`m_6Qu_lnsk z{$DJa<;p}ttQkF47@zRhGTLNEt;ceOj}g77kT&LbD{)KdG3wS^rgc2@)WRUkSYS&5 z!NWui*OW@u98l5Ed#{xq^jVfehD|xYT4KpKe5=jU+01{Xk}u53PA~sFOMkF2%OS%) zf2vwyhkOr0LUuAXe;9nDW@l%|QNR4-GjiPc3M273e2NSALMC`ONOFH4-O3Hoan+ z3;w$`2l>PP-Bcfd1h3Au-#sssU`h-=kbT#B@rBiNzx7!T8MgS%8i^q-pwq{-V&*HA z{Iy?sbNkqA6F%o&z2o*Y)9 z@gF(r(O+V^2BIzS8RMgYHz(?4k2F{g}f7G_-Gys|UVt|dZnrIJO-Fk6ae zqAO7*cbIx>NT$Ey;*lQHS&}U)YaH6^ay-Y)09Kf5D{XUaS!#E; zBMZ;;WWAcV{rmXxvrp!5doHz=0Q0v1rg{D0!@^7y zQ&h&&4b&F&8X%DnJ6f{8OXhdxuGrT^d|0~fg$^*#Mpb-tsH%BRu2*Ide4~f}V`*37 znw5RjAL!LDV6cqWoT0P0hilBCAdWFB z;l;Y6j=KBq@@nUBGZQVfWxSq@w0H|GYlP!K;*49$s{xq5A7Bs1td-1TD=qUlXQP$K zY`)LS9+9d315YPrtsH4QH}h@>NfNX%XXa9Ga#kmG1QJY6v9vtrckZzg1P$DyURxII~8dj9Q~LW!#{XzR_M(_ftx zgZ=!z>WK$8;|#7SQ&cXsm4E-(^ao(DDuKabpMP0JEm0%Kmdygw@bS>>o1VX29fj4B z&u|;uw)y5{2FvcL*u&W6qh#OHqQziUche_6`+JC2ko6XkM{*W@R}xm#7MTs8LF!Esquc9()!3Ja9tx zSTJ!nfr$%CK_V=5N*fhV%=9xZ9;_~V5OKUH3m3CeqA#`C;P9^fV4MHohkey;k0AaP zWyoS_vC7&Ub*bd$V>$j2tPbyDW#D?5t`gm=%^!#8do)Y9RMG1e%@WBUjo7tHvK25n z#XS^Db^9|hLxa`l!iyT~nJbh^)iO2~>-lbMEO=7oN)yeMN)|w0IiyKrwG|Q}IfYUz zA)0hslgnU*rW85{a37LUNml2kN1k+XF@4-FixHzKoUMKkyafTTzmWI}uvY9&) z6h)AwU44l}w%IuaYYG0C!D6}!bN7>b{at@H)h(AGW(|>3OjNP->GUN*8-@B3+z5-}ldv95SDJb|F&=bYv z6q8Sq)BE&K6q8ddEqTMECyHk~x6aa%n>?EB{0wqWcn#hGiZ*%%<$9aHd>wI6Od>VT zjVLJjHUNpFBNFM4__65{zdb*v?Bf*^hD2(d>oQoj1<^qAnTY0L=1bZbf5Dx8D&wKx zo=4mj_ar~Z?G;JnvqW^v5`~)7pkszB`ZeD59QXxe94s;E{@>y|U$xoNikpeitSp)> zjYbZ3DY{lHvA;~o#EpkV4_j2f%lCt?Rm5Wz-j9$Bi)gUo$T0JD7wV8zBmpbHSNr47 zBqcA^|6swY7IzM z{nW!)Uoz+*_A$ z<2_Y)j4R4DnOOqgb|wDjy#HkV9_#&5$v>_eq^{lcu|Ko-=MLebm)5^guN!o9Q!V)cETa*9x@L{3n+Budgt)lhuDSeI{QomP$({ zYc%Sl-kiSFzha4HGt76tVKa>O+?D9JIZM^tnw{Ri0r3-&8*Wa$MS=c;*)FEUU~ymD zN>#h3qTg+0mcx=Y^lB#RCt%Hh_QREE^jVh5_#!(S{|$IG%aU;$cj9|Du+~6YqNKG_ zKi^u>D+_HD6JX4bNpE}aTpYBAnfPi`RUu=L*9E;|0*s}lhdY*~3MCFty+D=jGt1iu zy$_Q*EFG&^Gx6cmu%!pRf|f{$wn#KZd=I2l`@3P=Mk(gXoHbE@_-pkG z5`#74)p35!0~f2B>)Qk@nI*uO3}b1miC^9BKbUT!`z}Si*YB$*4!v*4Fs`?FGAyLQ z@T7*vc;-WzD_9emKI6KW5(|HabSk;**SfrLb}MpWw{qP6f` z?JHs&@O0odm>7e%;p%Ok_z4F-!bF@gCFYW0*TUE5+e01H+a1RHCWZ{`ocQ|TdYKr* zZ126^D-A1F14M`6dYKY)$*^PI~Jr zMwhYtWka7C{Uwf}jbIWjm3)5^va+|@=l%D|%35?UOB$grl;V1MPD2|tXQ@}KO($Iu zZE(FzpSf+!gqG-D+)*% zO}SkSd~ay_40uyMIf3p^l^@%JU^*97Kg+(uvity-0*nM-3{jcW>QsrmqHsc=zrB$!uYj_p+X%#v&@A;;Dh z=1TAxIc8qXa%_g88{7J-juQKmxise0SQY$Z4Nt7u+az;v7{^L{$#A4Mp7OQE)#9URtIurL@|Sfy_^!b| zfhnj|@;}H*QtQZU|F$q!3cfk8gA}i8>rLhIYU~{?`du4O`?TKC!Cn;c6E)%|`e!13 zBG((cLdOTRL3`LUGL;rYb<~LJ=u1>bF2!SVCGPz_NB0Kj)f~1vX1gj8ujX=IcZ|){ zKB9%T`hAPfrI=T93AaB>X6RY@nR+RhI4;G!8gp!^WVORF9RuN3D+Bj~s5a)+T*7TC zVwb$xJWtoa4w*|aeJ1vg4O3x#4=fEmFUr$BaL>mfej?vzz6$O=UzRn^ziDkBJsoy6 zu9v;l*^3?T!Ka7l9p$GNd{t?_Gk0rzX|kn>J=?BCLc1X^G9*M}um=)$9h5U%N~C4w zGuCivV^#U-9ls9SFeDpGyAtnRG)VhrY)Sw5AiV!5D;iU6@_bmEH}YmIyFq6@Gv0r7 zrpZ`nc{OI#t*`pt2g?yYM=1rJz)tq zrrIQrqHQ~sd}mmD{mN0y#P=6?^1ib<=$TjJnjrC8hW=v=W-X#8%K1-cz;x~nbVlTlD7d9 zZc(Y?2shFDEWYzX-RH?%eeHM8Il0dy@9P;Gk&CSUZ#fb3B@!c%A$Ik*N|)Y_s6#}! zu>^B$sbrHaZFKh=>+70F=Q-KZ0R~48P#>K89Bb(+gJ>_ z&*t~cWp<6Jv{bU=D?N1oRh4zS-?uH}GtpJZE8GXkH7w-S^5x1xk*asDT>)|#_W*y) zt1*d|O1?LGxA)|Uiuzyc+USr5gFb=jGnPiI`!xr=K2yr5Goi~6iM*i!$)>nou`XH? z4R7a98tcLL=ZJnc#%+YhSkFUBEYM{X+Ps2U64q5%%GT@BXQxJ|#Md??xDA&+%SCps z$LCknLrO0UETfj96L#tGv4(In86@#t8_*oDp4&h_U#OX2`iSe5m3sF$qp?UOkvCi; zZ+KerhMPATzBAFQ`lSlFGSn+vk)_>2t_Xfyv6x5%BpW1{I17IduGInL<`{T+1%Cr_ zbMP6a+T@LDZLDq^VZFt*f!}cl9~!N*Cr?O^*ey2t!oC+72ahk6JoW8ts5bN7#c}v{ z#@Bstbx)0G~lCj0>CDo&}T<2I+e*%_F&kv-yQ2mMF2 z1}b?j;yM$_#$1`plJ%O?U4Q%caw-KIy}a)%$tFFqd>q$={Ayt0?!gD=Dm6aXEm@L{ z2{*1OmAt*#VEyTlnO+O*WaRqHSclaCqm{nfd~Pli_X%d=J&4fM8B84amuF>>nfT~X zT{)KPeK*itE6c=j8{9UuY9mJL&Dj&O_v4<+)wL34?n0+4dOu?2PB%+XDx4)o!psur zuY-BDtV&zI?{oe2t-_KK)yBMqRntcP9 zxT?_N$QfITc{P`Cd#83=?_V$W*WZFy<5JA4F~^4YIsChJtm~u4fXCrdU1zTe>3-(e zQpwkQtoNR7k*BZ0j*QQ+1hZ?1a&v1rHRpxy`ng*%uZV-|cj-s*+9To7h#A8qT96M? zAs?ice2~nmF{36Hvl?mmCkFQ;E3?`8$=OGYl56;9dWx=bE=xqmMcbG=WLJF8`~O9MU5bwBx`6Ximh+0v#2f}MV&bG% zAj3{8!KI>Ov28bhBum||hNg$^%+h>@DZ1XxcE)Y~Fy~t7y<=C#ca}0V7)vmZhbO9D zC%t#dQvZ3_?wEGzy{$?ZIgs$+eO?%wN7{T8``G_Kd`z1KO!eUI9@B z&qawqff^JObzD;_IqarI>9haJQWasGE^eV8#Vc!_hd0bP_M!t+(_*yR2_~B|{-ZqzsL*YOI|55e3luOvz&Q~|Ovod$t zyN!vwkdMQP6aF5oK83M&@OF&FgxU)7u;S`+sqpteg5#ct^+F#m27- z`&~#d&&QOYdq4P^+_<1>!p5?2CFa&CquRs{_^(~v&fy2S4Q|`@9Sr+k+&J*N%MUX3 z$JZzPJsA1jh|jRF(!^kg9G*d4;W0`vB?!CPJ8jgcnVquVIM_DGMQ6D?X6;-F)?bC( z9qMHokSRfTzssfa=Tu2pZ4~o(;mENkiRFiF6pq724G4b^M$S4i8Lb^hc#Kk^L~wPH z$0XEvaZi}@b9;4QeIK3CcACHXz!rba8&wkBF2UPtO*fC%N0v?{|Lt|stzTT~-vtVS zS5D^R+*Pz^qO9&v>Y#ti$5{>y*eqE!F>4?8BCydj^Os8A{OeEtb-87ABX~gYnQpVH zCT8Rq31I94^$dmeU6XoH!*RC0O0S^m@0FVLCGvs@bR zn)5sK?|$R*gUn!cOPf4#!V)42-*;E2_usvu<3VI( zV;WFMEz8|883@0nSyj}_`1jz2E)B>8AlHOUO$Qnj+_pYXol&RiDKwz9RH8%fNXXo5>gS+GVYQUP?!ZP-!yx(FG z$*V2MaCtR+(fc{oG$nLyecNWtpZ?8k@$x%sCkEuO1^T(bazeJLH zep@Enr?0srtq|qruWrtRpVSa};2Xun8IyV@efC1@iKDZW>dQ9*kb8qqP z*5_Z>5L@6)#kH8!V}cJ}tWQm|?t8zoxQbX?T#LColkK~s!!+kR(107!M=M%u`AnPZ z?xZg3t)G^F?Zev6?ba!h?5*ug@Wmqeik`JDJzP*+Uf#f9`&fdhJwz$Usc2_+DJ=dT zqrG16mVx(<@@G+H<@JIx-jA`!8$(j;7Qquv36My9ge92s1Al(CpIy50OU|7avV+XQ z`Oin7854D0#=^MHSg7edzK_j&w?4SLCZTMn@Ao%Za$P#y_E;#b$3F&lXL>X`SDv&d z70f42&Z%aQdd%IiZzP_<8K9{^RgFO;XeQa1k5e(}LD9KBMWIhR+fUbMXqAKBhikFV zj4AP1Rtx(-$D!evto(hNXa1%T%vK1G_A zV~S3C3;8VB4a1(+!EGy#3b(okE*v2lbmTers%jOMAMyin|+q z7^A`+$F;a`^;IN&ouz*ib8ylhO7CQ3S@Us9;(FX2`>jY%C+z_PD?rnhG2I6rk^SjD zxbIkGOaDQ^5}5fq%$)f#X6>ZT(kEX!Uv6Qwt@NfnV(R=j*Ydo)@of;;yf$=B;EcHX z_S1o8PW$0~>}UQ1jWE%2OuLzcTQAtoYgO-Ir^9cXX*s6oxFt7^mxDN7wv6M&BpVZM z+>&|Cx%X>{I{%uR8S>VI^btO9=DC^*?ruzGYx^?TKBXo9U1?8=oa50Vmc=bq#Qfiy z*sI`^%CsD_cHB}d;s{$rt5ruDP{cLpo9&SZOwMsjh&cdzRA2bl4un0*qvdebSb|$J zH4`2!2MMo?Z$NIzi&^7pCcIjZVEd5wyZZ&H_HOdOQNa}5o?&^zx$ya(BfeL!Cos?-Kue0NLe<8k+Z<{2nw(JzpaCsPwhHM&j8sA%9eje?A=? zow$NNkq6e2^2C{E_eN|VOZa7Z&7axS+q!zShNzZR-yrpvgJVAK#-tu|cYZl>1ucEe z`G{Y}eMJPHcXr)qh(2G5b4BOph7tzb$McYuI89EwytAm6xz_2B(a2!?nCDY=HNEa) zrM43pJq@6gLmn^L`i?%_olM&o3)$uIKEHzZ zITLxz;7JRnzfym{YL_+ghiB}&u`gj-j-{oI)n}2NTdLTh3r+00u()%(Ozm|$xgpf; zB)$`1iG@x0OcQ%Skt%i}M2+BDJg5EdY(z9&EivkHrZswCZ#xZMle|}BI*&&ii|i`U z()tXUr-vZMFYokNf?HB|3A25A|H*8hx!-*`wXZ$43XKrflx=g5Szx?bp=aNvonx+9;9Z&W&!irD-fK#bFwd={%;i8yLmtkHO%{1f!^_Kc)eBgwU#iQQX<3m~|ie zVCqk{tMk&C{NO0CeP4nfJOND+Q-AV|_MEiHJ)_(bY^hT!+j%-ovxa0rw}flZGXp*a z(8|lRtMk%vOW+O0Rkr&)HO={-)JD-&TZ-Fb&9*U@Y?3 zADPzo1A2=OK`(P#Q91TBj2-Ja(}&P4(b~>!F%8I+U@Wry-znDb^?HZ~@bZ?K*srug zyI7H#3^e;VSuojd1R}6ie)tqsOva90`R_3e$dsVz?<4gWqn|_{&@(V`$o)aH{X<3j zS;Sl_J61<%Qe>ghEvd596lqE@7MXKonDtGpg}4e$k<^Q{e+hkH&0sQ+`vaG{s*FAH z)%Df@-0j>J-|hSqfRAcB&D!#AWicC1Ew?K*w}Bk=hi8SkLii3ozuww2uZ(!ei>sz` z+$lXQ%8+3C5D`hsoV7lAqM&H}z0$pE;!x>cl>~EzvB>D7&lZxP@ixg-@?{o`Tkyk8Gcr42zTp_%7KI&?J z^FyEbWq7yokyeO7=H?;5J!bNQh}~|>816EDJ8Mt57E6OTTv}mCt6HVR?&ax%Z9+^O zGKr}63``tqwvQ!bS^usi7XR>rbGCL5tS5dZJf;lg@9Aqk4fW4=5^ra@>Szh(1X)`C zZc2Qg=tJt>^buLsBjJ{C?{@vSN&fgBPNzbhauJ7GBKr5Tw0Qe*jB3T8txkc# zTb=D|P2!L#!->u2g`^!<<NW zB_uPbC4Ax#_CZ5JACVH$!mA}TeHe?pJoR3Yx6R#4=KfD*`qP>4m@<^3?PC8OT9^L_ zM)h~|fN1d6zt+w9Oh&PwSR9((Do;2KV`r8S=jwst;&b~J`!*1V%n33-XiBs_U8SkE zBC~|Nf_h)ddGOR-@+!2o_k$l~eJe}IYp$hZkz@aK64?xn65*n zrhlIlPcN+I#PgZ_ATxv6gFqslIvR=&eg@}CW*jdyRG>Awi(Vpjn6tf67J6&)fljS9mkJfQtNqeMJuEyrm}5o^2MbA zUst~e0+MQ+oSULC*Wdq^-j#}eFZjuw30E^=C>PgDLNga72XLC^bA-Y;^A-MrJuJA#KgNZ<#+15v}{Y zA>NE<24$2@Ch~YrER9S8;IFpU9q%m7x6>K@qzJj*J9uX>!Ns)O^|Hjk-v@g*Y05YlBYlR zs<1e;wxSq;9T^|VPFWsWmZBt>#{(SV0WIL zFBF?oJig+!ZAuh)_(gH%z;tJL@d+;b zdiXZvGTn3`jmbG?@M4jNtiIyEpQSiy4F_2Axsw+6G{nQ@S|$ycRJE<>(&DW1V%Zs% zT#?h~p%3eP8nbrXA0j9tGwHO;$-)75$9x@gcTDi%npbNpM%{nb`SSJ|2HVGdaNn^= zr9YBIk$#Ou>scn-$Ne$+hIrvOAoYA|k4Zhb!jVMOXVjSO3lOg+*Y-(y8jAJ>8j8hF zkGr2)J6}3rWU_<(+^!;?Jz$F($4pX>=fN$(Z)rj+v3Y!1v22ma-SK;u89bb;yzNB8 z_QgeXCO0xjJ#IG;T@lh*=VOtZa;l4Q{nFgMB2#os?RmdLHvru$G7p{E z)6SN=agUtC5wBgW=icw`+KxzU0+HCn3fMWB$YXNO>%)~;JExc^U$mWlNoKHjEw1?5 z#&pH3*41Q=YhwnISk)wc$aX0rp=2vDDF>Lc+rQetwpAB zflT9ZnQ5Hqy!J&Cv>R$MV+MMl^jl)l(w43*)#L6kL$8eU=Gj%>tU;!^L89ZpX50u?e$$WRNF1!k;tx@+64W3C*ThYW3o)Z&%$hwg0?R=Kr&iJmy z%+=c&Ww#IZDpqf2Rf|bI#nIyn*_HSfOk8-~E=T5x<64R!Ph3H|vhbPM@VYqMeo*|b z+Cv<^2F&)E*W^1a zok5*?TB2CZbWt<1$(r!{&j#Da((+x~st@#xZXe^YBP(2cy!AD9WX#vev!Ka9`POcp ziQTM{xH(yT@OFwFMLYl=JKx80FLA0Lo*P%S^wS8LQHxGqoRy;-Bzyk=E2ln zEOO-0P1gS^r;ERkPneIi>a*U(Y-nyxt5m%7hjH(0Pf1pita7A$T{TCFCQMlC$&EbYD39b}{idEQ)-t`22V@pu18>CcI$V0}jIX3Y7jWIU&R) zb?4!gQH!}kcz<5KS8T7|&8pq6p*wROzl3Q(Q{uyS>Wbq7ZnOReD}X##T7sEDmd-tM zO&qdB!GAY}PG#d6bZ0LAtNs*msChL%zn&xxeeVmmk7z=|PO7jYGG@ZO-aM!FqTCXwl&LMmAA5&6+n1LR zvtlK~6H}oBz?Ui0Jk0;Nl&R3U8Y>LFC9Lu@GQFxeNPTVajWe;H=(1v8{7|cg!sqUg zS&leJpTU#o3TId7>%m9-ax~3vDRC$2d)MF~xsRP;WD`u}2?QDT_xT zjZ891-%-s+BCpI}_Xo>CVlyQ82-A{95tCf=k?_)MR@7M$u47LHMd#VluqLv7ko%5B z#0xh$FF#jL{5iUTJF0KaVV4RCW*^yB=#rB`O-?fVs79#r8mh7)DxnK+7mOEutAUt; z?2ded`;ep3eVfl9^Ml-9>dj@m_^G~xj7iQ+Wx3LY!uokMui&|?E@I?o2dw$9C^9X{ z>|+;XuhWqiVv%-;GPD3&5lD z%9w{YCwEjV!AGtu0cqSNmERN<{%B#P!M}w0N9| z0Xmas%X2bkUMy{i^|C`R#RzxNdp%K1)fPM6V@k`#ES=Y#l z$o!zBC^dJ9xaW|N>*8QYFki{FG^r<9LeC$#kaXqZH5C6ns?rf}5OeV5C@r{k^2On2bBx32{eFI#XU}ZKLIDZl0^GqFL6W zkCr&!o*zEbCOOIeaDJItOSwZHy?UTM>iPNc-tRSv zOUi8Wh@+v=$?b@*$Djjtxmi0iSKc) z_{bw+c<&_674wm?$Wx^TJ7Rx6F#@CFm2=`#rNh~+U|qu5W$rQ-Y5a1gb#>ZBXY-IY z25Z^vt8$(MQ(0r>3xZ5F`u9?x855O=-U@De&fPgqTF3f9_Wop#Pi`p|3Fox7C&jB+AAGI6 zcQj?lT%z)Bgzgoi1$T#d;WFBkj5Niy*e}QQ#c8>{wf*AKDpp^32uZIXO)oMVrCIpT6$J>CoVEHqSkQhPzMRY=vb4OK-Gr97x957R z^5Qb~Fzid1MPzAt_e_5rbdB4`P|Ujah|2b_a$iCj{a9Mw?W4D7i65rbux~5b-8#Bn z<$}=XhtIU~7X>rw_EGSkZq}Ed*0BGxRpm0(R3rE2`o=Z5l#r;qq>5E~b8CA$=uAml zS6_}JxEq)9>>_lQA7%s#Jm1Ei{*}~n`bW4A z?pu9%Y2r|NP-%Y{rW)n%Ce?U7&l>iok!7E1l<)Fh311wp#r>HQw-#t--GZEYqu{5{ zL>}{sGOn7RWo*frH0uFm+^i2qk!!I}yD8E8?uO2b$nJO*nHQNwWR_6smUY(0Smepz zc<1Q04Ev`ae>SN`Vj`vfT4$DYW4Aeo-DbJF-LB$$SKpb?gq z2F)%om&h%}A|N1yBq1aP!7L(6a7(cWvV{nlHRKJ+LBhhLsSV~5xh1eNqyz9+M0_t9 z64a7OHL_jJE8{DSTk>^eGHz6ZrX|BOW?;3%A5)FYD}s>zag@_y;N9Z!?E1oIq5?KE ziY$%zK2`6upS&=|dH?A~LTMx1K5TB+WE7cd0dcV70kW85>odwoceEqTnvx^uN zUGtpxONI3{=UPk&f;glnidjTnyLNt1#>=B>K2gjfvh?)Z%7m}~L@|rV(jDfM4*O3O z-|akJmfq8%blAV!SI;RbDjrb0ny>SYrVTk;EUefylUMZhSJ1s0OkBZH`NBH09JgfN zSN;)GPtE#kUqb44nJi>R(WKAheX9OU39jX{guX6ZMXuu`%)$A;OHFEz&_1X5)EDu# z2?TuVFJSw3el*Q5OKt6qBz$R>AZ=|_o?WiRXP2`KV&8rv;?ScHWz@nO*d~O31Rg0} ze-2%qts+k|yNJj}KNhox-I1Ugy$pf@o3jZryJ+4eejl(dB%KUhdHjg7IuPxM>=9$G zTJOC0tb2BSIuCsismJ|c7k&e(k*}a%me;)16GN?E&)g+`X#sB$j}r{o%=Y;#p}c}% zMz2d8`qE4sN{NluKI=^4F7a!DIrsWA=|kgO2__49RCUgt32Cw%_tm9}Leu0PCy4c& zi9>G5Wy3w<(38Mw>G6Y*_I^hh@!LThzKwU(`w3g>;Sg3)NO-kSHi^Ugzie&CyB4yy zRzsd2$}`Bd8sC%?+WrRi)X+1=A}0}9^(rC=#SIp6^ooe z2K$@u9N=VjPccY6)@v|{7>m5y=MDR_Do;8;Y|M=F5ti`3CjT$u(61FB;!sAFe|T9L zdvA~RP7i!}DH26}{W4dks1#V2-7m=89EBN+aMe(Y&qyqC_kp@ji>-C+F$?P();=cn*zyNE z=aHgLxO`plC_D$);>H%f8Mb1D*VWjlf$l`)w)M4 zZr7v%S0i##52uAVAR}NB4an4@ zpQvfT9if7DpZsT?rx9P2YpGTAdi-GSm0HzOE488lO@1&pC#-6z)!?*yrcHh@cV<%5 z!Zl|JCIe%ULC`=}U0lVP01YG`QLOe^SDGn7@XpV*v5UT!5kCwGuEknMQ=;vo^_%J} zd~BPL?^n&l$+FJKr{2z*yJMb@CFJj#$5RrT?UULeeT1cNEFpDBT0%$;nEGQHkXu4tnUqpu&*XAV z^MJKv38n#=68yhuK*Amf)6LJLeK@=e(95)V56~1I?W!ACY&4mXKwwFGcpDK|Ms3_4VTi@62&7ua1Ru zTvyGQNPdvHLfltJdx+jyH#uYMY(s);nWUb~?S#Bej?C}GJRj45k{CHP=2&R7lYyP( zz`q|5-D+KSM7^yJA7KgR8$dgON_pYd8BThuvkv#p{c%fpJA>_;esz4)MIPIy_(9F% zXfn{J0TcXSRP%%Kh^!?gv>lk~LqutA*-sR`YrGrdSMx*ijIxC0jg-As>PeuKfYw0% z!#>R=0HtkHmo*tEGa1T#dqM&N@=w;1M|3SF4rN*H+uJOc(c}YxnQly3-EN>+xhrZO zGN!EGl9WI+UGc*6ZZuuQl+}Hh5_%qrT_TCNJ|bu6^|3)l)734>d0fhBA?`am%qap} z5p!_uUqZ&1gvTE9U)RfzgKq<92bB*!%ARLGcKxoWQ^ij@iykQro#Keg$+d>xD?+o9 zApyNH^LX%}o6%WRtk%$(gxH^4i$`cmlx>+RhJKmlTzD7$)WoPUsb}(PGQ%-49Xm41 zG1p>Jj|o0RzgSUG?9C`FT73yGZ{qow)MJ7VUN6rV7PB^06lLLi&b64-V}cKK&0Qy) z{BNa*aj^VwErZk}f-e@Ck(uRuf*jKS!>*5OF?Yv29yHrCT8ILNhdED!?c?jr=gqw4 zuU;JHjLdE!enu2pZkN68*&83vM}+}m;7{Y1T===J$@bCRuAfJhQ?Cdl1kE_R}! z#S&c0oca8vPm9wNjyf%;gWy5-!-8FrJ@;Uw8NZiIif+N!gZ_+w9R z=ARL@w!3cvoGH8&W~>PHU8-`vFn7m9T`cm^Qej=$TwWYHhs-BL%P~dA(s-ZWzRv0) zO51zSG;}3Oox|4_zN)!hChAOzj{ES+_+IvCH~0ITNj1IgThy|X2E$K)KhYf^LrziBQ0 zg;d+3un!WQCyA=btI#gqINTrdX5_M3s@OZ+uCiKc+9?Q9FK@>|!N)-ADP9Tw7igC$ zF{a%R5eQzaTmEWc9m)F6&BCX1>Us7-oHv(n+YCPdcjlq0Z;IcGwzNLpKhMp5rYSm) z)XOC?6TI4+4F?6Ih}i3LPzmmiM`(^J_q!HfbeM;Fi=ynkYZYA=i{z%_)e-fsMHv!I z*TIjhTDo}mu}#jw(mHc5zB$o{d}l1{fHEZbIw5-ma;vp-`owQWJQ+Tty}**`2sCPE zphk-r5Ji$j_xDrmb-RCd^Ve#=j@dPnS35c|MdZ0D*`5Hxjrls}?o3ker9d;0aUozA zhHabqI_B=UCFIDxH(lJ?c9V4rauzdR$J`ya6pQTJoFVRNGTthA=x0Mhp52A(phHYt z51pM4*=Ui6_rc3)_UqsWd4^2tnfGq(nVm(0`x{y_j;Xi?x-ITQ-7(N|;yU4ayG^u*JAFDc|7amHMCUPg$2=Y)Q=A%Ry}7W3 zNXGt(YxSD6&W~$A8Tp`f&djpj!;WkxB$(7QB#7E`ueptDF61?5I4WUxQ;X#MH zgy}lGosp+;2l6$_T#d}vF?Yu#8hj@5C)?5grie^DAKVuA!P4rxR_+(%dyok*CiOTw zUo6s~L<8~ffM4P@f2c2JoXZIvK7qRg?;@u2SQ;_tYThem73=Ce(x#C?>M@jG$1j9+&5Uus&|UR@R>OM6j<yK{2@+RXMbB?zzkKVTzzZjlp0 zv}u-L0+6N6bH%mNO6G+6HgE}!fSD)mKX}hRHLsXBKM1;TO#|W$z*kLL{yrE4i-7z7 zV1AIPKbH1>M@y~`i;W0;?yk=}BCm(eUWi&u3C1F;|5r!Yvx-{h7dLdTpw0%xG@vQ* zNwtRJ?~cQQ4J*JO4%b{u@Eya_=DG3-9+Mel{>zXsG8T5~v?H`?qOykHknOXX6J%1a z|JR2?x3}7hJ2c@r;NI%^{|t#~-H(KxP22C*VoUsui9;TVU-o?_RAxE9EzYA@z1j68 z!8$Py-T zC@-J-Q)IDbc;%ZR5Kz1t^NL;{5HdMPt~Kx7RUx14OZl>fD4N{eX@Pk#AG2q9$#A7G zG#;>pFcD)=jZwa<{W4RH@=mN$u&(I!enn^e>;?wa_`&!>;YUZ|>lc4aAKsX1WDd?R z%PXkPll(8Du@k+>?Q(yy$c4@ef?NJ+U^fI)%`74_iri8xGUeBy!DZl=R9`;tD7{Tx z_7SU(v`zX{BP8Mpi75Bsl_B9tyWcn|>swkMm3qtVgWK}Tknk*xu0-EBMxeq28xj+AUNZ&zb`&gpf$kO43 zuPN5nm%tS?ILJqK6b$QCf|*G7ITw0m;Jd*u!xx7rO4HAh2}vd#O{(!I{4C2(K41ls z=Es?kWO9;QLWEe@gVQc#S{-2%X6lb=KyJy6QXmkez?M-8xOa~}#PyJ#ho{cLHtD`O zIafS$kX{)Q9KJUz0@^!jK2ar}etRv>Y0;=$$13)RLL= zp2zD+^E^;?vo#B3Yqn*!Wg8OR#Ov?ktk;Y3R({^|QkxVTzI&%vj{mhSp;DqAJcsu$Dci zmJGMA0R1=Ywfrt&X+-gWeID_t9T}gR-!e=ens1z|V=p=#x@I~B;a|dBVyCL5JpU3V zDq)*AzsDJ{cDYmeb8tnJFLT{Cqg(jWJ++FmZ%3*0G zm82$C(Yy`qLG>POdimyt25TwlJWVw+cZn>=f8T63$G=)1nXD!Am8WXl8P?P$w9a4F zUh)>0&Ue6bUdvi)iy}*#{2-5nSwfQ^yq28QwlpRHO%76KcbuHz<~WQ?|1@bOlh!4! z<>!o(n$$KRs=C%+5RZbYVh)m}nTd==kTJ`B&w?`%Ja)bYd~NUyZk=nLTRz8m?4OPX z2g%pG(m7f=M&q(#4**z{Gds=jk%iY z{0Z*vK|CK^i}^v5INbNnk$41b-(gU6T#NZZlQ@ikIMn;nH`9bCiajxV#-XcC97y_o6zGw7ltSxa6&_}Z9j$(|=Nt?Jz`I@7WGaJ#MYCVQ(7bA`wm zwtcxZHn7*p_h}o0IAjTC31gAm9zs|L@jbwPmeNm3#{q?I31soGK0}-$?RP9=PLTOQ z_5=mB)v1l$@5hW_p&7~-XZj)Nsqy|`GEn7dP`~4e>fOec5v^o2E3U=fJEnw)*R=;D zt7ma|Y%$fw%%Jk1L?15UR{M(@b_`71`|ETL1yCtC!u+7}pwvv<8xt$rou8g&9YRhE z~ae~Yb za!ZJ$Q|zoY;NgPyZ}6>UPLTOQZV7w1j_a*s-<7d55V@W?LFNa!CB%(NpJv@Nyt2Iz zBr8*YOapRDvB;lm>e@4&FJ|S(+2ymy*T%da-~ZLkYWYbGJ1??%$fvXUfJ^SVVrG#0 zhVB(PGt!sVwY$qqu|yoQ1h)jHVRxVSgOj>qwchD4slx=1Tw{nno0t(i(z%U&9JXzF zq|_FSO8Tl%E$&-=(prLB0tInzL+kL@o$YVn zYrq^F6M#}9>~lrGU!G$9hKz;H`h##IvXK4IP2Y1qSIh}sOYQmRD!p<;XYQ=dc7=Ty z6>)-0A972uB7-k@T6T7Uu#TU{ydtas*QFY(H{)77|Q+q>3ktjo-QM^WnY*=NEuRb2iPEipanOB6zZ@mik?ZlcG^(3$kdSys^68Iha5>PMQph^7{QR|oh^dwMgao-&8 zy%LKI-tvr{v~ia;9673(6J+T+J##`uXJS;YAHcq=I zC2ye1=FT$bYCrpdKeOXG<*nNBBY)%Y8*@swmwtEN~GSa{v< zsE0tf{WcYGgh044cgIv4({AtzYo26(GxPo}d2eehM|vtVAq)!8kre@eZDuOh_w1$}mI1z0jX z+g=$@t!FpF@6g=X1?zmlM;+U0#KCy61OU5^RTW0js z8U4^!Hmq;mO2G3F`%-4*5FJ0h%d)Ya6hLfsZi|^XX629%@=}_0D`JL!Zw+y(qTO+~ zpn_LK%H9gLgfxnvzgjH6@|6YKoP^*F?d+)`;E9 zo&F!A56aco;R$HcoxPUJ7f0p^%XUqQ zZe88qoIAffXMMifGPpagH8Fb`eAV)WRi-~!u$p=nEF$&f71aAHrt8#QqIYCW(XoWQ z=2}`wu&z%Zk@uA@O9@{)h)AA7NAhIWju|}7f+#ZV@R1(EUU-w!s=3MCG3_SFj_NCq zhU)y%9@pdcWlxJ=ryg}a{RrAY;_H}DU~&POfxwtNP-uel!>`i~ijJktK6Zm}J6~=5 zlCcAjoBSNSh!d7LO}oyYljyqaq1Mtvamj@O6I+b1O? zmC`oR$G6wv?leo}oe`HSB8gn1l2+0HM#Uq zx6QS9gyyI?t~1kMfgBNP{EFJ$Gb}9eIl~1- zlYD2L=doMjBkgBpho+rS7Bgn$Vv&x2o^hVQic}326FxFAZFy*7nv!5v4g_e|_0G3h zWyGt91Ib6Gomd`fKMTGFcsnyI7mH+fn&yl_RO^)N1|~%}eMP8OZ6(3v8}{ww3CP!Z z@jD`?v?7_)6X65SMN@A z?_EiNKK8t8qYvtpL9(G-OFe1&`53!;p!jB3qxk4VUQ3;ej-^eB>0pr`O3QW{FS^N+ zE9c?1$3kg6{z+rvjA^%6dmQEX_IiPQ(t=Hr-MgJ=I^Q>~YW z-YL4AQ-quLhvRk|w_O=>^SirW!Y!H>7sq$Cb9YS4t4aDy_viiYN;H1$pmXadFSuXZ z9;1dMUc30l^?rB1osWZ6n-I4}rL`un#*CWRhbysr;sGalX%~Ai^l;3mal73f$9YRc zrh$hLtV_pART0v<#9SKlYTO@~(dE0Gj+>vc%i?RB88z-t+3{3lnpotgD`{fxX=Dd3 zs>T33^ek#Y~(@(N(UVE~=()a$YU0STaq{@f9>Fx*DM9_HOGF{2h7R`5LI*!1b=j zbI2{bWolGaB9DiV!r`j1D-A4`Em!)^QfNreV=v~+sZVw zo{~`ts4aD-)m}^8V``^{tR%Uf4|Rkkn2&S4EF5@Q24Z?I-e z55}|M@v;)WIDBNr9jiloo>US{zG2Uh84QNdzWm2WWLbNHG5Lmb1z(?|OX`ZBAi+o4 z?_cBf!Q>k#x&qy;M<>=0N47OEn7IAR)_U_`+6}sl=~>oo$Us~SOdKC6*loR+ftblR z_X=9Lf}+2Sgg~?$OE9|@i_|~c#4b^!iYW5DiaV(D&q=$%>ym6RnWAX`i$%y)5U*FVt zp7M9_2Ti&fT8X5YLrBs^(X0ycVW zj|y;GUKtX~(xg~9Xz06?7WFdMIvtRsN=3cI3LxLL-{yo;UvkTdtae&r)O)vz6Wez? z`@gJjNH7z}(%!yAZcU6VV=S?_^G4*HR771Ya@UmBcHYi~#1KS|Y(McUbDOJ9_!A7xir6gt%M$vv~4qA$K2hPGY3OM7VUQXgN66&PWC4Qes}xu zNj=2YrtE&)5@HBVf70H6sSwUnAmGz^0oyNMn;Vcv#WQD#%e{_-AI1JBv(KFVCfsPee?caUr7gnCD{&Ro2v2;+jY0 z>ci9@OZP9jDpYlaX0VuvD_3T9NRwA=j3+%QD%)EC{Un zw+#^G57%|?5`LcjXFi(dm-$YV&!B%KYWVy3+^zIs!CfNsUE&j90hTHGHp>RcTf*EFDNSKU8eIU%9B zLhNM7Cd{^9w%vNayQ5;_&}$d-;9B1At_0$}S~}jV9J{tVGe5{AVk}bd=?+%Y8nwjn zbmWRB38vjx+P~&E38*SuW)={`Q>ODOW&ALWC_14??m>@WU`RS zz@k>EaHspRM{&Q^vXD1CY27YM<_%}E(2%}bGQ8yt>||Vtvvqoij#sBxFE&LCY|2c? z(lV!>&b{r%XAp?bU_XTT3_KF%5~UYnmy>!_&F(8M&g^N2do>X7cs_aWY61|~+56qS z=1EBtt@16ZiB=%*E6gk%)|wQi4Ebtaqm$9?q7Rnfmad69L=x8>6EXUdSr9{r_MxbX<=;ox_GICs#=6nAVp89Et0KP+uZu-1UdLcTVVyVH?SprJ(m(u4pZaW>sP-AmT*vfO--GEQoC{v*wp^E3Iu=TgsGMeuLoADl}ZZTu5li~ZqbdEZm{!j1nr1c{XH72UOJDdN5INF<%7to+ilvwoT80(`QW1WsTyX?=vXOz!$EOKR;?M&#p!nyx+SA*1>_gv}lx-PKeL|3OW zj~9zv%_!o0_{b(_+R3g4sds!u>G0wFN`iSjoU7EC@xgPpJL`^hHAubT_ml}Y7SPF{ z59aX@1LE+(Wyd=1bY48(Rq&CWAC(E88mA=W`&?6dh^D*uU}~eMb~=BY=!zY(e?*qE zhbal>@nVtw_sXi$Y^Uf91b%iuz zdu+xc)qZSXC;u-P#Q(a!IGVd-UmWF`2|cXaN4Fgf?C6id;7M35na*O0&XmBqdrj^E z`01i8TG+;3r$H&&#KY+QFbMM&slB_xw^;tda@!Xb+$d0mS=kLH(Dav zA=9cHy=Z+oM){HHYNsvN3~Let;zfI*=9*tK$6eLu-4p)Cdz3$I?`c2!t-3#|-s`GZ_D`+tweT?I zT70IZzTF>HZfk~Olz4>7nt|WlQQdiSvS=_Q#eM)83zh8#&lo;aVD3)p@cvBD@%pg)gmXU-Cp zF69sFoN=+p@Z|ZIifqoR?R5;tPvd`69#IC*yUxsp0d zU$1U5aX#&Kjf7a&@TbtiW-6k!U+Y>8eW+nm`<2XOCUY8mw;u)cas z9HhP9U2W87SzYYZ&kk7sy9KO_8)XygE+o8KD4P`BQcy1iLD3~wheZ)KL7iKcYnc?? zqt(*wVW8ZOARaPvcU&v&*_=@GOw14OV0Z$)o?;&adw01RG)2VMG3{m&ZZ{Q3wrjne zV!s9^j`=#~?zkmb6fXtr37~8Coks)#;_H~Z3H&XU5m#yOznhE|toMlOCV%N}Ce@wKrLn9xvkTL?2AfeQ*^d+R*P@32q7B=UrD= zQlBAp8BCl_-jp2fv~r#+!7ari_r1E)dL?!+b^qb6E(9J6-vjHK^e==O)W=TC03q~<_s4Vac=X?Ye-&59)?rgvFkm0V(5fir3z zn!96Zc^2xtxhNs=Tl_%8iWIni>J(d3+x69;PEOJY^hE~NdJBwO~m%;5a?Pd~g|6C5( zKjm#^pF*Vcs#)cbn;3fab&puwE|YJFA(T_an!UTV*a`nDZdZOmYTC^t+?qd8*uLyk zv`fz|Ayh0J^nvdTZkNfoSfo_1VpbRU6vd%0;dYsJGYPlc(RyGR!M8KFt8@TOwV0waxx3stGR4}d^-(c#OxIm+6;-vEqEo9Ve#do!2lk+g)*{3m zybFvX*OF&cQ*=z%VJ8D3_kM79LlZ=YptR1%md+os$SsN1bV7`t?Jz3TxME=1K-*+0}->Jbp1@m>x-Em8Zq$B=t z`h9h|$#_^ySc17b=J8xhgZQle7Y$_;!E3oY9m$ayJd?ZQBiC|wn#YSpwt?+ydRI!* zThRyeb%kZqi`8G4tI$y5;dD7j9~3|C-OtsmBtstoL2&F3~$OJ|gc7 zZ6A{5>r3zvdG~1vS@tE`_Ub3PBXZm+AbI7GzS#A7OyzB)L1bJ2P>%AHLPv>xsFk>t%_-o)a2K<=>7n zzMYhxK6dA>Uq*Xm3(5CsMtm-IGF{?p{1{VPOmiV-f3$~~eRqyycdQ@e zc6|mb;AZsHnc8BJgF~8fHBN_~F7EVfW zc=h3R&?LjM8uk-i`VMgpSu0cdh~FQtKG$YTtNzi-koNdvmW(N}ScLtSJW>nV8YaV7 zIu?2Fo~hQLXYaHhyRDIs65WO?A3<)HDKSJ(A~KBo@XGi$^aw6jQ^fR{*H)rdF8U0= z$0Bn+Ip7R{H~Afib?>!>Bix5chV`skT?|IXw2Bi{el<4>8zh(plR44W^~LVo^^N)y zWZ037&)7qr9O5ty#_gJ9*toNx&q`JiPr>ty2{38LnOGWob*!A+Uo7$s;y{jp-lr|} zK1_pgyCxad`|mW-9`so)=zW-1lFU!eCiH=|mivxHZl03moUET}|0XSQu3ZgZkf_D& z%9SDgVSFLG7OdPn4y-beP;?D!v?wbc2W9td@NK;w;w5B%zaQ2m=EvC5BpEC}{#DnS zJ;dhUrdYMRnk*Shn-bR7ouLhGXl+NdP=h{mi6J#Yb5yzCQEKe!?Sr!Sj>1<4=5#%7 zTOCpFD3l?=j2S2)WO40te3+Bh%i;?)72|zh2?G2&c!D@c+-$iy+WLdRkhE=A_n8z|1to7{* zi=NOk+%Zq(OVyMa(`VcgqEoJ_C_X{X`=RKADKn(ON;^kRuC=<{l=@qB#VAk{vH zdGI;mXT^Lz?5(ZE*yUBMR?{#l;?=khCeh$il#3r!dn(>JnY`Kyor^gqp~d+b?^=Gp zGJVEW8mwfW1>?<8`vLspTGFbo=`&eAUK>74I18~zcxo`XZac_+e4leIrq7s4L)0Pg zYEOWo>xMqK7Sm@YuU5Z!ckA=7Yltn_mvF6hW7c`(JyU71$j8r2vpQfWvl?-oBMbS>KG-`RjyAnJquU$x7cT}zf^J>hcal78{uEe#XcVds? z!|;U~2zWr zc**{1`383$%y#)@Q~JhC9836RIjW2a-RuH~ces7{BwN7XP8fu z-(NJ%FH4E4lUv(U-YMr=k$v{fr09G;?*EeTrK4%S1l#DPcLJYxmSCH=dCh$Zle_bI zMR|6My!5KQ{ehT!cKx#$Fc>_au9Ks>kp$QB%W~#<_t&&fznSh_eWRgZTJBu>fzS`u zF84__B_6#s#lGv#*3Rs)4Gak;=UCdDd3yh~Ud}m|V4}{Gh|0BuCAbz7bB z42}OiV4$erd>8kQpjI041a?crNtHggI(s2#r|v_8X^?n1kBocfACct>`Jko1`<3m{ zvB<6hEuGI0i?uIevGPcwa!zSVg8Md!LuU9?e|WkQ^KhR6lo8k9pBC1RN^jc5BJ*8q zxIV(RZMJzMj@O$*gOlDGXz#48=b_q_W7pEs<~{B-_9gC~0aT--Bi-_-yfQ{2=ch?T zWV_kd)#@L=S3Hx|(BRdWQ8Oj5QVYGd`u!rkHWFZrW+!Asef>C@GjN%%5h{I$d z6NlVVEW)}BX5W~JTw4Hrv2s}B6EaVZIqxupv zpLDK?{auqG4$qdQ&6$6J$i~CUHM9P#HN@ewD`~)1$CaIexx!fFwvDfg)AtPu=C3`( z;Ug@;%pa_l6T6DpEBnNgitTim0A!Ys=|iw&UE7FzMrXwDog%erK5=+)LZXasPNoFS z%$dNupOy~8@TgvmMVy+OGni?&1Zavb=X$em!KGLNg z*x-aW6?28Kf0WB~+T1kC=?yO=J~H{0Ql1wQbA_?Ut5-)luNBF3&K~V*5Qn7}l?qqw zIT!Eq)u~KDx!zO`ys2CUi)TCemy(_z8P6{kY2N*P>->-JJG;|LC4)gW4g%G9Epe!A!Ypm_gFF&u2~B=53p1BHxE7c> z*W%goSpd^;^9bvm$KQ9RztPhm4*BdRRj3g5;|Txtb1&!LCJUWTxUZOMW8%;x+)`HC zPE}BJUxK3JT1*_8jN;O+MVy)-^>)DLj%zV-Xfld5o6d}{0}a>^G$7Yv;*d#1Fudyz zF1sJZ;S~^vTubgUG;t`)KBM^KmV>FqI_-2iqYtjd#37T2&{Km^oB(oi4d%hMm^fq- zF&6o&V-ZU{yvdmXI+JTLaVUMJ0>_|FbUn6i7q<29iz^%(*Mn;@Kge8REYk4GNawA> zna)EP6+fwbHO;5?mJ7YC@S_Wz*^uCNdtEN)QH@L@!s32qr1fZ`4?e;Y?5i4!)C6(3 zW>YX;16oe@Rbpn4J(3`S>=DoZksO=`e>kSvSVDP%LPPJKtK3-^V8Or)C$)I!!!`$zO4?@`SOGC#;I;XRluZ-zSWd^OE0xS(v%dM>Sq9mJ^QlT)x0xHMcr zrVP1n=&wc|2@YzSWDkP`bAl|vEx~s8aYp>gb8YMyUzHF{12H8epMRg!`({=!IOaeD z`vl_e$|E}$VN|$kT#Nfw`*!V9#GXLX(@nn(WZCx+DtvC3m9e~qyER>&*J=dk? z-sg%682JZ%vQTOYG;wH>dOUL`3z;~S(*Dfv0#P+$Yim0dRv9J>nK(^mc zR=kD1d3*^s!k^~3_)ME;H@CG<(OFCx@@T;o<%&*;rxR97mQdC{&3PRim?HArlx$A` z1)(f_N`fgvlTqydSDILLCSZqQsb;c}CAcNTLIR_h3jU)Ee74#4%T{D=$-Q@@a+e`> z8J+T%3}0S`rxt%qR5804ixlcm+b%e&rBeV=-yz2ueg zCB!YoBImNYh>;*)<|A$`*D{F1KTC!+-*UZ3I#^%vtR^pSAEU-iDI&li9=qM%qNP;LM9HmCG&}5vXF^GZppN5^LTk4+>&vZ*jHBH z9M-Ysm{IgC8&Y#O>#HZlgbOOpov(Wf*nSz=(ui<0wI4ol7&Rh)^_^Tita8T5K8R`z zFpFqNdmLoK#v*TS{6&S|mPs}G(o$k{g9_r%R+aV5XA!TV8ok_rQp0j1311os)l^+08Rysgt)+1#x;?eZll1KedN%$sg9#UQDumj%NEBOdMXTt@Z66(KMD|%T_G1?#b5nq+gUB$3IfN8B6%(Yp10T8w77R^R6JVa88kRZp83Qrn?jmoclmRn`EzB@#!eV(J5!X(;*LGFt0PN9B$aOi zgM(ygPr}ua&4q<`?(dn_t!3uNnPl`NQ0pAx=La^U4_CkYK!YB3HDo%z72Z@#GO~2w z`y7hQjTqQAVqjY`1~xN%EZu8H4x%)p57*NvWlu%>l~)Se`};wEMI0ovg!8&?3@xjM z_q^*ZlK=U_c9#tm?Uf%Z4+x!SkfqbMZa{o$Es;{|gcXDr($~@piReXUAEp0<|Hhd< zCCeHCU!32h1Vy=EY3bqN^XL8hrr7bCC#>(JS21NKWWurA(T$;^-S9?r=K=pK8~#_; z*YLmMT72Hp9|nCo3HO34fopAWka}0l9HhBJZeA?Y8u#}|=NPn6{B3#a!DLSxr8pg_ znUe8js)8SUtHPmW8^8}T2g%GJvxKlsOx$kms4z4BFut~#ePn5qgB%dqWPRAPh_eab z&dfftw8=s42S51dV%y0JT_3ZLEG@qvyS?#UVjj@PSW+(|bu!Ehvb4z$e*WN2tIeMW zQ$Kz&Qo}Ihh>Q;MZa2e*oyd!gv+!CVW2RB)(GKyHo&gyLiGq?ua z5+Y530R3&LZ8e329Q)){$)&AMWk!u#LI&b8nO4sNqnz&0S@Lz}vtVBH%N>UXZ+&~9 zCFscD;1F|1Uoqo)X(RfY*i?hk8w z$&j`NoY8%lV{#SAy$7`bxJe^E9a({@{Q{b%C=fQ&Z zE{$5c|FaYI-)dpNpn z!!_q4a=lvk5PXDj{h5!9MGDkRvOj2ZB>wJ%HU>G#60DhYv+!l9O&aCRcP?1oR(?IHMx zl#nE&mXKwcSrFP-lqd0**T@^{^mDZ#Z^%PD{NCB8uBtVRNdtlej7uVrkN7m8 zqJ$*7sPZV@h<4&Wm@zW=D1%Y-YXz<$4%zNp9XW%v-I=*E=KQeV1wT0Ra7OTb@PmqD zSm?gbnG9s_cxZ}Xjaj`T7?=OcwYWdC500kGRNLjLA~f%z`R=;Ql%Sh$TMR=q-L{CP z%SQsoL`d&(nG!?{)3Fzw4j}IfLV}NEx5^IHSuoG-gDF8g=jZo01J*8gDkDY;9~r$e zJJjoM^*z9pAiUf5E_ad&?{y}?M$boDJ+VC0{0Sw&lwd52uUSwn~Q8R8UazhfESea!j!_p#*e`uy8f%*@#7 z{Pkw*Wy}w`_NYDmyQ|B1nFGhA5j%&T)Uz($sSX`fxQYy+)*n0*y~N`-WqMD}XFqAFAAN zia$mfUoYIBAK@<<)+Hv6xIbl&LLaVXV%v|c#gvs*tRV^dOzU?fiPUW+bUmoW)E>N$ z)?|n^HOE`qpebUCj_oaqsDk#xoyWU58R9^r@s^E zxfCk-YLYV5|Fia*b z(d2wQZ7)0lu@{YmOO*ZDz4$$^0ItoLdm5$i>&0zh2Al-x9nuPx;0$j~5Al zbvVh{xwev557BzKWO%Ku!TcdgLfW=9wTExi;UsG*Bw9g&OXRWk3Su4)8m}RztPk#~ z=>3B4IhRa2@ZWrVKms!nw}iOo#78j)byYsf{|=_!Hp1@odmFL$*m6f{`$3kX zL`s}IgC_>ZbAHN0wlp03I{i<^46<*!kS&H?T;Y>pTbAGnM=h3?R)E6YXvvot{?cgs zm8lb~7m+uE+l`(fq>mNmskOE*Q9R-z-aC0FAklPx%7%cxeF-M@n6JAksfU)}ZTMoE z-6^k*zh+>G=rL+B!50aSxaBAJx%#EN*X{-R65J77J{9v4)*sB>nG)+qpLAcpRL*-l zuZbbSbRJ8q-JM*;$Q2paI-R>cm{HcJU;-w`a_P4;yU&Gy_cFeN{QU59#hhOx{QB-E z?bTZjxpyFU4fA|li>W=ZOStFX|C;S~z&)4u+0R~w@!?v&<)<CH&iR)KBY2RKV z;IAy%IvKNCW~Rk{m$uY@V*6Mkb}ak&CsHrQm1U;Ij-`FD+ny?RowQAEzr86Q6M2n# zo(v{TJ|>?rBS#(XV2hjW!KW6x^>d(S_~b-TQ8WR2;P4Z{W@W$eCAcMU!b>aKr?L;Y zCr+k#F}@BlW&58Bmi$d-tP2EUM4ddVLvID`w>#hNk5$Y98n9!vGSgzm|CdBenkD4u zW^Ait|98e1chU3|kJ-1=KYklrck-}*R_0i_57f2)yL+VDYXnvR4<8TSoODRmvYCTp zY4f?t@0S~mEy5Da$3-PFIiq1r52Y|7d-0?~57kl2Iuh6GzO!FXvlhF#k5ZkIiiqGQ61i8^Q?pPt}63W{#j6%-xUVtZsHoc2q$I}F*z zpT<{>dtZffZ#xCHB7DiXKg_!$COF@W7;P5}Ug@)anrf5n`fnG`T^=7V#Jb)84z9Z< zT~xbuguMk!9J6oC#IgMoaia!KunN#e$rltwr`zH_xFtU~V3eYh*P%5jSEcCu(Pe!J zOGJ-RE6PgwPy0Vnbj-oUj^)s%5$&P?OyI1+y3)dpUlge3d!FAf?^9CKyL z-w%7W+z0WL{PuU6_r=cvyGh|egNb7fu5{~!P$O6Zl*9*(GQ1T}>=N@~6K0Z)Ik+E7 zB!t=y#){MLqwnr6UZ=ZfiB&%xG^j0>KDIYL!?;_#er-K6!;+T-A7$&^`?UCYZ8@~K=kL_b%22l-B2^$tS%ibzvB3m;0N(#86i z)Z+&4rw`iO(?J|E)y8L7H3U-cI-HfSjhY9E>Dle=OU=i-e6=iXN;F*B-D_y4h{!&3 zbY=cIKeA2kgMPL=&Bwv_9E96F`Gc(h2sg=$WqgO732HIB#w1!Kya9w;-k~nmbs*d% zaW?-1B(Qg45{;!1D-2oq&TbiO-H0rFOt^7>W*@B6=XRN0W7-X09N5l3DoAoZge{e8 z@wdeMejv`ai#XekjI+&Onc+L)qtV8h|MI;>TzHGP(p!XSFecngGVD0=o}FKByDcEW zwU}^Y@+}g6<;hjbx`3A}qblW&kZs*`r#I=~4F`2lo%l5my8ZLBX z1~9%_z9#d^U+vUU{Mj?Z4c$D{Al#ZCx;d13d2X=x?LV|)9t)n!e{B{?H-6fpb!I;! z3m=SFYW*AHyGisy0xG5B~ zL5420yZ7#1HSDyL?L4l<9$WHQ+av#P!cAISb+$Zdm6gYcpGbt8yjpG5Ti&P&PT z-0H1fGzhmqgT&CJW6)pWte9hqgxl_$oHHD;+Z&<}E~)xfVyOCRB_Y4mns$qXAKEiH z^{wZ|yU#;{OXP9tLM6c*8#1!h?qEG~=Q#H+NN~yNKJcb0>Vr8pcyi2MWPRCYq}vYH z!6kt&t3`Mn-W5k z#zPy0v0~Z{UN0}ii#uNIz$NU3#$JfX)%Zmv zJGWvrCl{-5 z?zTn8mo|y_K!7r3#?tcXY5uO3D4wB0-2=XZ%Fj~Yk5m7O6LlZhB^G0>m`mgSF5y17?@0KGrEA3?E7hKg_;5^4v4^qgRs7z3%i6HNslB-rohWzmJLcWx2nNNVZFVqb(-5Q&_{Xw6d6Ji61+c6Tu~o z?Jekoua+4#X&s35@!k);Mf}uy_HOjSwRohZbs*4G_Yrz_yW4zaqW$qsZSzuR#f+M= zdEs~eI*Lc9#G8ZbVB*Z=)mA$-yw#n`*e6z0@|ZGX31$CMEx`ima3(gE(7s>3|@^n7N%hEt*zA5o}KxP zleD{uxA@=jq0?vZc4BYIv>UT)STj7<$nKq9*4^8(nIXZoOkPdu7&PI=CCsixf5(0Y zc>zGUReA4Q5kUN16&D5bD|YTI!MXN8_fy6~xogxJ3%M3^Z0LiCL$w>lox=U#TFkLw z7Nr=b-DW3*G>O2qm>7fK>wt1@1X)AZ!ZONS8qY-g-$O-w$7cZNhxMhV;W&0q({7;Y%Q* zoTnqo#ke#?_#;M*$v5LkH1hU!Yj%A|=Rq?i{ziTA$C?8T8=cKOhwHEh!-!AYo%VjeA7CX*NDS9|hklm02!E&IJsj?*C6BCY_lU zlaOPj#}?{D&&&*t*0vq1bUIS(oJK(sg)g zzwHWY>X$h$lULIca^5Zd_pacN8?buCAJ<~8?4JoYw#vkg) zwq~rI@%>=JjaxEe%4S9-FzZKoHAqK)_qCk8GY8poVcTx8MBBFUHGo94mOM5HxBt}b zYgaFvD@q{xH&bm~%Ou>o?}G0Y2)FL=LSm|oYng=G`)k|SFPxqz0`QGuwu@^mn3)&# zlR{Lkw;I?xLubT?!{F~j>>G1sCQFvGy@q{9k1}>8u=>otF%!ov!5ZGBj9vDN8umLN z+?ai1CXQQz_h-E`qT5Ri?2(8dz^hbd;= zmdtiByA}zrzHOXXTE2s`1`^DuyVkst6slQU zNpMTBm^?XN4E}y{>SICZODLlsUwOBBMY#ddUnD&1&T-;ELI+FgOPEVzX*q^_zgp#= zA*>k>jTCohFS0&?1aoODEypb|KT;%d_KpFf-0`#4-54u*zM61jX*q6z{+|~~^n5*C ze0^<0w>tV@-9nC)6xC($h`{pm*jVd!L}S}pU(sipYLojmO`@6fSu(N+tZ&fQ9&_J# zS7zJOKAUXqF$uRy*S=s~i}>n$k`;ZX+m(H263wK~W+IQ`o+cS~_`pGTen(`ge+ruT z+y@1>%TyYoExg~w3d3W43B1+0U3siYG?PACUGt2XJg9;FE8^*wTvZhrlVP>Mj)mK0 zDh;u5vn?x#-J|@+?aE_KqM7vBUFCijqu>d60iJ*=dJg))dXU>S2{+S^EY_~;Jmn9dAwnwV#%0FgI2B6D)Hs-14S$7OOz%> zv6kE}KcUdce1AOk+F|*w1?@Sv%Y>WRNAdVq>P(n$WAZH$zOGlC2;aZU{VW>)N=Y!` zW-@W%9kv)bVv{=)IvK8|w0MeFWAY6-CyPb1Qni?HGnu&Jx;`brgqz9473WeF2dCat z#jDAY9(Y+ZaSd9p60;Dm?-g7**HW{Zl3?;J5`G_gxY-+RcRloQTuaTIKlw8%lW!mt z+Uycb9*c7u{it%8>YRft!L%DZ0b5tJbF)r4Q=zlu64pkVI?L0?H?`0i^5nNjXWnDo zyZl{qWol)q=`&{ExR(4~Q)#|L=GB-uNgwH2OuMN*v;_CT?MewPZJw26qI8MuL!UeM z2Quu(8f*1+F#9H@wFI{WEAk6%-RbzZ@UNjBvv17AaZAW~|Ho$c=}ik;B#iB6NH7z} ztQ<6Vpy=ef;cZZKS2A&uoRfqb^Km8<$0b)XahjEbZxkrHZ_>-&`xv-8X5W~JV`;?G z|8c3?d-5`Is)WjMsA)N7;+U>O&ajGW-CO3Y6BR(wG5f|$981INep>Z=yERO(pW2XN zNXUDjZBR_tse66_6kRJ&bX-f`XDuOrk5P2vE4&@iD>7M2b8uXXrBxrzu!g%2YdDsW zPoM5X9_yA&2`-V(u9lF;F$uQUGO5+OXAvcaZwb>w*m)s_Y2U+^bq@Lx_PUm}Iv>M& z2VXemzartf_+s9^&$8tIT#NfNB@lft8uc`vcqJyoOm+#;_q?=9mizas9X+naWEc}; zi0b%V3GY>~WDiM}jQBAo!7$MJC{A`-g9uH`_x;Y zwum2NGK`5aWE1>yqg(UZqi%(FI(l4-$uK6y5PPR*w)@xE0#|ygb1f#rm>Bb;@41M+ z=j{jQ#kH98V*V=fA1S-Lp47EDcX|75CP=%R8Nc z)siNhuzzKuihbh{9fmx%*o%#Q;Fzw8gxSBu=tK91op6+V^7qb6ZAIHEs--=_Orq+J z-?QC&ULIsuL~hGyTabwMhhvkddLB`l-vYIDz=3a+CctDZ%6BF+oaJ6n-dl*v38Lya zR^j8Z3TKLn+ck-*v*l}fe_m+e?Lb^-Ca1EtYz$T(g*6I1UAVtU_2z_7;Z&F*+O7(Fcnp4mI4jN&mwzyqomBB8<*VfKh)5a_L z^F(p_UBwmYNHa_fF(lqY-{TE%CoF?u;VbVq-IoD9bk!Jf(yRRu-R?=!g9vJR>UQ0-c=H^rOwr%ZNs=l z!n2n(_O?Ay&h1{*hb~d?Hfo^{X0x!eoL$e$y1tM5A?9{2QM2XX+tT*quuU+X#ncwJ1mCFE zrM)|@`B@BrU5)81rnb1HNVw+GM9=EFT|59gCrdE3#WWYbQ8SahL*XoOQfB8Owu`AP zIqLo1h1S5o=l6Y7&-<=QACZph;96>Qp^d;hVRBw6<#E41sb|ZaVLXcbcA0O~E!!J= ziO-i4526oli~HcU1Y*j*a>@yVk2(oHioY4mU@@Bo45%w|QxFN50p6l;^+_^NR&X0Vve!ngJsOH^qd=ly|iE!Ube5f;~?$jr=U z;n|HJC%PRf;jM-Qm#_r$Sds9%&u$k7)`8l>v&$vj5_beUFNTK@?jVy^h_LZx4SQwp zGG3Zwun=9Wbt0a*Ij)uMj zeK56Ua$ZlBd&GWuSvh+$vPUqf#S+|-$$2rI#nRE=F$#Egch|A|4o$P=4li1QHBR&x zwV3}xUVyXP+-2`o_KqeY!%^n;;OPqZLPEkIxQG~wglDYx+`>K8yc6dUdypiU^I~bW zW07YhEhbEWu>?~Wk?@&IY4*xr0$y480q`>_wdZT5Lcfbu1~XrN+*%uPYh4+)mP@3a zq96>dGuA%Le8Dn$cVD~THS^pSh~vd2EaBTiqGVXG_6Ymevgz(yAP)Jd=34yp#I9W0 zyqExEGK}q?h_O}SIq&wpDkB?9Fm(|-mXa4jadOwKD>BIggH#N-!M^IyJ1l=I?}=rQJ%DCgzRR}HqO>l{@E85XStiRiA+ zmjHuh%>gScpHb$#qQ|JE`cuT1&tSQsYK^^zUQ98_FlM{th-mi2-=(^Gm&zrE1W{ss zj;iQcaqm|>D}5b~z78h9qSB}p{oR+~j8oB)q7l_JPjvr@-wk%jAj6^~idwwi#aHe5 zeD~oM$8(M$0w#O&ciXHfv8}1>zaM>e1DN6L*nDMri||bJ&vXqFHL+uP9d^6A-d#IK zx|LsshtSu^yjDa`mMnckNVAsAe8tX6zEMnoaV?gPggH8l#34E7ERa4fQ|q6}%Pk`hCOZJ{Z^ zSB)t#Xi__kby7DE^C}_MB$pgP4!4;yCZyB>zzU?TfRXU2%X8gL4f=ZTB616#$*4~& zhxX1;65KbwwF4(O%aJW@JIFBEht7(|)Ryc+^IurE7p4jCjluR8xDF=3*rLdm#z^>b zud!D19mDL^cPp!)v1-K}(zoeiRjc`oL>xTQ#VVaZlr zuXP_LSv%n6Eoc2nN1*wKt$@D_ER83zUA}wAug7y_9AW-uF!^MDKj1Ur!e_#f zJ`>DDwLTvo^)F$XD-wp!gbSYurwM!}xTIU9gqVK`Wi^AH^OLS_iRa_pLg~ptC6Ba9 zi29c>&4o;6Gt%9(QVrcj@Gs$#wxbfF{v}M3M8XGdALkCM*uj~OKKN><9gdHB+3@ut z&RyrW;?-qs-HU}oz1r1lg@*L|#E*^1^pQzzAyTNgW@FCUZdZ_DOgp_+xmHNp@gyY% zi(-!w_Pk(&doRLD*7TcOLz?rFOq3?7nE8UY$e4YiYUVz1G}q+3nC;@0uvc4JecgW> zCD<8WMlsGy+oM<-Hb|nj_)M7KGN~FxsDb0&kB^D-%+TL#6ucP#7b4#z#`TFiNwWLU#}XPvQN zmwrGWT#Gp`lMHJzeUY;;eWcsI)r%h2V$RDX!?xVj!MPI*)}1&juEm@e^IzZxcTCQa zoYz1|a4q=_*PNH~@Bs7WlP@>sO-_9UELj8D2i0QEi}^1^^y5V0e9CC5?qU^EvC65;h9s@-GwC@ zy0<`r-)+AC=6k;TrFd~$PFMFi+(B;l{7+S*G$8X|(AHkxP((1FEQAD?umpQ@!RrOl z*fU-|p7RxEQR!{A{0?a4afM6?vByOuTs(d|H2;ub&dcPAipOt$pn%>(7Cr zZPW`1)CSIqIWKMr@yI}ijR6@Zb51hP#hjP&XHqR8((PZbi}y=si&o&gnCD{7i(A6# z^~ZrCwcRRF72Z_Lb1~<|E#bLxZSlr{O=3BGapW_q=`5zUxFu*Hk$YfC%~ z@%;zw^n9GS9jm?_k}N(@C6t>6wg+RyY!~;9EXQ{(w1y&X|2jx8oy8K|61*mtT28`= zrgnE&0hqyHHbcJuF)}O_WLQg(VLG<@oVVp!b@6kb=~~=3R^e^4#G|8=?KX#D&7h2B z>}M-A-acsoD-iY{urk~MYO7G%qmIQ0FlMDpK5Fs%mem?$82(|tiVQHn-}O4j0sa)+)^a`!0Fy10$%M&oE47=Q(`6=R)`3K9Y(^ghO^=l zzBlImIR4ajH~rH@`#h|D${ME5ifJ&DC9C=SIk$1E(smgBB}{;^1h*6kci&#a%Yc{n z+L`cD^3xgZfe#=hT_kQxJM4#Xj7 z4Y(F_Ud(^NlLI;2j_f!j{teAGmoVqW{8uE*dE&T)IWOkF;1^D8AD1xa#r&5UGm}f0 zuG(9W5Srf!Pmgb-FF&xHI~VWyD|l;}=VH!_XQfDZ9mufF@6@vg;jLw!i#acD$+RN3 zC7z2pFK!7sWU?aj`SNveONhn#4`dj#U9n@S@j?VMPe(B0lGt%(nn?+DzvpHz;lyG$ z%T4i^080y&4(YgRrdDn2-YQ-~%T4arh~35nSht;}LOOOEw`6G5?3mTU)b+6r5W0*` z?Y&y3{OnwrF;dH==>2HWAM+_EAFkKZrEA*G?aqoOqrUZywPZPP)5~qn=rl@#Cd?MG= zL~fLc!o158+>$?2+eI_A!Cuh3C3DolKgOVSHtvC`c z_v&D~T7_1kR3B(LDVvyYQ7po<

vPy}ccX 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­}`MFNPt(BYELYOjR&g?m>&HKSL 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 QRWJ=TRyYih-J1#ScEbU4# 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 Z)5ZTmCFfLJK3fi{E3Okx#pR2_{|EY6!1w?F diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index 3a8a66904..4f3d499b2 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -398,18 +398,8 @@ void Bed3D::render_prusa(GLCanvas3D& canvas, const std::string& key, bool bottom std::string filename = m_custom_model.empty() ? resources_dir() + "/models/" + key + "_bed.stl" : m_custom_model; if ((m_model.get_filename() != filename) && m_model.init_from_file(filename)) { - Vec3d offset = m_bounding_box.center() - Vec3d(0.0, 0.0, 0.5 * m_model.get_bounding_box().size()(2)); - if (key == "mk2") - // hardcoded value to match the stl model - offset += Vec3d(0.0, 7.5, -0.03); - else if (key == "mk3") - // hardcoded value to match the stl model - offset += Vec3d(0.0, 5.5, 2.43); - else if (key == "sl1") - // hardcoded value to match the stl model - offset += Vec3d(0.0, 0.0, -0.03); - - m_model.center_around(offset); + // move the model a bit down to avoid z-fighting with the texture quad + m_model.set_offset(-0.03 * Vec3d::UnitZ()); // update extended bounding box calc_bounding_boxes(); diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp index 9e3eaf41d..dba595846 100644 --- a/src/slic3r/GUI/3DScene.cpp +++ b/src/slic3r/GUI/3DScene.cpp @@ -1736,13 +1736,7 @@ bool GLBed::on_init_from_file(const std::string& filename) m_filename = filename; - ModelObject* model_object = model.objects.front(); - model_object->center_around_origin(); - - TriangleMesh mesh = model.mesh(); - mesh.repair(); - - m_volume.indexed_vertex_array.load_mesh(mesh); + m_volume.indexed_vertex_array.load_mesh(model.mesh()); float color[4] = { 0.235f, 0.235f, 0.235f, 1.0f }; set_color(color, 4); From 9625fe8f5b9c39a713a804b28dcf8bc0e33225c1 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Thu, 25 Jul 2019 09:45:43 +0200 Subject: [PATCH 14/24] Render custom bed model on custom beds --- src/slic3r/GUI/3DBed.cpp | 47 ++++++++++++++++++++++++---------------- src/slic3r/GUI/3DBed.hpp | 1 + 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index 4f3d499b2..cebb17c23 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -394,24 +394,7 @@ Bed3D::EType Bed3D::detect_type(const Pointfs& shape) const void Bed3D::render_prusa(GLCanvas3D& canvas, const std::string& key, bool bottom) const { if (!bottom) - { - std::string filename = m_custom_model.empty() ? resources_dir() + "/models/" + key + "_bed.stl" : m_custom_model; - if ((m_model.get_filename() != filename) && m_model.init_from_file(filename)) - { - // move the model a bit down to avoid z-fighting with the texture quad - m_model.set_offset(-0.03 * Vec3d::UnitZ()); - - // update extended bounding box - calc_bounding_boxes(); - } - - if (!m_model.get_filename().empty()) - { - glsafe(::glEnable(GL_LIGHTING)); - m_model.render(); - glsafe(::glDisable(GL_LIGHTING)); - } - } + render_model(m_custom_model.empty() ? resources_dir() + "/models/" + key + "_bed.stl" : m_custom_model); render_texture(m_custom_texture.empty() ? resources_dir() + "/icons/bed/" + key + ".svg" : m_custom_texture, bottom, canvas); } @@ -421,6 +404,7 @@ void Bed3D::render_texture(const std::string& filename, bool bottom, GLCanvas3D& if (filename.empty()) { m_texture.reset(); + render_default(); return; } @@ -565,14 +549,39 @@ void Bed3D::render_texture(const std::string& filename, bool bottom, GLCanvas3D& } } +void Bed3D::render_model(const std::string& filename) const +{ + if (filename.empty()) + return; + + if ((m_model.get_filename() != filename) && m_model.init_from_file(filename)) + { + // move the model a bit down to avoid z-fighting with the texture quad + m_model.set_offset(-0.03 * Vec3d::UnitZ()); + + // update extended bounding box + calc_bounding_boxes(); + } + + if (!m_model.get_filename().empty()) + { + glsafe(::glEnable(GL_LIGHTING)); + m_model.render(); + glsafe(::glDisable(GL_LIGHTING)); + } +} + void Bed3D::render_custom(GLCanvas3D& canvas, bool bottom) const { - if (m_custom_texture.empty()) + if (m_custom_texture.empty() && m_custom_model.empty()) { render_default(); return; } + if (!bottom) + render_model(m_custom_model); + render_texture(m_custom_texture, bottom, canvas); } diff --git a/src/slic3r/GUI/3DBed.hpp b/src/slic3r/GUI/3DBed.hpp index 3571166da..ef731756d 100644 --- a/src/slic3r/GUI/3DBed.hpp +++ b/src/slic3r/GUI/3DBed.hpp @@ -120,6 +120,7 @@ private: EType detect_type(const Pointfs& shape) const; void render_prusa(GLCanvas3D& canvas, const std::string& key, bool bottom) const; void render_texture(const std::string& filename, bool bottom, GLCanvas3D& canvas) const; + void render_model(const std::string& filename) const; void render_custom(GLCanvas3D& canvas, bool bottom) const; void render_default() const; void reset(); From bc680b8376294955fdeb01e5d6838aa332e68de0 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Thu, 25 Jul 2019 10:38:18 +0200 Subject: [PATCH 15/24] Draw lighter gridlines when rendering default procedural texture on print bed when seen from above and custom model is present --- src/slic3r/GUI/3DBed.cpp | 40 ++++++++++++++++++++++++++-------------- src/slic3r/GUI/3DBed.hpp | 2 +- 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index cebb17c23..ca48f7c37 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -241,6 +241,8 @@ bool Bed3D::set_shape(const Pointfs& shape, const std::string& custom_texture, c m_polygon = offset_ex(poly.contour, (float)bed_bbox.radius() * 1.7f, jtRound, scale_(0.5))[0].contour; reset(); + m_texture.reset(); + m_model.reset(); // Set the origin and size for painting of the coordinate system axes. m_axes.origin = Vec3d(0.0, 0.0, (double)GROUND_Z); @@ -404,7 +406,7 @@ void Bed3D::render_texture(const std::string& filename, bool bottom, GLCanvas3D& if (filename.empty()) { m_texture.reset(); - render_default(); + render_default(bottom); return; } @@ -421,7 +423,7 @@ void Bed3D::render_texture(const std::string& filename, bool bottom, GLCanvas3D& // generate a temporary lower resolution texture to show while no main texture levels have been compressed if (!m_temp_texture.load_from_svg_file(filename, false, false, false, max_tex_size / 8)) { - render_default(); + render_default(bottom); return; } } @@ -429,7 +431,7 @@ void Bed3D::render_texture(const std::string& filename, bool bottom, GLCanvas3D& // starts generating the main texture, compression will run asynchronously if (!m_texture.load_from_svg_file(filename, true, true, true, max_tex_size)) { - render_default(); + render_default(bottom); return; } } @@ -440,7 +442,7 @@ void Bed3D::render_texture(const std::string& filename, bool bottom, GLCanvas3D& { if (!m_temp_texture.load_from_file(filename, false, GLTexture::None, false)) { - render_default(); + render_default(bottom); return; } } @@ -448,13 +450,13 @@ void Bed3D::render_texture(const std::string& filename, bool bottom, GLCanvas3D& // starts generating the main texture, compression will run asynchronously if (!m_texture.load_from_file(filename, true, GLTexture::MultiThreaded, true)) { - render_default(); + render_default(bottom); return; } } else { - render_default(); + render_default(bottom); return; } } @@ -575,7 +577,7 @@ void Bed3D::render_custom(GLCanvas3D& canvas, bool bottom) const { if (m_custom_texture.empty() && m_custom_model.empty()) { - render_default(); + render_default(bottom); return; } @@ -585,13 +587,15 @@ void Bed3D::render_custom(GLCanvas3D& canvas, bool bottom) const render_texture(m_custom_texture, bottom, canvas); } -void Bed3D::render_default() const +void Bed3D::render_default(bool bottom) const { m_texture.reset(); unsigned int triangles_vcount = m_triangles.get_vertices_count(); if (triangles_vcount > 0) { + bool has_model = !m_model.get_filename().empty(); + glsafe(::glEnable(GL_LIGHTING)); glsafe(::glDisable(GL_DEPTH_TEST)); @@ -600,23 +604,31 @@ void Bed3D::render_default() const glsafe(::glEnableClientState(GL_VERTEX_ARRAY)); - glsafe(::glColor4f(0.35f, 0.35f, 0.35f, 0.4f)); - glsafe(::glNormal3d(0.0f, 0.0f, 1.0f)); - glsafe(::glVertexPointer(3, GL_FLOAT, m_triangles.get_vertex_data_size(), (GLvoid*)m_triangles.get_vertices_data())); - glsafe(::glDrawArrays(GL_TRIANGLES, 0, (GLsizei)triangles_vcount)); + if (!has_model && !bottom) + { + // draw background + glsafe(::glColor4f(0.35f, 0.35f, 0.35f, 0.4f)); + glsafe(::glNormal3d(0.0f, 0.0f, 1.0f)); + glsafe(::glVertexPointer(3, GL_FLOAT, m_triangles.get_vertex_data_size(), (GLvoid*)m_triangles.get_vertices_data())); + glsafe(::glDrawArrays(GL_TRIANGLES, 0, (GLsizei)triangles_vcount)); + } + + glsafe(::glDisable(GL_LIGHTING)); // draw grid // we need depth test for grid, otherwise it would disappear when looking the object from below glsafe(::glEnable(GL_DEPTH_TEST)); glsafe(::glLineWidth(3.0f * m_scale_factor)); - glsafe(::glColor4f(0.2f, 0.2f, 0.2f, 0.4f)); + if (has_model && !bottom) + glsafe(::glColor4f(0.75f, 0.75f, 0.75f, 1.0f)); + else + glsafe(::glColor4f(0.2f, 0.2f, 0.2f, 0.4f)); glsafe(::glVertexPointer(3, GL_FLOAT, m_triangles.get_vertex_data_size(), (GLvoid*)m_gridlines.get_vertices_data())); glsafe(::glDrawArrays(GL_LINES, 0, (GLsizei)m_gridlines.get_vertices_count())); glsafe(::glDisableClientState(GL_VERTEX_ARRAY)); glsafe(::glDisable(GL_BLEND)); - glsafe(::glDisable(GL_LIGHTING)); } } diff --git a/src/slic3r/GUI/3DBed.hpp b/src/slic3r/GUI/3DBed.hpp index ef731756d..a3e4bcf80 100644 --- a/src/slic3r/GUI/3DBed.hpp +++ b/src/slic3r/GUI/3DBed.hpp @@ -122,7 +122,7 @@ private: void render_texture(const std::string& filename, bool bottom, GLCanvas3D& canvas) const; void render_model(const std::string& filename) const; void render_custom(GLCanvas3D& canvas, bool bottom) const; - void render_default() const; + void render_default(bool bottom) const; void reset(); }; From d6f03a2f52fcd952976dd540b424afa5f480627f Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Thu, 25 Jul 2019 11:34:42 +0200 Subject: [PATCH 16/24] Bed model placed into the scene so that its origin goes into shape center --- src/slic3r/GUI/3DBed.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index ca48f7c37..a402fa82d 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -558,8 +558,10 @@ void Bed3D::render_model(const std::string& filename) const if ((m_model.get_filename() != filename) && m_model.init_from_file(filename)) { - // move the model a bit down to avoid z-fighting with the texture quad - m_model.set_offset(-0.03 * Vec3d::UnitZ()); + // move the model so that its origin (0.0, 0.0, 0.0) goes into the bed shape center and a bit down to avoid z-fighting with the texture quad + Vec3d shift = m_bounding_box.center(); + shift(2) = -0.03; + m_model.set_offset(shift); // update extended bounding box calc_bounding_boxes(); From e86d40fe9854ca484a15c84c20a9b88f49bc6566 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Thu, 25 Jul 2019 11:35:16 +0200 Subject: [PATCH 17/24] Modified bundled bed models --- resources/models/mk2_bed.stl | Bin 2484 -> 2484 bytes resources/models/mk3_bed.stl | Bin 91884 -> 91884 bytes resources/models/sl1_bed.stl | Bin 416084 -> 416084 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/models/mk2_bed.stl b/resources/models/mk2_bed.stl index 21fb29d0c36a512748bacf093bd9500c7c395f8e..8a74a2349505b6023a03d2b20e7a07b80a2b0f70 100644 GIT binary patch literal 2484 zcmb7`u}&0W5XZ-GXkr5oV6ir+1Pw9S7^_Xr_zd)fqe393By?`#EBFXk`vivFT&b-I zr3D>i3qzz5&hNj&-2A`2j{~-V$;bTuGxN>tEbkBZ_lBPaTiNz-??cw#8SHKihA&^g zdh<4W{_$WlTYn+zS)m|F0|)_NLj^R->1Z{ z$>sP@bJEhY#P7-J7`pKK)||BVsBzi}WW`>rnVAySJF&80^J#OrXM4436zY=ttqVD*{@pRa@(D ze^_PVw!(<+H#9vf{t6F2`f0oT8SyPJQx@JS5%2jtf@5&COvf>NN;IofZ;U7_SWaZMXUMks<88W`U?q4R_wr(C zF>eXh_1v@CZ4j%Ad2!U6N5nOODGU6><65d~Z!pf)R=?W_Rs!)PWc4G|0^7Cpery|X z|3%;p>SltK;H8gd=33b8HkE9fzg3?m;;97Vm3MV*58~V=|1Ly#cF!N>#rXrR+_ggP z)3=CiM7W*M7@U=7#=5@kvf6F<;=$&@?=->Z@T$WUKD+LqYoQ0WMcD?ivXEExL#;eb zi1;}Odz)Z&b#1P2ZrkoI1S`QmOkriS>stCfxA!C7yTQA%*-aA~Bb}9N#s4$#&X4Oz j6YU}UwD)m-{=Ov864}{J6GUMi{o_-PN^|N+U>=a4 z4~m6piMC=N=~^9}yc?uqfBy1l;Oj=ezI?pzY9;@;TA@F&5z~PrhK69 zfGBKA_&d{@t;(7Q>T|6Mn-c!VcaX@UN)Z}Wq~&J;37(R|rsOiARY#(U%1=B0d^P-k&k1X?^-u2!=N>mZR$#=NMkQ$*JDc?9~v2$9B2w1ci6=nrW}@cokm zb7e$Une6oCHq9o`l4$)|%!}2fydlh1R$1&Q3(;H3i|>o`2(7fsPZ-X)J+WPPgRzEP zh_E+Aw>hexoQtq#OY7sdf#hd5O0qe$Q>LIEUso36Li6yC~IsoA{@9#BWaa;deXA v-3awDBdW-*fBT}>0P;u@?8ASTsFrz;{B1Xby&qaD_a@pN>qe*#jZlaSReh_L diff --git a/resources/models/mk3_bed.stl b/resources/models/mk3_bed.stl index e494641168c630bdc4591c11c012bb2d7dc4f91d..6aff36f0bcbda670a4d3ed645dcac8ff112d3462 100644 GIT binary patch literal 91884 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 literal 91884 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 J_h414{|_T}dxZc1 diff --git a/resources/models/sl1_bed.stl b/resources/models/sl1_bed.stl index dfbf12845b88b2a32afb50fdd8cb6e92a4c1193e..4a6980b09f5c2d2a1860fb6b31cc5c45e50f9c54 100644 GIT binary patch literal 416084 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�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 literal 416084 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

^STM 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͢g>BY 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 Date: Thu, 25 Jul 2019 13:10:57 +0200 Subject: [PATCH 18/24] Added tooltip to filename fields for custom texture and model into bed shape dialog to show the full path of the file --- src/slic3r/GUI/BedShapeDialog.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/slic3r/GUI/BedShapeDialog.cpp b/src/slic3r/GUI/BedShapeDialog.cpp index 60b4f37f1..5446550a7 100644 --- a/src/slic3r/GUI/BedShapeDialog.cpp +++ b/src/slic3r/GUI/BedShapeDialog.cpp @@ -208,6 +208,14 @@ wxPanel* BedShapePanel::init_texture_panel() filename_lbl->Bind(wxEVT_UPDATE_UI, ([this](wxUpdateUIEvent& e) { e.SetText(_(boost::filesystem::path(m_custom_texture).filename().string())); + wxStaticText* lbl = dynamic_cast(e.GetEventObject()); + if (lbl != nullptr) + { + wxString tooltip_text = (m_custom_texture == NONE) ? _(L("")) : _(m_custom_texture); + wxToolTip* tooltip = lbl->GetToolTip(); + if ((tooltip == nullptr) || (tooltip->GetTip() != tooltip_text)) + lbl->SetToolTip(tooltip_text); + } })); remove_btn->Bind(wxEVT_UPDATE_UI, ([this](wxUpdateUIEvent& e) @@ -268,6 +276,14 @@ wxPanel* BedShapePanel::init_model_panel() filename_lbl->Bind(wxEVT_UPDATE_UI, ([this](wxUpdateUIEvent& e) { e.SetText(_(boost::filesystem::path(m_custom_model).filename().string())); + wxStaticText* lbl = dynamic_cast(e.GetEventObject()); + if (lbl != nullptr) + { + wxString tooltip_text = (m_custom_model == NONE) ? _(L("")) : _(m_custom_model); + wxToolTip* tooltip = lbl->GetToolTip(); + if ((tooltip == nullptr) || (tooltip->GetTip() != tooltip_text)) + lbl->SetToolTip(tooltip_text); + } })); remove_btn->Bind(wxEVT_UPDATE_UI, ([this](wxUpdateUIEvent& e) From e23dbfa3fb9396b9f31482b57d3e4a3501c837b3 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Thu, 25 Jul 2019 13:42:42 +0200 Subject: [PATCH 19/24] Added missing include (OsX build) --- src/slic3r/GUI/BedShapeDialog.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/slic3r/GUI/BedShapeDialog.cpp b/src/slic3r/GUI/BedShapeDialog.cpp index 5446550a7..1177c9180 100644 --- a/src/slic3r/GUI/BedShapeDialog.cpp +++ b/src/slic3r/GUI/BedShapeDialog.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include "libslic3r/BoundingBox.hpp" #include "libslic3r/Model.hpp" From 77857f7292d9abf648010045efcd6e27fb09ea34 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Fri, 26 Jul 2019 09:45:22 +0200 Subject: [PATCH 20/24] Refactoring into rendering pipeline --- src/slic3r/GUI/3DBed.cpp | 22 +++++++++------------- src/slic3r/GUI/3DBed.hpp | 2 +- src/slic3r/GUI/GLCanvas3D.cpp | 16 +--------------- src/slic3r/GUI/GLCanvas3D.hpp | 1 - 4 files changed, 11 insertions(+), 30 deletions(-) diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index a402fa82d..97e200b38 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -266,6 +266,8 @@ void Bed3D::render(GLCanvas3D& canvas, float theta, float scale_factor) const { m_scale_factor = scale_factor; + render_axes(); + switch (m_type) { case MK2: @@ -292,12 +294,6 @@ void Bed3D::render(GLCanvas3D& canvas, float theta, float scale_factor) const } } -void Bed3D::render_axes() const -{ - if (!m_shape.empty()) - m_axes.render(); -} - void Bed3D::calc_bounding_boxes() const { m_bounding_box = BoundingBoxf3(); @@ -393,6 +389,12 @@ Bed3D::EType Bed3D::detect_type(const Pointfs& shape) const return type; } +void Bed3D::render_axes() const +{ + if (!m_shape.empty()) + m_axes.render(); +} + void Bed3D::render_prusa(GLCanvas3D& canvas, const std::string& key, bool bottom) const { if (!bottom) @@ -598,9 +600,7 @@ void Bed3D::render_default(bool bottom) const { bool has_model = !m_model.get_filename().empty(); - glsafe(::glEnable(GL_LIGHTING)); - glsafe(::glDisable(GL_DEPTH_TEST)); - + glsafe(::glEnable(GL_DEPTH_TEST)); glsafe(::glEnable(GL_BLEND)); glsafe(::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)); @@ -615,11 +615,7 @@ void Bed3D::render_default(bool bottom) const glsafe(::glDrawArrays(GL_TRIANGLES, 0, (GLsizei)triangles_vcount)); } - glsafe(::glDisable(GL_LIGHTING)); - // draw grid - // we need depth test for grid, otherwise it would disappear when looking the object from below - glsafe(::glEnable(GL_DEPTH_TEST)); glsafe(::glLineWidth(3.0f * m_scale_factor)); if (has_model && !bottom) glsafe(::glColor4f(0.75f, 0.75f, 0.75f, 1.0f)); diff --git a/src/slic3r/GUI/3DBed.hpp b/src/slic3r/GUI/3DBed.hpp index a3e4bcf80..c9a30e6ec 100644 --- a/src/slic3r/GUI/3DBed.hpp +++ b/src/slic3r/GUI/3DBed.hpp @@ -111,13 +111,13 @@ public: Point point_projection(const Point& point) const; void render(GLCanvas3D& canvas, float theta, float scale_factor) const; - void render_axes() const; private: void calc_bounding_boxes() const; void calc_triangles(const ExPolygon& poly); void calc_gridlines(const ExPolygon& poly, const BoundingBox& bed_bbox); EType detect_type(const Pointfs& shape) const; + void render_axes() const; void render_prusa(GLCanvas3D& canvas, const std::string& key, bool bottom) const; void render_texture(const std::string& filename, bool bottom, GLCanvas3D& canvas) const; void render_model(const std::string& filename) const; diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index b072efd98..118c4802a 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -1561,19 +1561,10 @@ void GLCanvas3D::render() glsafe(::glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)); _render_background(); - // textured bed needs to be rendered after objects if the texture is transparent - bool early_bed_render = m_bed.is_custom() || (theta <= 90.0f); - if (early_bed_render) - _render_bed(theta); - _render_objects(); _render_sla_slices(); _render_selection(); - - _render_axes(); - - if (!early_bed_render) - _render_bed(theta); + _render_bed(theta); #if ENABLE_RENDER_SELECTION_CENTER _render_selection_center(); @@ -3906,11 +3897,6 @@ void GLCanvas3D::_render_bed(float theta) const m_bed.render(const_cast(*this), theta, scale_factor); } -void GLCanvas3D::_render_axes() const -{ - m_bed.render_axes(); -} - void GLCanvas3D::_render_objects() const { if (m_volumes.empty()) diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index fd60fcabc..c9803f9db 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -662,7 +662,6 @@ private: void _rectangular_selection_picking_pass() const; void _render_background() const; void _render_bed(float theta) const; - void _render_axes() const; void _render_objects() const; void _render_selection() const; #if ENABLE_RENDER_SELECTION_CENTER From cc5d74084cb59d23853fb3ddeee754568570ac08 Mon Sep 17 00:00:00 2001 From: tamasmeszaros Date: Tue, 30 Jul 2019 17:52:05 +0200 Subject: [PATCH 21/24] Fix memory leak in ProgressStatusBar --- src/slic3r/GUI/ProgressStatusBar.cpp | 28 ++++++++++++++-------------- src/slic3r/GUI/ProgressStatusBar.hpp | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/slic3r/GUI/ProgressStatusBar.cpp b/src/slic3r/GUI/ProgressStatusBar.cpp index f848e663d..33e4855cd 100644 --- a/src/slic3r/GUI/ProgressStatusBar.cpp +++ b/src/slic3r/GUI/ProgressStatusBar.cpp @@ -14,20 +14,20 @@ namespace Slic3r { -ProgressStatusBar::ProgressStatusBar(wxWindow *parent, int id): - self(new wxStatusBar(parent ? parent : GUI::wxGetApp().mainframe, - id == -1? wxID_ANY : id)), - m_timer(new wxTimer(self)), - m_prog (new wxGauge(self, - wxGA_HORIZONTAL, - 100, - wxDefaultPosition, - wxDefaultSize)), - m_cancelbutton(new wxButton(self, - -1, - _(L("Cancel")), - wxDefaultPosition, - wxDefaultSize)) +ProgressStatusBar::ProgressStatusBar(wxWindow *parent, int id) + : self{new wxStatusBar(parent ? parent : GUI::wxGetApp().mainframe, + id == -1 ? wxID_ANY : id)} + , m_prog{new wxGauge(self, + wxGA_HORIZONTAL, + 100, + wxDefaultPosition, + wxDefaultSize)} + , m_cancelbutton{new wxButton(self, + -1, + _(L("Cancel")), + wxDefaultPosition, + wxDefaultSize)} + , m_timer{new wxTimer(self)} { m_prog->Hide(); m_cancelbutton->Hide(); diff --git a/src/slic3r/GUI/ProgressStatusBar.hpp b/src/slic3r/GUI/ProgressStatusBar.hpp index 413c6ffee..1aab67d5a 100644 --- a/src/slic3r/GUI/ProgressStatusBar.hpp +++ b/src/slic3r/GUI/ProgressStatusBar.hpp @@ -25,9 +25,9 @@ namespace Slic3r { class ProgressStatusBar { wxStatusBar *self; // we cheat! It should be the base class but: perl! - wxTimer *m_timer; wxGauge *m_prog; wxButton *m_cancelbutton; + std::unique_ptr m_timer; public: /// Cancel callback function type From 57008d0d777298d51bcbd9f5006678817c5217d4 Mon Sep 17 00:00:00 2001 From: tamasmeszaros Date: Tue, 30 Jul 2019 17:54:25 +0200 Subject: [PATCH 22/24] Include SLACommon.hpp into the project. File is reformatted, but only the whitespace is changed. --- src/libslic3r/CMakeLists.txt | 1 + src/libslic3r/SLA/SLACommon.hpp | 59 +++++++++++++++++++-------------- 2 files changed, 36 insertions(+), 24 deletions(-) diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt index ac40e99bc..4842b5123 100644 --- a/src/libslic3r/CMakeLists.txt +++ b/src/libslic3r/CMakeLists.txt @@ -165,6 +165,7 @@ add_library(libslic3r STATIC MinAreaBoundingBox.cpp miniz_extension.hpp miniz_extension.cpp + SLA/SLACommon.hpp SLA/SLABoilerPlate.hpp SLA/SLABasePool.hpp SLA/SLABasePool.cpp diff --git a/src/libslic3r/SLA/SLACommon.hpp b/src/libslic3r/SLA/SLACommon.hpp index d95397fed..d8e258035 100644 --- a/src/libslic3r/SLA/SLACommon.hpp +++ b/src/libslic3r/SLA/SLACommon.hpp @@ -24,37 +24,51 @@ enum class PointsStatus { UserModified // User has done some edits. }; -struct SupportPoint { +struct SupportPoint +{ Vec3f pos; float head_front_radius; - bool is_new_island; + bool is_new_island; - SupportPoint() : - pos(Vec3f::Zero()), head_front_radius(0.f), is_new_island(false) {} + SupportPoint() + : pos(Vec3f::Zero()), head_front_radius(0.f), is_new_island(false) + {} - SupportPoint(float pos_x, float pos_y, float pos_z, float head_radius, bool new_island) : - pos(pos_x, pos_y, pos_z), head_front_radius(head_radius), is_new_island(new_island) {} + SupportPoint(float pos_x, + float pos_y, + float pos_z, + float head_radius, + bool new_island) + : pos(pos_x, pos_y, pos_z) + , head_front_radius(head_radius) + , is_new_island(new_island) + {} - SupportPoint(Vec3f position, float head_radius, bool new_island) : - pos(position), head_front_radius(head_radius), is_new_island(new_island) {} + SupportPoint(Vec3f position, float head_radius, bool new_island) + : pos(position) + , head_front_radius(head_radius) + , is_new_island(new_island) + {} - SupportPoint(Eigen::Matrix data) : - pos(data(0), data(1), data(2)), head_front_radius(data(3)), is_new_island(data(4) != 0.f) {} + SupportPoint(Eigen::Matrix data) + : pos(data(0), data(1), data(2)) + , head_front_radius(data(3)) + , is_new_island(data(4) != 0.f) + {} - bool operator==(const SupportPoint& sp) const { return (pos==sp.pos) && head_front_radius==sp.head_front_radius && is_new_island==sp.is_new_island; } - bool operator!=(const SupportPoint& sp) const { return !(sp == (*this)); } + bool operator==(const SupportPoint &sp) const + { + return (pos == sp.pos) && head_front_radius == sp.head_front_radius && + is_new_island == sp.is_new_island; + } + bool operator!=(const SupportPoint &sp) const { return !(sp == (*this)); } - template void serialize(Archive &ar) { ar(pos, head_front_radius, is_new_island); } + template void serialize(Archive &ar) + { + ar(pos, head_front_radius, is_new_island); + } }; -/// An index-triangle structure for libIGL functions. Also serves as an -/// alternative (raw) input format for the SLASupportTree -/*struct EigenMesh3D { - Eigen::MatrixXd V; - Eigen::MatrixXi F; - double ground_level = 0; -};*/ - /// An index-triangle structure for libIGL functions. Also serves as an /// alternative (raw) input format for the SLASupportTree class EigenMesh3D { @@ -161,9 +175,6 @@ public: } }; - - - } // namespace sla } // namespace Slic3r From ca1f3dc6afbe995084f8a95b31284e5c9e8c14c0 Mon Sep 17 00:00:00 2001 From: tamasmeszaros Date: Tue, 30 Jul 2019 17:55:22 +0200 Subject: [PATCH 23/24] Improved logging of SLA support tree creation. --- src/libslic3r/SLAPrint.cpp | 18 +++++++++++++----- src/libslic3r/SLAPrint.hpp | 15 ++++++++++----- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/libslic3r/SLAPrint.cpp b/src/libslic3r/SLAPrint.cpp index b3a075e26..5669307ac 100644 --- a/src/libslic3r/SLAPrint.cpp +++ b/src/libslic3r/SLAPrint.cpp @@ -928,12 +928,14 @@ void SLAPrint::process() double d = ostepd * OBJ_STEP_LEVELS[slaposSupportTree] / 100.0; double init = m_report_status.status(); - ctl.statuscb = [this, d, init](unsigned st, const std::string&) + ctl.statuscb = [this, d, init](unsigned st, const std::string &logmsg) { double current = init + st * d; if(std::round(m_report_status.status()) < std::round(current)) m_report_status(*this, current, - OBJ_STEP_LABELS(slaposSupportTree)); + OBJ_STEP_LABELS(slaposSupportTree), + SlicingStatus::DEFAULT, + logmsg); }; @@ -1914,11 +1916,17 @@ std::string SLAPrintStatistics::finalize_output_path(const std::string &path_in) return final_path; } -void SLAPrint::StatusReporter::operator()( - SLAPrint &p, double st, const std::string &msg, unsigned flags) +void SLAPrint::StatusReporter::operator()(SLAPrint & p, + double st, + const std::string &msg, + unsigned flags, + const std::string &logmsg) { m_st = st; - BOOST_LOG_TRIVIAL(info) << st << "% " << msg << log_memory_info(); + BOOST_LOG_TRIVIAL(info) + << st << "% " << msg << (logmsg.empty() ? "" : ": ") << logmsg + << log_memory_info(); + p.set_status(int(std::round(st)), msg, flags); } diff --git a/src/libslic3r/SLAPrint.hpp b/src/libslic3r/SLAPrint.hpp index 9620e9b68..c4e58ab39 100644 --- a/src/libslic3r/SLAPrint.hpp +++ b/src/libslic3r/SLAPrint.hpp @@ -447,16 +447,21 @@ private: // Estimated print time, material consumed. SLAPrintStatistics m_print_statistics; - - class StatusReporter { + + class StatusReporter + { double m_st = 0; + public: - void operator() (SLAPrint& p, double st, const std::string& msg, - unsigned flags = SlicingStatus::DEFAULT); + void operator()(SLAPrint & p, + double st, + const std::string &msg, + unsigned flags = SlicingStatus::DEFAULT, + const std::string &logmsg = ""); + double status() const { return m_st; } } m_report_status; - friend SLAPrintObject; }; From 1ab3268d55b7f8d3d4dcf2030fe4cd2899e947ae Mon Sep 17 00:00:00 2001 From: tamasmeszaros Date: Tue, 30 Jul 2019 17:57:07 +0200 Subject: [PATCH 24/24] Performance optimizations and some cleanup. Optional heavy parallelism which is disabled by default. Would like to test it further in a next release cycle. --- src/libslic3r/SLA/SLASupportTree.cpp | 556 +++++++++++++++------------ src/libslic3r/SLA/SLASupportTree.hpp | 9 +- 2 files changed, 320 insertions(+), 245 deletions(-) diff --git a/src/libslic3r/SLA/SLASupportTree.cpp b/src/libslic3r/SLA/SLASupportTree.cpp index d89836cb9..6f4ac6c21 100644 --- a/src/libslic3r/SLA/SLASupportTree.cpp +++ b/src/libslic3r/SLA/SLASupportTree.cpp @@ -83,6 +83,42 @@ const unsigned SupportConfig::max_bridges_on_pillar = 3; using Coordf = double; using Portion = std::tuple; +// Set this to true to enable full parallelism in this module. +// Only the well tested parts will be concurrent if this is set to false. +const constexpr bool USE_FULL_CONCURRENCY = false; + +template struct _ccr {}; + +template<> struct _ccr +{ + using Mutex = SpinMutex; + + template + static inline void enumerate(It from, It to, Fn fn) + { + using TN = size_t; + auto iN = to - from; + TN N = iN < 0 ? 0 : TN(iN); + + tbb::parallel_for(TN(0), N, [from, fn](TN n) { fn(*(from + n), n); }); + } +}; + +template<> struct _ccr +{ + struct Mutex { inline void lock() {} inline void unlock() {} }; + + template + static inline void enumerate(It from, It to, Fn fn) + { + for (auto it = from; it != to; ++it) fn(*it, it - from); + } +}; + +using ccr = _ccr; +using ccr_seq = _ccr; +using ccr_par = _ccr; + inline Portion make_portion(double a, double b) { return std::make_tuple(a, b); } @@ -677,6 +713,7 @@ struct Pad { } tmesh.translate(0, 0, float(zlevel)); + tmesh.require_shared_vertices(); } bool empty() const { return tmesh.facets_count() == 0; } @@ -735,63 +772,84 @@ ClusteredPoints cluster( // The support pad is considered an auxiliary geometry and is not part of the // merged mesh. It can be retrieved using a dedicated method (pad()) class SLASupportTree::Impl { - std::map m_heads; + // For heads it is beneficial to use the same IDs as for the support points. + std::vector m_heads; + std::vector m_head_indices; + std::vector m_pillars; std::vector m_junctions; std::vector m_bridges; std::vector m_compact_bridges; Controller m_ctl; - + Pad m_pad; + + using Mutex = ccr::Mutex; + + mutable Mutex m_mutex; mutable TriangleMesh meshcache; mutable bool meshcache_valid = false; mutable double model_height = 0; // the full height of the model + public: double ground_level = 0; - + Impl() = default; inline Impl(const Controller& ctl): m_ctl(ctl) {} - + const Controller& ctl() const { return m_ctl; } - - template Head& add_head(unsigned id, Args&&... args) { - auto el = m_heads.emplace(std::piecewise_construct, - std::forward_as_tuple(id), - std::forward_as_tuple(std::forward(args)...)); - el.first->second.id = id; + + template Head& add_head(unsigned id, Args&&... args) + { + std::lock_guard lk(m_mutex); + m_heads.emplace_back(std::forward(args)...); + m_heads.back().id = id; + + if (id >= m_head_indices.size()) m_head_indices.resize(id + 1); + m_head_indices[id] = m_heads.size() - 1; + meshcache_valid = false; - return el.first->second; + return m_heads.back(); } - - template Pillar& add_pillar(unsigned headid, Args&&... args) { - auto it = m_heads.find(headid); - assert(it != m_heads.end()); - Head& head = it->second; + + template Pillar& add_pillar(unsigned headid, Args&&... args) + { + std::lock_guard lk(m_mutex); + + assert(headid < m_head_indices.size()); + Head &head = m_heads[m_head_indices[headid]]; + m_pillars.emplace_back(head, std::forward(args)...); Pillar& pillar = m_pillars.back(); pillar.id = long(m_pillars.size() - 1); head.pillar_id = pillar.id; pillar.start_junction_id = head.id; pillar.starts_from_head = true; + meshcache_valid = false; return m_pillars.back(); } - - void increment_bridges(const Pillar& pillar) { + + void increment_bridges(const Pillar& pillar) + { + std::lock_guard lk(m_mutex); assert(pillar.id >= 0 && size_t(pillar.id) < m_pillars.size()); - - if(pillar.id >= 0 && size_t(pillar.id) < m_pillars.size()) + + if(pillar.id >= 0 && size_t(pillar.id) < m_pillars.size()) m_pillars[size_t(pillar.id)].bridges++; } - - void increment_links(const Pillar& pillar) { + + void increment_links(const Pillar& pillar) + { + std::lock_guard lk(m_mutex); assert(pillar.id >= 0 && size_t(pillar.id) < m_pillars.size()); - + if(pillar.id >= 0 && size_t(pillar.id) < m_pillars.size()) - m_pillars[size_t(pillar.id)].links++; + m_pillars[size_t(pillar.id)].links++; } - + template Pillar& add_pillar(Args&&...args) { + std::lock_guard lk(m_mutex); m_pillars.emplace_back(std::forward(args)...); Pillar& pillar = m_pillars.back(); pillar.id = long(m_pillars.size() - 1); @@ -799,161 +857,175 @@ public: meshcache_valid = false; return m_pillars.back(); } - - const Head& pillar_head(long pillar_id) const { + + const Head& pillar_head(long pillar_id) const + { + std::lock_guard lk(m_mutex); assert(pillar_id >= 0 && pillar_id < long(m_pillars.size())); + const Pillar& p = m_pillars[size_t(pillar_id)]; assert(p.starts_from_head && p.start_junction_id >= 0); - auto it = m_heads.find(unsigned(p.start_junction_id)); - assert(it != m_heads.end()); - return it->second; + assert(size_t(p.start_junction_id) < m_head_indices.size()); + + return m_heads[m_head_indices[p.start_junction_id]]; } - - const Pillar& head_pillar(unsigned headid) const { - auto it = m_heads.find(headid); - assert(it != m_heads.end()); - const Head& h = it->second; + + const Pillar& head_pillar(unsigned headid) const + { + std::lock_guard lk(m_mutex); + assert(headid < m_head_indices.size()); + + const Head& h = m_heads[m_head_indices[headid]]; assert(h.pillar_id >= 0 && h.pillar_id < long(m_pillars.size())); - return pillar(h.pillar_id); + + return m_pillars[size_t(h.pillar_id)]; } - - template const Junction& add_junction(Args&&... args) { + + template const Junction& add_junction(Args&&... args) + { + std::lock_guard lk(m_mutex); m_junctions.emplace_back(std::forward(args)...); m_junctions.back().id = long(m_junctions.size() - 1); meshcache_valid = false; return m_junctions.back(); } - - template const Bridge& add_bridge(Args&&... args) { + + template const Bridge& add_bridge(Args&&... args) + { + std::lock_guard lk(m_mutex); m_bridges.emplace_back(std::forward(args)...); m_bridges.back().id = long(m_bridges.size() - 1); meshcache_valid = false; return m_bridges.back(); } - - template - const CompactBridge& add_compact_bridge(Args&&...args) { + + template const CompactBridge& add_compact_bridge(Args&&...args) + { + std::lock_guard lk(m_mutex); m_compact_bridges.emplace_back(std::forward(args)...); m_compact_bridges.back().id = long(m_compact_bridges.size() - 1); meshcache_valid = false; return m_compact_bridges.back(); } - - const std::map& heads() const { return m_heads; } - Head& head(unsigned idx) { + + Head &head(unsigned id) + { + std::lock_guard lk(m_mutex); + assert(id < m_head_indices.size()); + meshcache_valid = false; - auto it = m_heads.find(idx); - assert(it != m_heads.end()); - return it->second; + return m_heads[m_head_indices[id]]; } - const std::vector& pillars() const { return m_pillars; } - const std::vector& bridges() const { return m_bridges; } - const std::vector& junctions() const { return m_junctions; } - const std::vector& compact_bridges() const { - return m_compact_bridges; + + inline size_t pillarcount() const { + std::lock_guard lk(m_mutex); + return m_pillars.size(); } - - template inline const Pillar& pillar(T id) const { - static_assert(std::is_integral::value, "Invalid index type"); + + template inline IntegerOnly pillar(T id) const + { + std::lock_guard lk(m_mutex); assert(id >= 0 && size_t(id) < m_pillars.size() && size_t(id) < std::numeric_limits::max()); + return m_pillars[size_t(id)]; } - - const Pad& create_pad(const TriangleMesh& object_supports, - const ExPolygons& modelbase, - const PoolConfig& cfg) { + + const Pad &create_pad(const TriangleMesh &object_supports, + const ExPolygons & modelbase, + const PoolConfig & cfg) + { m_pad = Pad(object_supports, modelbase, ground_level, cfg); return m_pad; } - - void remove_pad() { - m_pad = Pad(); - } - + + void remove_pad() { m_pad = Pad(); } + const Pad& pad() const { return m_pad; } - + // WITHOUT THE PAD!!! - const TriangleMesh& merged_mesh() const { - if(meshcache_valid) return meshcache; - + const TriangleMesh &merged_mesh() const + { + if (meshcache_valid) return meshcache; + Contour3D merged; - - for(auto& headel : heads()) { - if(m_ctl.stopcondition()) break; - if(headel.second.is_valid()) - merged.merge(headel.second.mesh); + + for (auto &head : m_heads) { + if (m_ctl.stopcondition()) break; + if (head.is_valid()) merged.merge(head.mesh); } - - for(auto& stick : pillars()) { - if(m_ctl.stopcondition()) break; + + for (auto &stick : m_pillars) { + if (m_ctl.stopcondition()) break; merged.merge(stick.mesh); merged.merge(stick.base); } - - for(auto& j : junctions()) { - if(m_ctl.stopcondition()) break; + + for (auto &j : m_junctions) { + if (m_ctl.stopcondition()) break; merged.merge(j.mesh); } - - for(auto& cb : compact_bridges()) { - if(m_ctl.stopcondition()) break; + + for (auto &cb : m_compact_bridges) { + if (m_ctl.stopcondition()) break; merged.merge(cb.mesh); } - - for(auto& bs : bridges()) { - if(m_ctl.stopcondition()) break; + + for (auto &bs : m_bridges) { + if (m_ctl.stopcondition()) break; merged.merge(bs.mesh); } - - if(m_ctl.stopcondition()) { + + if (m_ctl.stopcondition()) { // In case of failure we have to return an empty mesh meshcache = TriangleMesh(); return meshcache; } - + meshcache = mesh(merged); - + // The mesh will be passed by const-pointer to TriangleMeshSlicer, // which will need this. if (!meshcache.empty()) meshcache.require_shared_vertices(); - - // TODO: Is this necessary? - //meshcache.repair(); - - BoundingBoxf3&& bb = meshcache.bounding_box(); - model_height = bb.max(Z) - bb.min(Z); - + + BoundingBoxf3 &&bb = meshcache.bounding_box(); + model_height = bb.max(Z) - bb.min(Z); + meshcache_valid = true; return meshcache; } - + // WITH THE PAD - double full_height() const { - if(merged_mesh().empty() && !pad().empty()) + double full_height() const + { + if (merged_mesh().empty() && !pad().empty()) return get_pad_fullheight(pad().cfg); - + double h = mesh_height(); - if(!pad().empty()) h += sla::get_pad_elevation(pad().cfg); + if (!pad().empty()) h += sla::get_pad_elevation(pad().cfg); return h; } - + // WITHOUT THE PAD!!! - double mesh_height() const { - if(!meshcache_valid) merged_mesh(); + double mesh_height() const + { + if (!meshcache_valid) merged_mesh(); return model_height; } // Intended to be called after the generation is fully complete - void clear_support_data() { + void merge_and_cleanup() + { merged_mesh(); // in case the mesh is not generated, it should be... - m_heads.clear(); - m_pillars.clear(); - m_junctions.clear(); - m_bridges.clear(); - m_compact_bridges.clear(); + + // Doing clear() does not garantee to release the memory. + m_heads = {}; + m_head_indices = {}; + m_pillars = {}; + m_junctions = {}; + m_bridges = {}; + m_compact_bridges = {}; } - }; // This function returns the position of the centroid in the input 'clust' @@ -1122,11 +1194,10 @@ class SLASupportTree::Algorithm { // Now a and b vectors are perpendicular to v and to each other. // Together they define the plane where we have to iterate with the // given angles in the 'phis' vector - tbb::parallel_for(size_t(0), phis.size(), - [&phis, &hits, &m, sd, r_pin, r_back, s, a, b, c] - (size_t i) + ccr_par::enumerate(phis.begin(), phis.end(), + [&hits, &m, sd, r_pin, r_back, s, a, b, c] + (double phi, size_t i) { - double& phi = phis[i]; double sinphi = std::sin(phi); double cosphi = std::cos(phi); @@ -1225,12 +1296,11 @@ class SLASupportTree::Algorithm { // Hit results std::array hits; - - tbb::parallel_for(size_t(0), phis.size(), - [&m, &phis, a, b, sd, dir, r, s, ins_check, &hits] - (size_t i) + + ccr_par::enumerate(phis.begin(), phis.end(), + [&m, a, b, sd, dir, r, s, ins_check, &hits] + (double phi, size_t i) { - double& phi = phis[i]; double sinphi = std::sin(phi); double cosphi = std::cos(phi); @@ -1458,7 +1528,7 @@ class SLASupportTree::Algorithm { if(nearest_id >= 0) { auto nearpillarID = unsigned(nearest_id); - if(nearpillarID < m_result.pillars().size()) { + if(nearpillarID < m_result.pillarcount()) { if(!connect_to_nearpillar(head, nearpillarID)) { nearest_id = -1; // continue searching spindex.remove(ne); // without the current pillar @@ -1646,46 +1716,52 @@ public: using libnest2d::opt::initvals; using libnest2d::opt::GeneticOptimizer; using libnest2d::opt::StopCriteria; - - for(unsigned i = 0, fidx = 0; i < filtered_indices.size(); ++i) + + ccr::Mutex mutex; + auto addfn = [&mutex](PtIndices &container, unsigned val) { + std::lock_guard lk(mutex); + container.emplace_back(val); + }; + + ccr::enumerate(filtered_indices.begin(), filtered_indices.end(), + [this, &nmls, addfn](unsigned fidx, size_t i) { m_thr(); - - fidx = filtered_indices[i]; + auto n = nmls.row(i); - + // for all normals we generate the spherical coordinates and // saturate the polar angle to 45 degrees from the bottom then // convert back to standard coordinates to get the new normal. // Then we just create a quaternion from the two normals // (Quaternion::FromTwoVectors) and apply the rotation to the // arrow head. - + double z = n(2); double r = 1.0; // for normalized vector double polar = std::acos(z / r); double azimuth = std::atan2(n(1), n(0)); - + // skip if the tilt is not sane if(polar >= PI - m_cfg.normal_cutoff_angle) { - + // We saturate the polar angle to 3pi/4 polar = std::max(polar, 3*PI / 4); - + // save the head (pinpoint) position Vec3d hp = m_points.row(fidx); - + double w = m_cfg.head_width_mm + m_cfg.head_back_radius_mm + 2*m_cfg.head_front_radius_mm; - + double pin_r = double(m_support_pts[fidx].head_front_radius); - + // Reassemble the now corrected normal auto nn = Vec3d(std::cos(azimuth) * std::sin(polar), std::sin(azimuth) * std::sin(polar), std::cos(polar)).normalized(); - + // check available distance EigenMesh3D::hit_result t = pinhead_mesh_intersect(hp, // touching point @@ -1693,37 +1769,37 @@ public: pin_r, m_cfg.head_back_radius_mm, w); - + if(t.distance() <= w) { - + // Let's try to optimize this angle, there might be a // viable normal that doesn't collide with the model // geometry and its very close to the default. - + StopCriteria stc; stc.max_iterations = m_cfg.optimizer_max_iterations; stc.relative_score_difference = m_cfg.optimizer_rel_score_diff; stc.stop_score = w; // space greater than w is enough GeneticOptimizer solver(stc); solver.seed(0); // we want deterministic behavior - + auto oresult = solver.optimize_max( [this, pin_r, w, hp](double plr, double azm) - { - auto n = Vec3d(std::cos(azm) * std::sin(plr), - std::sin(azm) * std::sin(plr), - std::cos(plr)).normalized(); + { + auto n = Vec3d(std::cos(azm) * std::sin(plr), + std::sin(azm) * std::sin(plr), + std::cos(plr)).normalized(); - double score = pinhead_mesh_intersect( hp, n, pin_r, - m_cfg.head_back_radius_mm, w); - - return score; - }, - initvals(polar, azimuth), // start with what we have - bound(3*PI/4, PI), // Must not exceed the tilt limit - bound(-PI, PI) // azimuth can be a full search - ); + double score = pinhead_mesh_intersect( + hp, n, pin_r, m_cfg.head_back_radius_mm, w); + return score; + }, + initvals(polar, azimuth), // start with what we have + bound(3*PI/4, PI), // Must not exceed the tilt limit + bound(-PI, PI) // azimuth can be a full search + ); + if(oresult.score > w) { polar = std::get<0>(oresult.optimum); azimuth = std::get<1>(oresult.optimum); @@ -1733,25 +1809,25 @@ public: t = oresult.score; } } - + // save the verified and corrected normal m_support_nmls.row(fidx) = nn; - + if (t.distance() > w) { // Check distance from ground, we might have zero elevation. if (hp(Z) + w * nn(Z) < m_result.ground_level) { - m_iheadless.emplace_back(fidx); + addfn(m_iheadless, fidx); } else { // mark the point for needing a head. - m_iheads.emplace_back(fidx); + addfn(m_iheads, fidx); } } else if (polar >= 3 * PI / 4) { // Headless supports do not tilt like the headed ones // so the normal should point almost to the ground. - m_iheadless.emplace_back(fidx); + addfn(m_iheadless, fidx); } } - } + }); m_thr(); } @@ -1939,11 +2015,17 @@ public: }; std::vector modelpillars; + ccr::Mutex mutex; // TODO: connect these to the ground pillars if possible - for(auto item : m_iheads_onmodel) { m_thr(); - unsigned idx = item.first; - EigenMesh3D::hit_result hit = item.second; + ccr::enumerate(m_iheads_onmodel.begin(), m_iheads_onmodel.end(), + [this, routedown, &modelpillars, &mutex] + (const std::pair &el, + size_t) + { + m_thr(); + unsigned idx = el.first; + EigenMesh3D::hit_result hit = el.second; auto& head = m_result.head(idx); Vec3d hjp = head.junction_point(); @@ -1952,7 +2034,7 @@ public: // Search nearby pillar // ///////////////////////////////////////////////////////////////// - if(search_pillar_and_connect(head)) { head.transform(); continue; } + if(search_pillar_and_connect(head)) { head.transform(); return; } // ///////////////////////////////////////////////////////////////// // Try straight path @@ -1974,7 +2056,7 @@ public: } if(std::isinf(tdown)) { // we heave found a route to the ground - routedown(head, head.dir, d); continue; + routedown(head, head.dir, d); return; } // ///////////////////////////////////////////////////////////////// @@ -2036,7 +2118,7 @@ public: } if(std::isinf(tdown)) { // we heave found a route to the ground - routedown(head, bridgedir, d); continue; + routedown(head, bridgedir, d); return; } // ///////////////////////////////////////////////////////////////// @@ -2079,8 +2161,9 @@ public: pill.base = tailhead.mesh; // Experimental: add the pillar to the index for cascading + std::lock_guard lk(mutex); modelpillars.emplace_back(unsigned(pill.id)); - continue; + return; } // We have failed to route this head. @@ -2088,7 +2171,7 @@ public: << "Failed to route model facing support point." << " ID: " << idx; head.invalidate(); - } + }); for(auto pillid : modelpillars) { auto& pillar = m_result.pillar(pillid); @@ -2175,8 +2258,8 @@ public: // Search for the pair amongst the remembered pairs if(pairs.find(hashval) != pairs.end()) continue; - - const Pillar& neighborpillar = m_result.pillars()[re.second]; + + const Pillar& neighborpillar = m_result.pillar(re.second); // this neighbor is occupied, skip if(neighborpillar.links >= neighbors) continue; @@ -2212,7 +2295,7 @@ public: // lonely pillars. One or even two additional pillar might get inserted // depending on the length of the lonely pillar. - size_t pillarcount = m_result.pillars().size(); + size_t pillarcount = m_result.pillarcount(); // Again, go through all pillars, this time in the whole support tree // not just the index. @@ -2364,6 +2447,8 @@ public: m_result.add_compact_bridge(sp, ej, n, R, !std::isinf(dist)); } } + + void merge_result() { m_result.merge_and_cleanup(); } }; bool SLASupportTree::generate(const std::vector &support_points, @@ -2372,9 +2457,9 @@ bool SLASupportTree::generate(const std::vector &support_points, const Controller &ctl) { if(support_points.empty()) return false; - + Algorithm alg(cfg, mesh, support_points, *m_impl, ctl.cancelfn); - + // Let's define the individual steps of the processing. We can experiment // later with the ordering and the dependencies between them. enum Steps { @@ -2386,55 +2471,58 @@ bool SLASupportTree::generate(const std::vector &support_points, ROUTING_NONGROUND, CASCADE_PILLARS, HEADLESS, + MERGE_RESULT, DONE, ABORT, NUM_STEPS //... }; - + // Collect the algorithm steps into a nice sequence std::array, NUM_STEPS> program = { [] () { // Begin... // Potentially clear up the shared data (not needed for now) }, - + std::bind(&Algorithm::filter, &alg), - + std::bind(&Algorithm::add_pinheads, &alg), - + std::bind(&Algorithm::classify, &alg), - + std::bind(&Algorithm::routing_to_ground, &alg), - + std::bind(&Algorithm::routing_to_model, &alg), - + std::bind(&Algorithm::interconnect_pillars, &alg), - + std::bind(&Algorithm::routing_headless, &alg), - + + std::bind(&Algorithm::merge_result, &alg), + [] () { // Done }, - + [] () { // Abort } }; - + Steps pc = BEGIN; - + if(cfg.ground_facing_only) { program[ROUTING_NONGROUND] = []() { BOOST_LOG_TRIVIAL(info) - << "Skipping model-facing supports as requested."; + << "Skipping model-facing supports as requested."; }; program[HEADLESS] = []() { BOOST_LOG_TRIVIAL(info) << "Skipping headless stick generation as" " requested."; }; } - + // Let's define a simple automaton that will run our program. auto progress = [&ctl, &pc] () { static const std::array stepstr { @@ -2446,10 +2534,11 @@ bool SLASupportTree::generate(const std::vector &support_points, "Routing supports to model surface", "Interconnecting pillars", "Processing small holes", + "Merging support mesh", "Done", "Abort" }; - + static const std::array stepstate { 0, 10, @@ -2458,13 +2547,14 @@ bool SLASupportTree::generate(const std::vector &support_points, 60, 70, 80, - 90, + 85, + 99, 100, 0 }; - + if(ctl.stopcondition()) pc = ABORT; - + switch(pc) { case BEGIN: pc = FILTER; break; case FILTER: pc = PINHEADS; break; @@ -2473,20 +2563,22 @@ bool SLASupportTree::generate(const std::vector &support_points, case ROUTING_GROUND: pc = ROUTING_NONGROUND; break; case ROUTING_NONGROUND: pc = CASCADE_PILLARS; break; case CASCADE_PILLARS: pc = HEADLESS; break; - case HEADLESS: pc = DONE; break; + case HEADLESS: pc = MERGE_RESULT; break; + case MERGE_RESULT: pc = DONE; break; case DONE: case ABORT: break; default: ; } + ctl.statuscb(stepstate[pc], stepstr[pc]); }; - + // Just here we run the computation... while(pc < DONE) { progress(); program[pc](); } - + return pc == ABORT; } @@ -2504,44 +2596,40 @@ void SLASupportTree::merged_mesh_with_pad(TriangleMesh &outmesh) const { outmesh.merge(get_pad()); } -std::vector SLASupportTree::slice(float layerh, float init_layerh) const +std::vector SLASupportTree::slice( + const std::vector &heights, float cr) const { - if(init_layerh < 0) init_layerh = layerh; - auto& stree = get(); - - const auto modelh = float(stree.full_height()); - auto gndlvl = float(this->m_impl->ground_level); - const Pad& pad = m_impl->pad(); - if(!pad.empty()) gndlvl -= float(get_pad_elevation(pad.cfg)); - - std::vector heights; - heights.reserve(size_t(modelh/layerh) + 1); - - for(float h = gndlvl + init_layerh; h < gndlvl + modelh; h += layerh) { - heights.emplace_back(h); + const TriangleMesh &sup_mesh = m_impl->merged_mesh(); + const TriangleMesh &pad_mesh = get_pad(); + + std::vector sup_slices; + if (!sup_mesh.empty()) { + TriangleMeshSlicer sup_slicer(&sup_mesh); + sup_slicer.slice(heights, cr, &sup_slices, m_impl->ctl().cancelfn); } - - TriangleMesh fullmesh = m_impl->merged_mesh(); - fullmesh.merge(get_pad()); - if (!fullmesh.empty()) fullmesh.require_shared_vertices(); - TriangleMeshSlicer slicer(&fullmesh); - std::vector ret; - slicer.slice(heights, 0.f, &ret, get().ctl().cancelfn); - - return ret; -} - -std::vector SLASupportTree::slice(const std::vector &heights, - float cr) const -{ - TriangleMesh fullmesh = m_impl->merged_mesh(); - fullmesh.merge(get_pad()); - if (!fullmesh.empty()) fullmesh.require_shared_vertices(); - TriangleMeshSlicer slicer(&fullmesh); - std::vector ret; - slicer.slice(heights, cr, &ret, get().ctl().cancelfn); - - return ret; + + auto bb = pad_mesh.bounding_box(); + auto maxzit = std::upper_bound(heights.begin(), heights.end(), bb.max.z()); + + auto padgrid = reserve_vector(heights.end() - maxzit); + std::copy(heights.begin(), maxzit, std::back_inserter(padgrid)); + + std::vector pad_slices; + if (!pad_mesh.empty()) { + TriangleMeshSlicer pad_slicer(&pad_mesh); + pad_slicer.slice(padgrid, cr, &pad_slices, m_impl->ctl().cancelfn); + } + + size_t len = std::min(heights.size(), pad_slices.size()); + len = std::min(len, sup_slices.size()); + + for (size_t i = 0; i < len; ++i) { + std::copy(pad_slices[i].begin(), pad_slices[i].end(), + std::back_inserter(sup_slices[i])); + pad_slices[i] = {}; + } + + return sup_slices; } const TriangleMesh &SLASupportTree::add_pad(const ExPolygons& modelbase, @@ -2568,16 +2656,6 @@ SLASupportTree::SLASupportTree(const std::vector &points, { m_impl->ground_level = emesh.ground_level() - cfg.object_elevation_mm; generate(points, emesh, cfg, ctl); - m_impl->clear_support_data(); -} - -SLASupportTree::SLASupportTree(const SLASupportTree &c): - m_impl(new Impl(*c.m_impl)) {} - -SLASupportTree &SLASupportTree::operator=(const SLASupportTree &c) -{ - m_impl = make_unique(*c.m_impl); - return *this; } SLASupportTree::~SLASupportTree() {} diff --git a/src/libslic3r/SLA/SLASupportTree.hpp b/src/libslic3r/SLA/SLASupportTree.hpp index 8602d8a46..d7f15c17b 100644 --- a/src/libslic3r/SLA/SLASupportTree.hpp +++ b/src/libslic3r/SLA/SLASupportTree.hpp @@ -171,9 +171,9 @@ public: const EigenMesh3D& em, const SupportConfig& cfg = {}, const Controller& ctl = {}); - - SLASupportTree(const SLASupportTree&); - SLASupportTree& operator=(const SLASupportTree&); + + SLASupportTree(const SLASupportTree&) = delete; + SLASupportTree& operator=(const SLASupportTree&) = delete; ~SLASupportTree(); @@ -183,9 +183,6 @@ public: void merged_mesh_with_pad(TriangleMesh&) const; - /// Get the sliced 2d layers of the support geometry. - std::vector slice(float layerh, float init_layerh = -1.0) const; - std::vector slice(const std::vector &, float closing_radius) const;