From 965c602117e9de99019d49bd78ca1d707a1a6bd2 Mon Sep 17 00:00:00 2001 From: Eduardo Davila Date: Fri, 22 Oct 2010 16:16:48 +0000 Subject: [PATCH] *** empty log message *** --- .../bbcreaMaracasVisuColorLayerImageView.cxx | 4 +- .../bbcreaMaracasVisuColorLayerImageView.h | 2 + .../ThresholdImageView/128002.diagram | 78 +++++----- .../ThresholdImageView/2.session | 2 +- .../ThresholdImageView/ThresholdImageView.prj | 4 +- .../ThresholdImageView_html/fig128002.png | Bin 58146 -> 60692 bytes .../ColorLayerImageViewPanel.cxx | 123 ++++++++------- .../ColorLayerImageViewPanel.h | 1 + .../ThresholdImageView/LayerImageBase.cxx | 4 +- .../manualPaint/ManualPaintControler.cpp | 61 ++++++++ .../manualPaint/ManualPaintControler.h | 33 ++++ .../widgets/manualPaint/ManualPaintModel.cpp | 68 +++++++++ .../widgets/manualPaint/ManualPaintModel.h | 30 ++++ .../widgets/manualPaint/ManualPaintPanel.cpp | 45 ++++++ .../widgets/manualPaint/ManualPaintPanel.h | 24 +++ .../manualPaint/vtkInteractorManualPaint.cpp | 76 ++++++++++ .../manualPaint/vtkInteractorManualPaint.h | 25 +++ .../manualPaint/wxManualPaintPanel.cpp | 142 ++++++++++++++++++ .../widgets/manualPaint/wxManualPaintPanel.h | 32 ++++ 19 files changed, 653 insertions(+), 101 deletions(-) create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintPanel.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintPanel.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/vtkInteractorManualPaint.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/vtkInteractorManualPaint.h create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp create mode 100644 lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.h diff --git a/bbtk/src/bbcreaMaracasVisuColorLayerImageView.cxx b/bbtk/src/bbcreaMaracasVisuColorLayerImageView.cxx index 4885cbd..3c25755 100644 --- a/bbtk/src/bbcreaMaracasVisuColorLayerImageView.cxx +++ b/bbtk/src/bbcreaMaracasVisuColorLayerImageView.cxx @@ -19,6 +19,7 @@ void ColorLayerImageView::Process() ColorLayerImageViewPanel *clivp = (ColorLayerImageViewPanel*)bbGetOutputWidget(); clivp->GetColorLayerImageView()->SetwxVtkBaseView( bbGetInputWxVtkBaseView() ); + clivp->SetImage( bbGetInputIn() ); // std::string msg; // if (bbGetInputTitle()!="") @@ -43,7 +44,8 @@ void ColorLayerImageView::CreateWidget(wxWindow* parent) //===== void ColorLayerImageView::bbUserSetDefaultValues() { - + bbSetInputIn(NULL); + bbSetInputWxVtkBaseView(NULL); } //===== // Don't edit this file. This file is generated from xml description.. diff --git a/bbtk/src/bbcreaMaracasVisuColorLayerImageView.h b/bbtk/src/bbcreaMaracasVisuColorLayerImageView.h index 89c9b2d..de203af 100644 --- a/bbtk/src/bbcreaMaracasVisuColorLayerImageView.h +++ b/bbtk/src/bbcreaMaracasVisuColorLayerImageView.h @@ -21,6 +21,7 @@ class bbcreaMaracasVisu_EXPORT ColorLayerImageView // Don't edit this file. This file is generated from xml description.. //===== BBTK_DECLARE_INPUT(WxVtkBaseView,wxVtkBaseView *); + BBTK_DECLARE_INPUT(In,vtkImageData*); BBTK_PROCESS(Process); void Process(); BBTK_CREATE_WIDGET(CreateWidget); @@ -36,6 +37,7 @@ BBTK_NAME("ColorLayerImageView"); BBTK_AUTHOR("Eduardo DAVILA (Creatis)"); BBTK_DESCRIPTION("Color Laye rImage View"); BBTK_CATEGORY("__CategoryBlackBox__"); +BBTK_INPUT(ColorLayerImageView,In,"Input Image",vtkImageData*,""); BBTK_INPUT(ColorLayerImageView,WxVtkBaseView,"creaMaracasVisuViewer viewer",wxVtkBaseView*,""); BBTK_END_DESCRIBE_BLACK_BOX(ColorLayerImageView); //===== diff --git a/lib/doxygen/bouml/ThresholdImageView/ThresholdImageView/128002.diagram b/lib/doxygen/bouml/ThresholdImageView/ThresholdImageView/128002.diagram index 31224f8..93d780c 100644 --- a/lib/doxygen/bouml/ThresholdImageView/ThresholdImageView/128002.diagram +++ b/lib/doxygen/bouml/ThresholdImageView/ThresholdImageView/128002.diagram @@ -2,98 +2,98 @@ format 73 classcanvas 128002 class_ref 128002 // ThresholdImageViewPanel draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default - xyz 150.4 593.6 2000 + xyz 150.6 593.4 2000 end classcanvas 128130 class_ref 128130 // wxPanel draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default color mediumgreen - xyz 337.7 465.8 2000 + xyz 337.3 465.2 2000 end classcanvas 128386 class_ref 128258 // ThresholdImageView draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default - xyz 116.7 387 2005 + xyz 116.3 387 2005 end classcanvas 128642 class_ref 128386 // LayerImageBase draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default - xyz 328.3 230.3 2000 + xyz 328.7 230.7 2000 end classcanvas 128898 class_ref 128514 // ColorLayerImageViewPanel draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default - xyz 533.2 592.5 2000 + xyz 533.8 589.5 2000 end classcanvas 129154 class_ref 128642 // ColorLayerImageView draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default - xyz 517.3 387 2000 + xyz 517.7 387 2000 end classcanvas 130306 class_ref 128770 // wxVtkBaseView draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default color gold - xyz 88.9 230.3 2000 + xyz 88.1 230.7 2000 end classcanvas 130562 class_ref 128898 // mBarRange draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default - xyz 71.5 451.4 2000 + xyz 71.5 451.6 2000 end classcanvas 130818 class_ref 129026 // wxDlgTransformByDimensionBySpacingByPixel draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default - xyz 425.8 311.4 2000 + xyz 425.2 311.6 2000 end classcanvas 131074 class_ref 129154 // vtkImageData draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default color darkblue - xyz 522.5 46.9 2000 + xyz 522.5 46.1 2000 end classcanvas 131330 class_ref 129282 // vtkImageReslice draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default color darkblue - xyz 569.4 94.7 2000 + xyz 569.6 94.3 2000 end classcanvas 131586 class_ref 129410 // vtkLookupTable draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default color darkblue - xyz 611.2 142.5 2000 + xyz 611.8 142.5 2000 end classcanvas 131714 class_ref 129538 // vtkImageMapToColors draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default color darkblue - xyz 608.6 199.2 2011 + xyz 608.4 199.8 2011 end classcanvas 131842 class_ref 129666 // vtkImageActor draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default color darkblue - xyz 614 254.7 2006 + xyz 614 254.3 2006 end note 132482 "wxVtkViewer Class Diagram 1" - xyzwh 85.6 113.3 2000 163 81 + xyzwh 85.4 113.7 2000 163 81 classcanvas 132738 class_ref 136194 // bbcreaMaracasVisuColorLayerImageView draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default color lightorange - xyz 271.2 911.3 2005 + xyz 271.4 911.5 2005 end note 132866 "Inputs of the box" - xyzwh 48.9 914.6 2000 157 41 + xyzwh 48.7 914.8 2000 157 41 note 133122 "Output of the box" - xyzwh 660.7 912 2000 163 39 + xyzwh 660.5 912.8 2000 163 39 classcanvas 133890 class_ref 136322 // wxWindow draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default color mediumgreen - xyz 327.6 391.4 2000 + xyz 327.4 391.6 2000 end -classcanvas 136066 class_ref 136450 // bbcreaMaracasVisuLayerImageBase +classcanvas 136066 class_ref 136450 // bbcreaMaracasVisuThresholdImageView draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default color lightorange - xyz 112.8 669.3 2012 + xyz 81.8 663.2 2012 end note 139010 "Input of the box " - xyzwh 44 723 2000 97 68 + xyzwh 44.6 722.8 2000 97 68 note 139138 "Output of the box " - xyzwh 366 734 2000 97 66 + xyzwh 378 732 2000 97 66 note 139778 "This box is missing.. EED" - xyzwh 177 766 2000 148 72 + xyzwh 177 765.8 2000 148 72 relationcanvas 128258 relation_ref 128002 // - from ref 128002 z 2001 to point 374.6 542.4 + from ref 128002 z 2001 to point 374.8 542.2 line 135938 z 2001 to ref 128130 no_role_a no_role_b no_multiplicity_a no_multiplicity_b @@ -104,19 +104,19 @@ relationcanvas 128514 relation_ref 128130 // no_multiplicity_a no_multiplicity_b end relationcanvas 128770 relation_ref 128258 // - from ref 128386 z 2006 to point 400.2 359.1 + from ref 128386 z 2006 to point 400.6 359.8 line 135170 z 2006 to ref 128642 no_role_a no_role_b no_multiplicity_a no_multiplicity_b end relationcanvas 129026 relation_ref 128386 // - from ref 128898 z 2001 to point 374.6 543.5 + from ref 128898 z 2001 to point 374.8 543 line 135810 z 2001 to ref 128130 no_role_a no_role_b no_multiplicity_a no_multiplicity_b end relationcanvas 129282 relation_ref 128514 // - from ref 129154 z 2001 to point 400.2 359.1 + from ref 129154 z 2001 to point 400.6 359.8 line 135042 z 2001 to ref 128642 no_role_a no_role_b no_multiplicity_a no_multiplicity_b @@ -137,8 +137,8 @@ relationcanvas 130690 relation_ref 128898 // no_multiplicity_a no_multiplicity_b end relationcanvas 130946 relation_ref 129026 // - from ref 128898 z 2001 to point 784.6 539.1 - line 135426 z 2001 to point 783.5 366.8 + from ref 128898 z 2001 to point 784.8 539.8 + line 135426 z 2001 to point 783 366.4 line 135554 z 2001 to ref 130818 no_role_a no_role_b no_multiplicity_a no_multiplicity_b @@ -169,8 +169,8 @@ relationcanvas 132226 relation_ref 129666 // no_multiplicity_a no_multiplicity_b end relationcanvas 133378 relation_ref 136194 // - from ref 132738 z 2006 to point 22.5 871.8 - line 133506 z 2006 to point 23.5 250.2 + from ref 132738 z 2006 to point 22.2 871.4 + line 133506 z 2006 to point 23 250.6 line 133762 z 2006 to ref 130306 no_role_a no_role_b no_multiplicity_a no_multiplicity_b @@ -181,14 +181,14 @@ relationcanvas 134018 relation_ref 136322 // no_multiplicity_a no_multiplicity_b end relationcanvas 134146 relation_ref 136450 // - from ref 132738 z 2006 to point 508.8 809.7 - line 138242 z 2006 to point 461.3 427.9 + from ref 132738 z 2006 to point 508 809.8 + line 138242 z 2006 to point 461.4 427.2 line 134402 z 2006 to ref 133890 no_role_a no_role_b no_multiplicity_a no_multiplicity_b end relationcanvas 134914 relation_ref 136706 // - from ref 132738 z 2006 to point 675 849 + from ref 132738 z 2006 to point 675.6 849.8 line 138882 z 2006 to ref 128898 no_role_a no_role_b no_multiplicity_a no_multiplicity_b @@ -199,15 +199,15 @@ relationcanvas 136834 relation_ref 137090 // no_multiplicity_a no_multiplicity_b end relationcanvas 137090 relation_ref 137218 // - from ref 136066 z 2013 to point 493.5 681.3 - line 137858 z 2013 to point 460.2 427.9 + from ref 136066 z 2013 to point 493 681.4 + line 137858 z 2013 to point 460.6 427.2 line 138498 z 2013 to ref 133890 no_role_a no_role_b no_multiplicity_a no_multiplicity_b end relationcanvas 137474 relation_ref 137474 // - from ref 136066 z 2013 to point 23.5 676.8 - line 138754 z 2013 to point 23.5 249.1 + from ref 136066 z 2013 to point 23 676.4 + line 138754 z 2013 to point 23 249.8 line 138626 z 2013 to ref 130306 no_role_a no_role_b no_multiplicity_a no_multiplicity_b diff --git a/lib/doxygen/bouml/ThresholdImageView/ThresholdImageView/2.session b/lib/doxygen/bouml/ThresholdImageView/ThresholdImageView/2.session index c609f1b..25dfec3 100644 --- a/lib/doxygen/bouml/ThresholdImageView/ThresholdImageView/2.session +++ b/lib/doxygen/bouml/ThresholdImageView/ThresholdImageView/2.session @@ -1,7 +1,7 @@ window_sizes 1322 787 337 975 597 92 diagrams active classdiagram_ref 128002 // ThresholdImageView_DiagramClass - 975 597 90 4 288 0 + 975 597 90 4 252 0 end show_stereotypes selected classdiagram_ref 128002 // ThresholdImageView_DiagramClass diff --git a/lib/doxygen/bouml/ThresholdImageView/ThresholdImageView/ThresholdImageView.prj b/lib/doxygen/bouml/ThresholdImageView/ThresholdImageView/ThresholdImageView.prj index 921b28b..e8dbfee 100644 --- a/lib/doxygen/bouml/ThresholdImageView/ThresholdImageView/ThresholdImageView.prj +++ b/lib/doxygen/bouml/ThresholdImageView/ThresholdImageView/ThresholdImageView.prj @@ -1,6 +1,6 @@ format 73 "ThresholdImageView" - revision 2 + revision 3 modified_by 2 "davila" @@ -432,7 +432,7 @@ ${inlines} end - class 136450 "bbcreaMaracasVisuLayerImageBase" + class 136450 "bbcreaMaracasVisuThresholdImageView" visibility package cpp_decl "${comment}${template}class ${name}${inherit} { ${members}}; diff --git a/lib/doxygen/bouml/ThresholdImageView/ThresholdImageView_html/fig128002.png b/lib/doxygen/bouml/ThresholdImageView/ThresholdImageView_html/fig128002.png index 2801de0fe800716ff598e63f2efb505b2f065cd7..4d3f7e67cc2810cd324b5eda45067e9f7b4f08e1 100644 GIT binary patch literal 60692 zcmeFZRajg>v@Y04a7%z-fes-Ag1bW#2oT)eg1fszfDoME4#5e*oyH07?(Xg`J)4|! z?%aFleDlpb&C8GnI(xHgSFKv|ueJW_U^y8vOf+IN5D0`R{^hd*2!sH9L@+~v2Y#^< z_DX_4Z$aXpKPkDU9xS?PDNVw1ad>kI5w{GyCZM~!9sh$fiV`aj9I42S&RPuEc(6ZU^e-w+d!ZenA$#qBx# zr0y?0Duq{W^O!546cZ=?Iu-e(=J>}0dFwy2j*VZp!D-#muS@bG_qmNXGTL~4EB0Cn zG7&H$Pe&kv1NJV)#gX1Zh^xAD=Ft^txA4I!SXaPk33^Lo1D8)HmGW=&o`Oi&X+0V^z_je6NoW|f4?j!vu0U;Ou{6Gl86p zpuyw2bKBnv#vht}M5IBa382?&1oIyfs`$sGa6@B$GQKkGFC%`loJsozw{5_>abG+N z)4vawC+aWPB13fuJ2?iOq>YIXa)r@rKeQOl{i_dDWv*NZ{VxssZNVJFpNsp(Ff~0= zwd|a;Ju$yOL{?0~T|LH%L1oh`{K(KwmHtCmAlTb0#F||W%DpM`6NCQN}HAEb_D&d_nEG9k&olDDZEq3K1#%SP@ z1ZSfg{eI~Y+Jr9NFx)cc7(<1)} z|2rG*R(s3vja(AMaDeb5Qh(plmkd`uzGnjRMY^xxb^wdvyL=;?L&<5U{0CCd40}ew ze!X*^5~Xil3rP6TnAZq_GSF3n1s<^I53N&JE!GEEn-|Ux4G!MezCM}1gkNKQ5C}nI z-{qT=E02FHclnzieAMsjJ;SR|EfB%LC-IIy+?`(ijqDkMb=qdBugM9@rdz zsMF1YF9dTb+>Bk2AlUcZ15Qh#%0TjKf)(cYWsTDOuz;}}@9(8fOn zWWs#<1k7Q;S!uUn6|;rxdtbL0+=Ex#_`K-|^R&J*7U&MbW1Qde;_>u#=l9L**%rcT zG!H61TH`k!5Ts0{+%S^qCUc_$FC26n(xEOhb&Uz@;n5Z!_}GiS>_y8nU4F&~)# zWyWkCv||+W#Jl%iTjgJTNPr7(*fDO74;PBNx;P|L8(Ipib7Q&1k;HX1QRyntKLVY~ z6G^62)5bV@@Pm@C468r%izP5~bLL2FZ@l(ResZfyfdM*L_0L_Jm6dmv^0w}wMvXtH zx=+Q98`1ISf3@gNqdm|#xj0;^hnH)_SPBPu>&BNC87un!<>D9?%wFBvrNcB!(ALH1 zCqyGY>WKQiz>^>^8Ye38t{3(1XQomJ^Ggu@@*uE~{M3wSA-pIlKfpKlo?z>DUoW(v zt8ced8PEr*M#r~j$}NhD{7U64UNUf@w)keYB&PZ&v#LKF*4TQlQ=r^1-_LIDi^gvD zs^{nA17AdSjB9K_lVX=&c*DwK;)wyqbz6Tz4{Oec@ii;$Kn4w=F?aoIE`w>^V5}7VMU4u0&fs6|JNEo}gq;DzKQv-o4_!l6l`%?mVW*F;_*U z-6c2Rzkz(irnf=kyMZ`#1b<`8eE3~%0HHc0kAL^ct;?_GDs1^v%5}NJ+cmCSnsFB- ze}c`0kYav(-JEMS0oMndw;hMZ0!AHx%F=|0W-~j30dFetF{ItR(*5NUpTALd;dt_} z3kj4~7DefszrSBFE)_A9w!KG4Na*Z=BkJXIe5yx*!-v>-aKfk(6E#zItgV2VQ=yP~u*`#{xxry41D$w}*&lXKAWBIsM@0cyvyqB|YvK4tvTjotO>>9U3E0Wp%D{dA- zU@Y=1B{g`2-FzH{(b4KZsH+q4CdJ)5YuRed>HZKBD7gJ*gW=f~c(9zu74ej^x+D0C zc0g(q7ruLpzR{7c6bMv=Eqnoabhj5uei}U-t^xdSBS#@u#GX z8^J-UaDd;UI6goo)A*Dr#3;r9?y2CX7vbE;s|h&uzNj)#!<4b!I*<`<{t`vsVQ%Z` zUt%kT$O=6zq58yuK_j~(_-fq|IzclPz*I)pl!i*$6R!@u#=3YuCAD>J6@yL;c+6{t z54V~|lGF0Q*1oeB--MH9vMV38H9N=+Oy&_f`{_BN()-hv8zS~%+t*nO|30fB5u1i9 z7*mH)c9`QB_Iu>2G5H4goXyM1Zx|v10B%6-SNP)%a=Fh-RqUUR;DlFyKjV;~u1x!{ z<%+wvru8d%aNoD~4k`|K5PaQH@J!j%a@cvxWaIcm9fhX0*o#mK=fiiI- zdFIO-ZED5v8O;OjFJoS!B}g}JZ&FM^TwIkd%y9Q(5gjCWqVKb=)a-S>ze;8MZjE0UTFh9STWy&Ew^#K4_n%K78jV?hj z7V^y<9qZ6(=S%HdkJ0+{t;Ljv3s!wf2OE}i_^XJ|sViePw|n`3X*`EvF~v0sY?;ME&mdJ(YDtb*~vPQj=QReGebYO-Zp_4C}-G&YdhPLCJam7 z!T+a0Ni2ty%VZOu02*X<05|1GRZCWrH;|ANs z{vIf~eQ}iU`t;AfZ`~M*(jWb2Nc)lw3&xxfn7sKh;vysAZ|-UGYezE;N;<2|gkfUc z2M6F|*G7?Yy<5{OM$zK-CDh>%qVA+p_{8GIx1~I{}H*tzLKt(+uj)NF1(_;5T%c_l@sF0? z?+RF_Pgtcm49=C*xTY+}zv78xbcipH%@=2#Irs>;y zIbf4^h{}7>$x;*52SJYaZ#<}8t*i0wek8G)i(xRJ-uiTg;F-*1k1uEsZ{h;yS(oT6 z3^*JOk@0j#7~i^}rbpLt=HUGdH;!GZLfkH|e_N=%RZm;em@*s|-SGO!8GGUdFD9>^ zK}T^V2$T2ao9`+4zi{1PVhysHj`&ZHq55Q1;J!pmY7W2#s9&j^p2&%`+{h%7S=?aZ zt_IMif-78# zBKFpT^c}p_XzU1&NnH+2LpTf~gqpM;04k>EIfr3*po5|p@`vXU#8Knf5I5y7ms{>l zGaYeak1XV!t$|>0EtSX*1hfyIy8HrMqaWlzb^irg@LmDe^MruwJyK(lIK$7l2lw5& zppYs4F1AqS!y5UYpNMbuG~Oei%1=Pxx12~CbE640HVo0E65k}D<4#F=!{KC^0@}q? zu}~4wh>1e`e)&oWj|f$;JrRR1lSL58FCgyc1;uCif9QcpKpY~3#|*qw2xb36zfGWW zH0a{us#t@)&}29X>cVNc$a8+h-}1nc>vGK90@JBgukl5wn&XK^^zSt7spx2%1sN^B3KZAUL7_a!2xvHlZZ)W`5XB{(NzY`ce&g%ZS zKjzsPw!ueA-6#F<|ADJ*Wn?XX%wM<;O3g*>1zs+W;GObC8t+`-+!6l8l4nwxQ;>aHEJ`Gui1-W9N}Th%hY&Odi%bhcJTU1G7uxF@v-? z?x90(M1bePB4oPnz*dZoR)~&nCSu9i zANe)cTZmNJa-`F6@g#+-)&je;n59wn)b+wgQLoHXpDuCI@i^SxpO%cJ$)(R6HQkCN zu6F4RF`KV(n=Z{Tp`4{lVKF-D`C00;%VM_3(*k?go{tpJVD@qskp0`bs{rVj`dHVZZF_iU+E6|0+d=2*TGB(8Hb)D^wod2|L3v3utTdD;&M9L*stIkSA zK(OM!I}WC#Vg%l>yU}Z2?Y=TmIM;D_aHxrdL^e}KemF|;mY)6cWNVNf0ihcEnpUw; zp?s|~Ed>Ak?5d`EyqHs$!>I4>xCN%a-Zl61bX)koG6RMMCC)I9OMoWrC@JYy6&)1fEOBQ8jZv6e* zBbjjK@D2%U+I#k(xK?Xn0nPbEAkK?tIVyfVtZkd0n{8V7JvqDVZ86&9aiHrn2`Ik% zU`htBZDvi2kC3Nlw)5cyWs1|`o_t^gplfSig zbE9KlY>n6bo{jae31z2bJYq8{y2JTNPh*o~X9%!!9YHbo8Jn+!@X&CjAa_pz0RebB ztt%@lmKi8|I)A*-Fo1bktu=Y1yrwI-pR*8b+8Q*lUYtAcXAGaKnMD59LhLnlJ|C(8@)vSNVD8r8-S3&3<0hsQcRD0p(|8`P%$CAurQGPY9IlPQmOaT zO50SEI~?Og(e~PwGw?qKe`E`EQ?}$%WGv4@@fZ%TyPW*oL#>936msD_>$#jrF=bu% z-9YzC@5du(U$war85_J@>`qV5IWo4&A9>-HV#9j-$8Y}IUT5M7ZT{6RF`M$e27ssz znC&;hKKTPvoOZq4{Nb?e{dCsPiG*3si?l>qVZ^r^kVLC>E(ky-KkSKY%3#xunr?zrHvoYA06n zyc@-SPtVyIxrqMUJdwz4OYy^V`kob~ZhrR@cv$@T;m>*%Jr@RCcWN6SHE9lU88hw*k>fxA z8-O@84F0v7f>4jc^Ha8JI&yM&ln^RqQxh+sBKwWI{>59$pMrscf%{?()VIo1@c7N9 zx?G2QMAjFD;n(BJ_Z!`u{27Ii@b&G{`adFxQ z_ULdZ`b&++?d%V>0FyIg0QI}q@!sjj1;Y>5C`yjxpb=9-g>b<@rx>E+?p0+FRQR@s z_uel^1*c%7|7Sn)nYBo^-Y|ApNw*K_&VFCcbUk7Ga#KC~-ATGN2hCc5_3`jJic;bN zanB6YhdF~IFP{|bR_OsZ2ZZ=z&SvKOqFh7Lar;C_npC{IxqEbss z%ONmdo#WXCZFi(ky^*B6KuiDVtlLJT+Z;pZauf7AL07cag46nR?dtK)4E;Y*g2+@x zKJNXrF5nqX0AOL@^7%*BSLWUPA4uL0{xdBEVZyX3&E8gbC_(cLW|duhl9n%YLjQ$N_$&f z-MV^kB8vB$FbxqXx!arQs~_UU!Qp>L16d}2G<7ZozF#!i*b8HUV2Z>=6q7Q)e7J!l zX178%Dg2ym>}~>-fd>$dMHjewE98Mf;#ZyK2CFzj#2=4Esy2_i`H{_!S4G8|P)w33 zr=1a0TGfc#-TdtN8q!&X9K}&*EUd%(ON-@F-JqvOk8n~F_q71s?uca!Qg=oU70s3Z z1V6FbG*QncZaQ0$PiJO(Q?t zetP=&bAUmAQlhV!2I3I@imn}WHO_kyv_(;Z2(FAiDh{QL@X|$WPu7B_WcqXtlSs8N zvR%!#wAMqjrFcMP76S6q=p$~l6mUNPC2!o>zMc{T8!gS$*eoLzYlr}l#_$%|&Q2Gb zaHQIDHlBmSCXNweGQ;#}I9silF93vSX9fnV)KmfM#k;FG+V8a_#wIop$E$ zjoihtdZmw#c!_@207e}m=Bvwwdfe-GHj^=ZozD_kq*a+X+WTM7*a@o%hSDpg>OCN^ zw~#SqHWgWPzoPVhIH;Uyc_JSFC2WBlG?boB+wyeRiv@LeW!s&xYmNPwzS+OMjTp#e z@jA*otZZ!dxqJ`GuSG~*Mpyxx?nDLp-(JfCIokP-C%YXpMl~9hYJ*oq*2<1hWH87_ zXG6!4%p;>gzA1vD+(k&<)q$?H$@EBTXdP#Hi!Q=s>xFfiQTMfF3PPsDutMH`eqBPx zD6m0}lTU8sl79bL&qsnpuFoL7NrfwUL#GBS4z8B<y4|+SPn}ZjW(~FJ%G)C6XNk9P~6>o5B5PC4GTld z@kq;h{(QVCgxx&0ROPUJwL?1yYtV$#_oLTcDk}Ou_>ERyzs2~s7eTd_<<?9~^zIj(>aeMZVnufF0&oUNiC({P`0hD28BWScahgPRMyrW)$j2VMT?PGu%kB2_VT0wKO`wFUhlQp zXJaufs?%7oc(i$Vc(BJ~GE-K@Zn0*dzlV$%rc*bv)J9%=I6QN{&|v2d^AHlF2SokO5Ddc}c4eoS=Yrf^(WC>%9M&ie{$G-Aw1vOVInv(6?@G7n6) zy_KAKCwo?6b|2l%ow+wd){hAbk*o5rTEY-c3Vai6$Otxu@O{^ePOK46?knE(StfQp z5-P;(v9i?s7Z>2xjm}rhjb^%6K@iIEps&^?H)0F^uC%GrY)tYerW!dDuqHT{_Ku8& zYOB#KN^){pYe<#Zcq9XZMkIKJ=0;y`Zr@}qT%dIITjUyb%j4B?oqHg;aXhtiltJzO-aa4Ld$0Nl* z0}b7ZwR;!x{f7i+!u1o0t&5?V0_xcFyh#s`#Wy#?jPm^loh9e~GdoApbbKdt7oa{a z=Y|xw{h(uMxywl+(rZxaCwiFXXu!0eH_{*cvfA}T7Aya1*lOuIs|C566aFGOL|Ugb zbuM?=M`y*05h;GNhq#ArC?|Juepxu7!QCsVX--u8#Co8~^!xpZ&r{fM$q6SN%U?wc zcYixOH`Tl55Te9pD*(`I2HTsQ)xiTYEx@TXxZc>-oXKa|Dao%vWle>piJQA+KQGzc8Q~6)VbXvCfsOxh;*LC{Re4Fw813g5=C^&+z^v z?4A>Mn_k|RL>kCeuzL0MDQ-xTKB+F!{qU@MS}+?-pFOlc!@aU1HQ!d{1_=^IqF)IV zEg1W#7~U3YdMdNj^xsstSox7lh8-Ktf2K>!?s?X61({nN61Dhq92;y4{o#(2O%;2~J~S=-s5F_RQ9hQ1 zOh#k_S%k=PLvGWq8Q>exyTa6+H$#e`9)qeng-VrMTVU@xr`xlP>5|PlZAf-(%0*Sx zu~>v7P%9ydef%JWuvjqvN8Mba@0WB+m4&Z@qJlj%X<3j`=!fM1+hgL6K^i{E7A&db z3XT2t&ax|^h}8+2LjW;xmn1PcA)*Wsns1xUh>gi;k}3I4Os^d`d~Nt~`8ef(J+`Qg zK+OJd2EEju*nZre1pNRrosPnDUf$8yzEs$$A0TCG+#dN;brlx(;d|Cz1NZi&INP~`H=fjNS zd7V#})4Hpx%(d2luW*5IT)`Tg57}%p!@~!!C?yX_Np-DfS?Jl>yANfr-t)6Nbw^YB zie}dXWeE@OTgr!lr1H?$^$84VFzZG@eLAL!^INWU91RUWGL{bh`c>a_MO2Vu8AroS z_AbDQrTfAlYgFvVJNXL3UcP>{dpyES>b`u*gos35&Zncr+iX!UR>z%5T&krcCcU{D zD_Mq!tFx;o%iS@>`zx=Jy3^Fv4&IAni2YJyQFkQlVNx~D)AK{IW&#cvrrhE^zU0Np z&h0jp&cFFvWzgzAhTknV^+6f-qiq z8E}i~{PB99-Dc^Rj}Pzto1+vaIdMHLRdTw3q&)C=^7*Uwi^OH@D@7o;89|FYxsk`C3@QXmo}G|A@`IZB zhR{n1p`7*T|Ixvfr8_ATVu3d_Tg%G6pDuKG$~@Z50Lotn$1N>#rRjDalmXlX26z#)GMP9UrduE~&X^0cTK{!ZB$+(KGY-sy#JP^^Q5R1c}Bi z;bj(zIH*GKC|6Qeja*ikVC`d)WDe8dra*ng0lVOqkiO}^4{WBlx zm%-hxSXLxX;J>b zN^v}@$y|&^LtCZ%{*FjJ=bC>KKIVhR4-#=+3j+yeyF`+4PgxZ(gjC$~5bP{%7ZiXN zWxaoX-bsr7@yo@_tesx4Fusr)0Z`m zUuSx%-Ek~37wN?z(Wa-fJwgo=^K-(h()Jm+Dw;8n9`@<(91|6lS-%^o51F_F*GGcMRE5EsZTCk7AF@ElUx5E=L z`>0*D%03ZXs|h3G84uDle=>SCC#BxOneR##b~$CyHoE;0$perVF4c0TvAB+UKu@^5 zHxC{A9pB~qgho-+ajNG=_o)=!@!-=eFwD%0m#@X2$F|3_dtF}U2Uee;`xBD;xb`lf zOhY8eo9^S?m!p?c;?I5V_{^TM$j;B;UjFtzaS#h6zIH|Mhlx_`Zuf%ET?or{4{6;y z&b$+ce|xYL@*y_yzBO{R%R?n)A0KyEK2!X?!SiZaRS>y3G#eQOdTED%c z@zf}IscJeC9Q%368R2FPh5ex-;lM0Nqm#FCmn&-rnj`{oi9SM5vguK!awI8zV<^PB zxUJnac3+hL$FmVU4eN1B@WG)_+0ypc02*d9*SNLA*%JAwoKK$`Pf=w`ZueR}a=+Xp ztkRm!Re}~dI61nGe5sl0%Z1eHw-dbaL`GGt@AQP+q|Ot|JuWaJN{pmY@@oj8VA;(n zbu!9bffnzH0&O>`xS;{-hZBL-?l01!ab0Qse^7xAIx371>hR(7vv9XI>H(J$`7)kq z$v_;BL}_<{%g@F^kkc}ICQ}}wSdDwNYhLFT5=;;JaL@^5_O%jNs;(VayAcJbUp!t? z%-BPgCbxu7jXh`O7*D%NcgCNdd);~*>58JG*tvM_gMpm~-5y&lVwqVUjL2-n-<1Gf z+oECDJjvNfT9Ha(`ea>6o`9NO4q-Z-ea`w9WA?gb3B*mxcnc4EyQe@jui~9ZLW2)ree@ zxP6coZ`S?U9k?#8y-7>dZz0*+RdyQo7(ld_0D@-)oTu(A;nLyN`G;C`Wb zkmg8W`@fb>u5RXj&+?FDI@5lK0S&mm>C6r$o=7B?l3+jL3T7>UCg_LO&B;;&@ z_U(snGhaY0WO$6yV+coDd2{`2`!SmZDfx-l46P%%Hyj=nD!wD1OeYGIKL@eW%3ars zN;`5bUl=Y~X-O~@vX}qlYLLq#F0Y+|M&;axX) z-{AkHVgdJ8Y!^w=UCL1Xog(Zl`^W4pR^B>7(bKVk`Yr;oBuCKKY0s<@lh}{DBD*wN zyx&B#Q($Li(dE;EELHl`zU_*C>1yT+f72(<(m`$h|WlaDp)SF(&h>!qQegAhEu;)%9z)_xpGn6oAY zKeK$9oQ5eL6Tg;~wJv0vSOn>E`i{@T{hxe2wL!mkGs^pcMUsl? z9|vTeY^nKrj4sq$?s)oz>J=z+)sG!I;JpwdaF;^7IoFR*{k8G*ls-&+rpsdb$_jZr zlcI!j6iZXaa!6J<_&y~U_0N=H(rY#%mKVmxQl7crZ~{wgTehXGhWbOuGL^CnKMI#VGLIt-6INt9AdXyQIlFFlAYwE$Pv}%wz&24~TkmgYC zuyX0w$lERVmi1N4K2W0G!PmcIF61tyLiUjQrTX7d9vYHLjk4u(`MsdX@c0COWL%`G*S`I%6jSkNv3$;0)cbBm^x<*2!FLRRC4vrmRe3@6(+ z{7>0-dh;T$DkvnO4f?Y6xSz#&(h@C-uzQQhlx=}8EtmYTVn0-mNcdBS7oh?mrHTpN zT!sjSHyUl(LF!vA7@WnmPm)L7C)B~ZU2v{St^J<nSR9&hN3Gr=&k+uZ{{YQeFaC zJ0C}lBO#KlC4XqpOQ*CO>Z^xL&HY1gK-Px5@YB5eSiJg$laZw`AI*p!VTSd1?m&*m z^FjbpTvB<7s+3+Q8uKIJV}6&t^_IIRKxDm1|Ia-6&*q85m;xc*@A?1Cln=0sq?rcq zcS7)EodYj32wa!Zt0i0r8m>O_;+v1XkD@5Lb$eq$bxJMn5>u~|&EU%U;eoKj>*S2` z45P5O%2iYKS9&r3Qn-`LcM}~rt2#5lmd~3BIBFWm<8>6v%LmuP_-M!6*huortyw(0 z-?9g9AU+cH&z1{sf0M(kjK)te|2uw0w>Xjivn!O6 z`IYlJ8?xB_yW7KFX%;tmYWGW}LP>KL`RNKUV2}rCU&0IybMh^#%w!wFekCIJ zVxO3`_b7vUQBxORoUH24VFDM;@ufY+9?!!N{<~E57ivZ~0%R6GYBjI=e@lRyWqwa5 zU?hs=&b@!|r%6lDV6g*V&KX^J9vI&Z|1$SFcvDv0(VuXHn|LSI)fl%5XrKxQz*^dM zA$D%>`mSjLN9_ELi|&3P*^KGwSX2n*=WJ#E>-7@H_){`|5qUK$6#~8gLE3oqByo3* zd?Ewsk_}f_&q*NCw6(Pn-j}xZqeLbBgdl#Pn`g}fQ!rfrJS98F^_IHk+A0bH{ZGsd z5#gz4sdZN7gR?it4ymGD2V^h5Pn@jZ$r~e&u8~@&ZanB5yfMv)G+{J+6_IW#yaW#Z_bhG~t(u_09nayf|khlf(eaBa0d!S0w$MR@eKP&eM!{Y7Ztl zE@vyDB*II!+gJbjam(7cD4Px-X^;o}-p`S)(Pn@3p8@MS zwdtK($tZBAa@_ds1~D2dxeGu-4$BnW-M-~t6tmu<(VDZMj-?_sJR=GI7)9`TL-Vv8UOQ;pWz=x1$kym7 zBihDEZ|x5y2rjw5>&VYZ(KCDzA?DX;01*`Z9l8iAlQY3Uu%BV}@XxuIZ$;##4C{+< zWGk|sJ7e!47}!f2+#2ylfZfC6%Cdy3(ZPMeO9L3LVUOEBfjvL*y&bkp-fr*yj=TM= z_xc%12Xwm2eC!rK=hMpA>utQ^n2LW)WR zN_!WUSk+G8lKCRo$;En_-NNH^;v?fEVrN3!e7Y()KqX&h9gi~8>wdIr&o@n*Rs{8C zE2SFvtaE*Yi%0qPJSg8}+hytY>}b)|z-17Fx_*4)$jwoBERu=hl`q;KO-@$_-o zZ|clAb|GAwggd`-zc;k;PzjuxS5hvO5s8p5w+qHUw=AUAd_ ztx2>8+z$t7gP*+b!1W0MF%1RpKmP=H0X(Rv^SG~Sx;w3&PP<22lUP?hu2Kii1^Z7N zUv_`i4+?e^{_#-R0Gi;!=}fR=g&P~QD~Vi_?9uYw@o^j%6dO7@H(uP<^g%$;&b_xE ze(6hg_*T*Pi;Nx&4DurdJ$zHE)^>??fgX^mmE(63bT_=|x%h2u;a`Ma!r+Q$BIqJf z2lu&i?@DwbZ=Q+ovCQq~*&yK!x81c9)cR3+q}%mQ@BUSs2Fscx+50_bNZ%!kI289BQ%Al4q23B1xj;V&0oIsaoOi+8?USkm+n8?Tqfo^*{`cZ z7Tg}n_$bk8QHnX4U^%uS3~bp!CD<<@AZN9sg;uqssMv}YoFTw!Qld~eF{eL=S{hD* zeR&LvgL-riSmoyAm{X<4)6K4KbIuHvD2Ed_aoPwpI&7a3=z4Zf)%?3)$z@t+;46`f zg{rPlW2tJgU4ww^&2KSfE`n;hcxP~^gWxp|6kP3`oSdDUu1;)8m@*B5Uv>Hx6!@H5 zUQZP#W@h5Z4iDAT6w@g0G3)=m#wOz%Fv%7f_={{GQ1kqLzx{+GmQK9NHV}hkYC}cu=P*x*-s}I-B7*(=% z;|B8JjnEa$9`(9)$6cI%cnF?28c3pbe2U^_j%DZ_C~uJXt-KL8ms;0)h2VL!d~hxX zzIcB?m_T8wl@NLVGckvkW(zEkEYwGl7yhn5I9`X8FIcl9jPdYrhAV*vAB2_q{tU~y zv#uUl)+OF1>salI^hKR(+Q~e~gi|gTKA&N{i3+G5qd`2g^Ph#VV?$I={TVjt}QyDCoS34OREKk}z83-+xE56O!3(ZJ!>( zDa5V{GCw&rV(hf+8z>^Cd8Ye?`W>{r{FsbqDm<{V8WB+S2l?a!5jKs|4#`WdlZ zFQ^YMc5O8^QxJVRO%z&Sl3>l1ud6vaE)*(GpIKh)@~y|%{|R{F zG0k9k8z5fZ0NPN+RwZ~9!{riZunlUcHRx2a7PC9x%Otsh`>p!UklMg_C$FjbR*91# zYciXkilOX~Q{bW0`i0%sd%k3{H$qBu>_yCXi+mD!x#x!p$?Si7e{PlH_=F(`r#7|c zqQqMxeo=*sbrh2yF*RKZ;?x*xCPJmMbAp@kK+FuFWqrN7=ji;7JJ6r1P(By*$SEg# z%z5TP*{Nu{)MyQ;BQiEwIzNf`?pSfIqznA+E={KEsXi$W+fv=>$kn0Gv%P4)8*lPJ z7m>d@;(rlKEpOQsrab4KnnoHE119Bj)q#0K%*LQ#&k^og=lknpz)qHPdL`!=f&TyT zj;U@-b8Tp-qJn~ihK758eCftix!1i+q0-)3XJ|Nhxx1??&(2^OU?!SVyo}0dHj0Ul ze>$wSNMSG9-`M!N@-3EbH!lrhzT`PWVsle#v&==V2Q4Z(A7@Wif4MBo5I`;Qn$QZEQw;b;{p)d(h(N zj^;=y@@aNvCX9^V=XC9mCT^~`_m_U>Skg5TQq2M&W|7vr!sXQay zfu>-wif+@L$^DfXaT(MH&KnQ+@Y}(y$mnMJz$5y|z zt$|x=NVsu4{ppv!k8~=R0pfZLbPg}8R!7YaNzRujv@p6$$x0`X)T+~bj#m|xYga@q z?t~P`;1+^c^PSXb3Uz{!7^73OG+!(<6PG^-y<*j1d&eGL-%@t|mW&eQ{zPSf8gXSX;PGO= zW!3%62M`^-ZnMW~dvSU?B^K$O0J+}%A9Z1tW3P2gA2G3eAjH*L^Sd9;WyH}Ycx}cd z`vwJ(j8vKwSz2gyh254u&6qsk#v$=+9UY;47U|qoB@z=A-M`+-w{hp-;An1Eo~v?u zadTM9>ZTKwnW-cU#Xn#Y?9lZF)f%d8GT98|As-rVl$0zjj<=V(Kjg zJ^f=}+`M2C%TYM-Bz!#meB3P#;CEpU-PnYz#&D6_ExyKsd+>UCCKnW70RgYyDwsSj z3|VFF7MTXpDN}H3Yh(k73#)v7~-MmD`!oFf$-)24O zixpKcuO@M0jt5QVla*$%@yd2i?syd(#Ak371VB5hEXV<##{{I=!sd{(kfCujxzH>5YDgr^*Wi^(8@lJ!aWI0+Yo zMh(mpQOPc!jzY;;8__tlg~pCYM7~9{`Pj7*wvzsGhnuSI>lZ^>i#sN|?L0 z4yTf=cZp&8#;uvhb$Vap8G%~4zR+UBq#rtgwY!^>DuCebn>uwC5*U}) zP9F$HawW&R!o4C%p$F^Z-P5&w0N(BGja>4EYA-f0;;GnRI{q;pl<@PTS1nzFSTA75 ze4v+>kg&729|0!x6?Gaj8aGXB76mr`FriHi5Ldn+>9#1G|?ha$DoGQ!Qw?pZ72C6WIRE&$S2=>&hr zR#9Ymt-+bCudd7a{!y5FBdub~Yr$*h+3iTtM(M@m_mDLW!>cI>I4p+3?mCH$b2}Z{ zFw%f}4-+E=`=-P620Q=|_UWDUUZweK!FFM1(kxMYZ(Y%RkfkM;2Y#j^NKf+Av3n_k z6msT`gN5}5BD;AuK-iJRSixqP33LCx-#Z+~CN(B&?S5s+Zam<_&$mFv=Q@+q8(O3y zjri(SwDTcP3H?Z+BCb{A$r;V%UQzR0_|=s&ud@`u8yv#Iy6TS9E!3(X2qW?*peIhz zqzzmu2apsN(b!~12cVmm2eW(U!^=}(wUOrf2A*2$MO)aD&E7NeU;JOrY_ea~We0TEz_5i223NZLucjLX$^c`Mv&+EJVZmEj%H$ zMj;Y7mWO=vFp=fjb{=VYHM}AzNFX)8HqaL?_q}@gEpKI}ynn7+9L(bg2iQjv!6^#) z=bwejMJnk=bk4xB2o`b3u<6wSJ7Wvq%Ej(J0AelXs%pxi+2dt;(vTJczs$^)({%#p z9VX-BB}G6!!rvRs4oUz{sdHcr${gGBaIBQ#*RG?`kL|kf&^Vsy7g-Jkj$O|3TY$#sOPLQZ z3=SfG&`I5T>KEfGk*H_EZx%3DDJ1D;9PMT3IvZ2a{cBF)@^Ok%1fTD_HFg$odc z9~&?F8+-WO+Z|2QqhQZ_R#`bflo4;f)OB)1|Wl z6KFs9VvPS`zxT^~^1_`r|ERG^dc<VX+nr0r(<>?W>c^Bs$;_Xj?5n4O=tFi=I1|@ zD7slpN@1r%$zp%vm{XeI-CR08dzUDy* zC$0|Ju{D0NCoo+QjJ2JTJ^&4uMEy|xf#a1JL7x)E)oTxeXvd77MR49^Kv@@rH3Xa> z4VLm5mie#F&^l}udR|xXy9;w=I4w|G5a;LM3vu}cPLu>ZJMr-zp}-}&N>0h~s=M5z zc!^8%P|2EtIHJN$g=AwiW1Ov!g1Qx~5W;UEz6bLI4^MS$GCw*%2$lTHkzh#2Koalv zQvLM+>vpOK^5KKsCf8I;aLPwlJ0l~%vsZ5(Ux47dvyup~tpENRgrNyq=yonmf>!pz zQ%Qb2zMhs@^%29l@SId$V#98sL-Ng|ms1JLQA-W)n1_xS{B6p$@&c6_HsTcq*Oh^574`Og3jJ?4KK1H%R^FtD7@0n*0Iwh;pG2d?Ja=ndcJ($0|W^!0fJkA;O;KL zLvVrzcL?qh!5uhN>V3qPVe5kyH~IES>M&C zmBQ6l2y)+oh!;nPlr$5z#t+%Xf_|cgtXQlyOWNub%L$cQx5ufMv%j>r%p&Zl_fl2o z;UnS`g!3J7Id-CI84|D6SD-0>9P}wRSHsuU4tkouZF?_*_DMuQSX}&P+Yk5XEY=tP z21n{rp`t4vlWt%jw_($lKRA@5VxWdm5fZYCXI7*mwK{5TH&R80#cWWHh|6lk%rR*D zM!lF@`bF%BOOo4{x5{jZAa7|Q;D%&it%y!0_z^Ixkc5vzVxth+5?%u>Z?ImR%95dR zNQHqmHzeW`WE3eNu2;U61nhQSRZ!pYpxXXcK7*{>>p@mlzP7AG+A;-9o`SzxvD@l6 zVGnhS47VABZmjZd4sXvxGod`~V_kqL4J^>8wrY3IWq9-cP9Yn-Ww# zinivG$KhfkWTXi@>xsX=aJ^ZwYj!Z<&&ODeN|>#*&k1T|Ej3}nt@a2uZPS{#4nv9#j+C6dz<)_h z=>o6UmNaQ0D(1_Ktzx_u&ttaV6Bb~ZBPK;YSc?J6{co$QeP9fx(#(;XZjk0+SBzc> zBIbMM1z|z{8VTp;CC$+f$rX4`;6ZK!3^%(ia1zUiHYg!w>zO{3SygOOLTF5_eSTXe zqS-|Q!lnia@i3`NW}}ySA@-l4eD@tyeyEzHX{kS5L97DP+PSH^Fwz3=_s4S4E^hEnc_Z%~1Of%uWUFY}*@G)0s8J+E+% zk4~7%OE*TSJTC{D`Cy?A575DUxi%+5blCmKVApVR@uq3t?~hIFG=mBaR9hv?Z8*Fy z$>s`=N7E#dao1JK_S1_wSW+%5Hm?(Tp{7|Bytq+w^f^Z{Z?z5n!?LTgcTPvCu47Z_ zg9`a8vryksV0=rd)?+zcD+y@(M%s~;1^934{({@0HoDiy53e^^snx5xN`g;ZU@j~;PUfUnDtkj;1H&uthajjnp zxh}mTiuOJ`zFW3)z4eLh&{tKv5eiwIgY!@$f8aM#+vb10j@xegNoOkVFf+i?@z<1} zVApalCCnPytB^W6e6qtNl&rp<@1zJb2CS+0kTQptQ^TUu>8>uN>4h2JPTJf3ko0Ho z9D2fuEbj$WP`_YcD2id^KE{v489}53HE;NGaM7T_0LP3%3V4*0!)p6^eEWT2Y5t0-@rWmd=)$Y z5@-yK7a|B_&CJht`oC`>;rZ?Z14pvo{Cm5scp@Tfuw+sX!*lK*w}ys&u2&;AHn4YD z2NMGjL`QPom(Ss1zvfnTQ2h1O-mz@Ca#6R{9aiN1kn_jr_xoR=W+S-xe9qpnla6*T zLGjv2u@+AQzfOc!3&wUK)y0AtXe-sLrusuFfRlJ+v2cJ&JhnbPT=&HiTolDROH>@f zz{yQ}mWZ>~IqjW*vN&Z;&5~00DW8|%sTvjZ_4N%W%X-}%lpOo-e^@}hWy1&0Zk$v}$k~Vht_Cm{Y z`tWe^E*lAV3_rcVT|JdZLi?dB#3!EfVB9}XYY~icRFKnb{R8>^Wz+%}J+ zW`&Qhb<{3ms6}-00EoxP=6UhBkQADjZ!D z5rBzdfeZzu{DRDED5(_cN1Xc194hYjw7@_qNJ7G_fzZurhpErCeyOX+bO{Bd<#t#7 zD|%t<;ls5 zP>62fAbflT9v)iY4|q{tc1uh^KnG#fC?kDwFk|<5EDJ3;Ndihrx*h|cce#sFoE&d| z^BoJ1T>yR1&OPt}%O9qr`W+M-!wD{95v&6jhy zZf<@MXqa3^od&$NrRJU&WO-?6AG4Lb9xjFs7oRMRIVP68J0r<#JG+uqO66l|V}JYz zBA{kv_6(6gnoWI{H^Q9ZvIVCdJ{fpV6n8byX`XxJ2CJUxTFrmw+LkMBTIQotqt@u3mox|yKAd-1RyVZ7F# zEZD48nWBm6cF-8G`K#aw>SNvKRj?~Nng5;vn_-y#^|2rX6O&OzbcpndZQJ8)rvJC*LO$rs)xh9b(Nks zA0RmNt}SV#w1VEMii+meg~>miEjRk6Yi+!Io*u{Z^Ak`}oz2a)l$5+fLp=$Et@d9I zwtL+=);VlVH@dil*y#_aWI~2g-eb3(rtnr@p6^r#p!vKc<-IjCF}eIfLk0uq2(z*` zfBFsWF)`NZYCVDr+I1`0l#Q*{*u;i_vnWC--}7uRc2Z5+>%+&HmG*W4cr?*5Z8v1%?ZZ%g9ro`?50xj=CSTZFBgF-_~#sXH4mRUHQ z&SL2Zx;~!$hTp?R%>Masusaz#S?B{>W1AroAmqHi*5XC2m~1gE-;V=jwnZnn0w+u0eX zk&MuVFgx$3Y1P_~joAp7!8(Sr_~ zp3Po&P~}`}ZC}{jXA5|3#w_$Q9tlA4M5?U(F)=t!! zV3(dW<`*#n#Xb;WoS?A;GTEp$*$VRprZ@ET*Aw}+rP{M~23>{U;GCG~=$=md^*Wh4e`#y~f|mL)OiNdol;eJ3 z(Jh3wxCb-df7CDY22-e&b1jHxH$A3@0BkKEp$RXO3;FAwmUDpKXLF*0YA z6euU9-004dCJ81XU}`%47#p{@+)C%Wzu!bD%bBlI(An9)HW1W+QMx#m;TO~DBMI4? zekxhVies2JuocR1If~;KNF0vGXz;j_Tr-Vug>K48OC!b%%1TSS{)RSHs8Z109u3wR z^zoVH`s%9E)-Ow?w?ANEyVj=ooc9eJ9r+;_BSGK3EgD9^LdOeua1;{Yb1FiiIAHC+dQp9KfYfSfF%Z?35W7%$CBF1w|VYEz5VmYERkCfA4Zo+W%P8xi;0 zR#dD5M}FSj`i|{wkpRzR7c?T4=LvXnVLjVWop>F_228OW)xl(8^L4KKy==aUe9FBv zFyc>-I^Nf-$-qlFTw?INm>g!0tF)fiTkHJleDFx2Yq3$kMU34u%?>&&v!9X5wq@yY z7uD?k9_Ma&FGq`u1R^c1-rUsPP%m&Z{=p9NLq;|1gXjH;H=^HZXOJv0@rR53n~Ypj zGaH*PAt9NYk*Rscvg+jlD-T!GZm#?rt0yXQ126McDm-r-o6m2B4dn|n*9{*ZnR0VY zHMIKmJgkcveCxV~Qd|9Z{n;EBP8&Sdf*zruyn&nF(t>q+kvLU6j}*uBBw(fxVY5g) z_9#wNTcFEnzR0O5?7QqREP(iFqwm1R=0o3x*ur9}cC8JX@73~CX{I68#rXJ`4e-2q z`Gi^wdqf~1IL&WkWq?H`;;q7r<99oywx0X$w09}0p>ebFTj1_uuV@`#Wb1kR3uOe` zoYRtkW9RcWCyxH2Jhx|PC`UG~2GWV@kRVs^h^|v@(F39oD9`KFe*60UhpQ)~PxCdc zHP&}~kFb3k74peVLbux+wynuJ2Xx+7i(2F05YzqrG=;bA9p9F{uIhQ!1^M}1FZXkS z|9*Okcz1bF<#q-Qxw(1Q`lRdhrZ5-;WT3LpG*j{_R_eQQt`a1ac#(_I=3TWIa|rGS z-TKoD;3JqAFBa!1AQLaJaXQ~*MyQ3!xa-^6@;RCv2|e9cS*nv?Zy!fxu_7S)SJX-lyBOS~*EcDbNo_&CfB zloiuIJ3GG?T=3}$f69k%7cW$A1-?ajhUh48ap$US-zRZHa~#+%d!B9H-(byG+1&xZ zZD{CnJXfgR>kfXGMg%~YtKav5#rm_6fdoUL2S@k8?3cpHoSI;|Ri2qaUcS^bPq3Uc z+x2vOJ&8(zAcBO;_@eC7@2~hsl>o5}jE`n+b;rlq{t`B|0Q6=VR*|8^P~FI0*$kZT|KK zTpehQ7RCW&Ws=3HEyd^as2M?gFjbnWKL3&ur(c}wmu@&JmW~Stz@Ztuto1ygsio&M z00?&p64L2}#ZBbVzas0vl4leEc9W-XhY%WwFIn7T^Zeo&{QNuj_zygV`{l1de4Jru z3UZ3)S&R~5`UOLAeMRHbGw7N7@9EDopXpsV-tWghp?_vZXJis2DP9^B&jI;_myz9(K@RS@FHz=L4rt>Mb5-V&E%&Sn9(W=T z4@E;SM9`4P$YVMTQ+r<{d?j64Imx@6vy>EiU>EklyL_fm3CyuFl->l2)MU)aJHG#P zhS1EP*gqZr+1Tj>4$?{f4h;R$fF*TCd|~aMZefRtjxqVm!~>BtUtB`CXV}1>j03b3 zC0|gL`0I>uHVYGP;UQTVjW(yndUe?dJiYBNRc{D%c;}CNa4_&9XajPyy<%1Y*ILZH zx;8L>PaCDbvxhZ{8Lka(S$5itfru|4P%f(8pA5i74f1bQW}3J21eN&WDs-CiZ`pP% znOPwi8i_@=98XyBbcU;0o19@lG?poWWNs)UvBlh)Mt*E8y>G$4L>yH7~Y`jR)r z!!`-@MJ{D_3&t50BWelUUIMW!DiruNc{A80SyAq@N^!uY^K8KTLUF}D6d$vDkdG0; zphsb>n${58m4yaYJ-?CJo0$t0^(RIY6}Uted-Co7(gMJI+Ge2#jbp%|D;j=^`^I9p z1$dePgxuoozB=7CI>WZ`P% zY}3R60`S9#f+}JwIeJ1Z>~DsU0*+YPp%K+I2}%SJ0P_-F))2ojC^SHR<6rVT`ih1C zf);2zPfzjh>6Rkmo8O9qe}g%m$MU(o=YbpkYantUR9-j$DcwD(rI+btWh?I!H@R$y z?YHEYy2H*oI=&H<;9t05GYmf*caSW5-|a0m1DVDhzONikk;2YtV`@^7*3jr z5h}*(le@qtGbVsyS@F`-zd>HTdPTzhS;EUyMTH-Ni`(=2n+JZ8iFmb&Vmbnf*VRT` z9I=3VOI=-6Q`6f0jU^JU1RR|FAc(}b=QI#GX-xL>dq|4Qkzo{wy1E&Mha>uiBS3KA z=lVfzfb}G$x0lDiII-Shyqkfv4Xy2P@nn}TGcy7j0fp#Ij5JhMj?K_;1R@HNS)NSv zA-x-FXN9qr^FB8MDLp;6p!a09EP+~)>m=Y2msY!4wqC~nx+r~VUQ;(Kvapkpsi~o@ zttI$lYO1{P%*>q17Z$#jl_6-&uQD={f#9G3*x9Roqu*cAs|0Ic9-1g7|oF&xvo_OP*o)5Vshg3(s;h#za#BFB`57aJn&6zdfBMhJ>kYRP*(?e#Mt?SVjTq~ z<0az6n5}|anD{z4VRLgg1B27Yhg@Z4HX_3Pv9X%0tozq^H=MpR zGguH-*26$OAKd={?DF0JXmY~(f>FLb-|_Y7-g(+7B7W?j-tEYWLaSlXV*58DLiK~6DfHPl$`&?0<2>?sYWoGcEzY%u2mE9q84<4>&228jgC`<{9Q^n^;<^0pT$S zXiw<&XUe~E+Js8WHaeYeyFoev?kqi&Q3fkhb6wYmX8Cj@T(M2DahK?S^uFms+&EyX zJ!sy?&JJGqtL^lsyfp%rwA$d#(y_{OeB|MJvOKGydemm6%?8*sBBI1lLcB7tHRR=8 z+pT}?e9i8>Pbz|L!Ea?*1W9}~#zYAd`8$6LMml@a^S;V_oocDhiw{>ASQ1H+hdhmy z%Yy|#h^-c`4>R5gB?%^KMb6C#M!Ag3aSSJz~ut z2jNsaFKVn8C#MTQ4q~E3ca3#&W8<`sNZPBMAV{3ma;o5{B?KS_K(kD=sxK!~$8oX2%`(5S$?xc(sF~sTM*yIyVJ{h-Gg+ z&%eF(!1#b*6CXrQ>)r9-KRw|(;xM&pt$t5GV}DFuwCZ@YE@^3`->2{a7&8(L6UupL*7+rvms*azmkREUA$^9ao3#EOKCD-(! zazo=?<6etW$)b*kZ=AZrN%uy-j|(6NUOp1t$?H8#P|q2Vt9A9B=-nv^J_bof-;;It zqZvEq|Ag&C0y=8C|1oy7G=+KP$N_E0(q2`3e0&fDG&HsRHTI{$lm~WS;NB_cwlv!t zuLon7qT)|97Zu(2Gx^L`Qj6TR>-;I)H+4cfp~sedN~tZKt?iY2Nehla=|Hh^E#$B6km?Uwh!Lf6{!^`enf=b%8e5+vz1vzP zR~$|_*8J%BtsHZkxrx5*&|cy!sGS2?T7f|FDkU7|181qxU~uUztFCL z;Q(6_8p_w`OjHl1@ZOZoTDkJNexV2Kt^x~^tx}$5!#RWng6AhmyaPwdc$jr7>ks^6 z+oQ7aTxFm#|F3*)G$m2%AxP5#Qo}@@UU&YUl@@%UVc4ce2yJKCCdP&Hb&S{Euj^~ied z+j(lRV7^pcFH0TAw{`fI?uX0J@|SL@*$3^0I)1O?9n-Z`yQ6hf(uYsHz6(DVfVTj* zA~f$K+WuWpDD-PLyxM4S2HSE9)X2le;p$y`$EBa!<%J53>PuNni*ltGkVqLyaB?c_ zN}S&1aQw+ESV5*n3pclW$+ADKpwU6v@}E8Hkg_l@PXR;;mXCByr6XX(K7TIr*e@4` z0NUIww5~UDP*zOMNuxs7FaTu`WArM;HN!{PR}auwkk17=1^~9&LEC8f6PbX-6ZqRg4|r8y2r_| z|6!5y!69vJ44n)%53YkvYCTGuN1cnbv$TkW$W#LTJr)&&yUKB!r zTF3&oBaARs1XXhC0ln0V>BEv=reVg!gJ6j4`P{B(7RiK7DE3Zd&>;1H>bo?$8cJUU znGAbt^1s_V8?L>%l|Md5_PW`~&d%QO_O`}h_!T-w*xC?RL=HSOkn$V!0V($Ejb7{^ z_#*(8)9l{t+Rsd3CB7=aPJuOH{cEq`c;3U*N@!qA`9Z2~q`@hKQZ}bV=MKmBf8u?y zHpdnWy8Lb+*V*W34pNh~8KNw%pND5=Ho%GKgQImeiwk&cqKO<1^h~9|0Iy7{rxtAC z`vt%cr#w_uR*LEB>Vwo4r>!nf!nJN+En`7E|0|E=(c$#dY;@KYaIfn4##d;m9Zrg{ zHq8na6rhaI=#53jtma^2b1!Lh#;g}l;&Qksm#aTAZB-|UK+Efq`=OY*; z{@j7z{UVDe>m#R2glW+WnC1AG^;vzHlsuHxnl#X)asAGR+V``jZ0_e~rpAC z-yBYTP0}jkWwz&izpGmzF&Ci?0kjjFn#kRa1L#A9E_Nqe|Ml>7+6Lp! zRGvvA1Em_5H~YS|(7Xck`J~M&TarFF@a_E20>nDXZj{$yFq~=$F9fVEn9Gl-X;^n= zq74Um*^y@P?QJ^hGf9Z6uPR6g1k}z9MAw{rmAqwVg-lx) z{atSBe1J$0lUi5-YJtlX=6?JM6A~+fO+Xq{IS~@*n_})s>U~gBGll_g=sH ztc<1~>->Gtus5i-Qf@YpAxDzUP=s3cMcZmow~BW73YRxl5CgQx=G^A6$}m@@k3{}S z{4fGgud;BHo=*5x>b!0*C-Vw-B^MtSVS^NORlIi#l@-!6>c~$*#3A4cbM>EeW@M*2Da%Enb_ z>SkuM-X77lO`3zpR&)}kvEP_Ln^)%?hJoadaJqLnhwXkq-wY8fq) zPQMG=)jrGC8>X>`QBm4ru>V6Y>2j5RWSXOQ?s(>$U$z({6kpc*E-so{I zv&H*=W7e$FRsw;c@GuI+A-VYs{(qmhq4P&3&IBNycnpwDOciv?9~9ZZxwkrLskM(ood(IbUUMCC&u1 z;`ki>|3 zH@XpM3NUC&i_`@AVd_hj0LnaD0#jRbEwqg8^oevzeMkY36B5BcdQ0>K5`oL{ZNZ!= zvl(}E4tyPatY^LSS(XhH&*M8Ib4Q-tSr`>bBpiBXM{MK>p(Sw@cq@U48Gi*BeMkn} zn{cL&L#5o4B&9GD*P)+DL!W=sabkOhcxuWOzO<`n(bl(xsCJt z`Id}{NSN_!-#o^GW*eqNX7aJ91{4h2G8D3hh6F9`e?D3b@0B`bHH6=+MAh+n)8|-# zyu*M%6s5RHRM8MG1y-V3*>Jw|XMgYF)A*ivSdcXW2XqSD2b6G0yL2gwRZ`RtsFRYws2O4g(D8V0F*c$g!Z4Z0!>%K-$WlY-eCu|t26zQAih6c^_}Z;VV($Y%kx`rJPg zq*#n-U;7T|{X5GRHxdWn9CWMb6)x`d$8JoRk(u%{pin(a1=5Jlpb*=|zWjM;V2G8C zzkEgiyMxzYHVTJojslmC3=p`!8(Bt*})Gb{W0>CUSMfd78BS$wk^Aaq_W z9MfhFM8;fTnny6|Hhnb2>qij=KG)zsbhvM5>1L3t5|YH9aNk4Hv)9x{CgvW5G|)fq zwK?E&csK~Lnmx^3vXB#Z>T3B&9>Qv~P>0_iFAV{F4GTVnoFWqjCbthL{pN)#!LB0U zfywLi>n*^wwoe0>2k`8v_Q8|~9j)4J}MD^_tkY)mD-?=%|RQ{V7 zm5nA4UE|QZ?%nZbG_m@;Y7&dI0iST8yr7bZuTImCu6d*KV-5+)8*vlNrb%9 zmGYI|zLLpi<>3+F=O<^dmIZOWfwZ5f#%kP^=+1ZPlAmLoBwXD8e z3FJjHNR&~?HuIeKKs0TdN+f8hRu_)6Kc3r>%-6cq+~_fqb_luL=RqW;SRXpw5Q6$x zwsQ0JYu@#>>brN@ySd_$Bw-hD^mh71b{wa;lTWl91{keHEy$>5OG-%qDjbbSMa7_&1UQT|OT_MbTzHa6nm z=~44lI}rD2T98Lc5fbhf6&XPsH9(Q&2M)_kgioD;AUn%Pc`4u3oucseM|k-A&A~*{ zC@E;@d!VWP@j3|7*_i|xsWQhZ4?zH<;smsAUtml@szsylKtkN;^S)3{w~-B0Z=Vcm zSPN5qlRfOw5i$XQ(b@}$5Si@LwXQu1iGihm(=aW&ZE5^h$h7n%YM>XD1D2!p@}m$0 z(a(N7Cm!JRV(ogbwN6PG=zB*EaF}qcs~A;G!BNw{6j{62J2U0gx1&Hl1@(qH*XMjR z;#Uaf5%u_3@3=Dl!N#?|gn0L#1!x5#seiOU9sU{h}R{bI~f`1G} zSbIU*Nj>s^g9r;P{pa!pgL(nswKryi9$>kZHgn<#*V+g|qN7XP-NJyWSi9MkF=n`B z>s-Qztj+F&3k0ARcSn#k8TY4xc=ch)V-E;%CMb*{{}x3r1K9w`PF>$r^SH6r1HubL zG6z!!WQ&C|6KS2x=~`u`%M~_;mx9fzpv_Rg>1wz2NU%Um~dUsfC4!(BI*;(Q3tJT%tYxO7O z_1ZW@4=4Rh0UtH~U|}*=*(@6TiO#p2Zc)8M5jLWU{}M{*K+AzIAUDChVudDx4y0S( znyS+2H7eYIZVJ$qrAC*0#tqni!WiaG_0RG!1=u3!=iKmSSCx&nluKhDd4JV$xPd^X z;llxAb+q8M+eL+4Tld()m`EzJ1z$z6>j$GaDX|0ZNlYP)dM$h&P9mxv@nzOa2wpXi zG=)s#@VYX;1V1xQ#vzmd z_DX=CIDmM_aykH<(J%<&Yg&JE5vL4s}KS*^gAwU4Hc8j}-+MZUbJbFzM-GFW zch8mm+zs-@85MufTsGC^k~Y8a>_qrqS^xkv9FFbZ)+v5A-^;G}T9KA5vU_?Gveu8- z_aZ3mt+Mul{b-4w4qzXuGO7dT@dMxG=p+k4$iB?uL9H(>3NUn=3k-pCCOXCr!4?Dq z54Y4?7g8}~M1w8Eaw26EU6e(iM+=VBPYV#I{o>nlb_XE9EN+EiPS2}F+6udxlhlpU z`nSgQ6-{|fO=V4_&7?bxZy@%3^@apJi9NPBS-8E4y*&>sjO@IQZ5dDy)-^Wv)V;B; zjh$~Fgs`4MJxE+2JMiOBfO8JZ^;X%{xLHgqXL=KI*e^;!a5?pQ8-Gr769mvheRz@C zt$!*Y{1x2@)DP{%Sh}d!CpR_a@oyOnf$Rj7E80~{#huK*kWx(KzmU>ad3KKtVG9)L zCwbrMnCi_8rK_x*L+Qz;+;NBGEH$Mo!NVt>`_$8~r~4tZ^)&S~tvL_{)qBgbu_JRK zJMjTaU-ixMf#3|pd#vap!lEIG6zmY`;%vZw2eG(_=D9gLr$(5(D=;+zTb~{qjr;Mv zvBv+xL}n+$>1p|+1SY|$z+={TE-pXZw(Qk@SRRt;v)Emns7&38T~x1#uBaF?fjZuI zv5hP=bnWS6!o;m+nDOb91u4<>s|~5lVpvm=~JB zW2CGpE+l_6Kf69Vd@1}=_i{JdbSedd`X%-vZ9~&R#nFtHaL=Pg zPxg;qk}`0<&sM2-cCp?aS23Yz1VOD?s1H={`yqj|K|IJ(ggXp(&EJos#pF6aeXe$O zAT^9NgN^L)krm3*BoPjK2XLfdRldospfj7#vlc>o;@MJ?XHbg>%=^;S(=+`Xg-w)k zBdWo_pJ%sT8_i+J>E4G>&}MkvgVQ~X;%Pa6JJIt$aq$ECdYe+cL^r5bA}=AGTr zLt-;k-Sq3h96s5ymuQJv&D<1YeYOW!@Cq2asPIpAQP7e&`ZkuCwvAj865_Q zqn`^1S#G39j4)kQ(R9R}gV-IhfglYQ%&Btb{_&N6xd5J!HS;BLag!i{o{2O$K1e~f)l>%{Rt*iuIF!CM=q}8`1+~a?Yv}PjpWw*H z_=Y;ES#9^BSg{5`2wy$}Q6k#L^mWB=!Wca*o=B1><;ry$WlCXR>a8QeOaS%OmF)|k zmaaRT#l>&eHa1iZ@ld}cU^>Hs@NLJB*!|TE!)Wior*DbBY2$fYVAot;A}u52d~GZ| zVXL{ytE=msnv#Fkz$Fl~ZNsyEQ)LFC%dT2qIan8U3j}0gs-Qur$%NYw{41dEGeQ>5 z2~O2jf&clr+KvcM)kOe%VaE7mrBPCOZ9+MU>SkDLJqtyELAs)fitVA2PVhn*Ygml-i5L-P|#U`0TYR5 z03IO`8V-4XC&VZv{tJkEfmn@ID<}GkTy_cwj^)7>@hV|~=BpaKB4k6yNI>B<%aTME z-i&w;H~Q^ZNmv{QG)ey24UYA67fiDoeMrSCWIWIdAhpE#jt82Q0*z~ga>C$QclBa^ zUS=b+qLb2l?MsiEhz49jI8xb8Wbk&JaHw8U78uY(J@`5dtuW*7w|a15=;vkVtO$l4 zN1?@nCZUO%ShfDtQSLRXlVR4 zXK61p2rBTgYh^I_H{GWa_S%BY&B>-gW^r*e1Nl)&AnR0R`5KS6n8*-Yk7CY%=`FZfw6K>~z;su6g-6FcP_1r_KayFdUaw@KtBjx2mG z?B6FmpnEYf!VuRL{sTh;S~gG+Jisx3jn2R9r+3Ek`hkrN=K6bCEq7L+O?1Hah{)eD& z?V^1uclC3}6ylZwR{3ZiHuyY~32F1XOPzbcJfVdyVxSx@K^QL(U<#PkAsdV}Bl>YGbvlYNHag!U(6B?uL~07GTuYSoLJF~{6_)&BS6N-fi2wmT@I zayR@ksPIru#)i43mFCSi!z11u#NbcN0*Mmj5Qk%3*ETNMGlt_`e_YIuOV zbQ@!y6|0?D+`nrx1N9Z6p9<}yuEZF(Dp^STcu+MK40$4(a@H8B8M9+^FMp5+Zej>8 zkb1d>8G~Cx5p8`CHW@GMw6&KgQJYPU(`6?%85hqhFV4#y7#R46v5T>^QsoQIBqeY? zdJ60y%_BC0;{)BojCb#DI%|Wg#?|3icj%4BVr$vmeJWr3;|Jgo8sGCzW(Ef%CKUNI z5??|TJ1UO7No&kHc_vgSIA6J|8{R^}pmRVs8>~$-5ocqVAD9dqddJwWClK&f>nUb6YIz!$0&8@NS@k6@`g@-2g4_d!pm{?me=WoDhzm zEmsufC$z|N=AnouiJUtLvw=b5OIsA7qo8dOVA>$`AIsWCut$a9NGaOoZ7n=E7rWkz zpOZdAY*q_UnXy;uB6xqS!q+HST;%V(%gzF}4N!30lMA%6H!90Ky z1sx6-qEtvY-_t$_J)1>bdIO`*6WlMz-J5+g@kK1v``k?EKjwfr02A^?wjR9k8g_@^h{fT#Jd3k%6g{ z+vjnv-7o6P7v;)|L;MEkpXBV0=)PaSu7Se6yrahHh4cwt#t{> zC0?3~wf@`yPZ*qH5;gFk3DmpcMDS4HE3$ifN}m;QKp_H1(QwLpFQCgo*5Q*K%?Z;I z_9gLMY+Rpok&q;TMaSorqKbi*dcT;IN`j5gs}NDj=Y79&e-9#(MZmgH38vtMjf^IM zCePjTDA#=bp^hKt&jmInp<0wS8EhL zpzK<=>k0oBL*=#om%X5SH#=(q0VVke2w|g;FOOXBkLPjqexrpGPFIi+ z7YC(1=9YY(;7Xl_J^*NTN>)#R@1y?zs&bvQWQgkrKp1EPJw5qNK?1$V$KJl-(&-h~ z`u~Y^m1`L^r$)y>O+vX(VgYM3+xmajRsKJ$y=7FEUC=*z(Mm{3O9(1RhlnC^^N`Zr zAs{U!oi|8>bO}gEcXuk?-Hmj2*V#PJ`~J_Db3UB4&RQ(iy{_1Mu06A7X3zf3?7q|4 z8vH^X5S+}hY;*2Us9FQ~=p??xzdJi1R;Q;ggGqAaJIOES!~Ajqet+HBxe*b;zH0{} z#SidO^O-vk!#0~4Uj~>lPBVL{xKhmf&)-`723A*Akg8p(4mO4`p!Q%40KEk0SpMrT zW@>6aO>nl@S11zyH*qtc_zhvy8L`^QY1=O(E-T{Q1nZdexWB z>C%imsz;lfYJZJpKJ4=(#MLly*vu5`x&avmK;Zn+H{=qT|0mQtp){=-+`$b9q8UZSj>#GHV2DD z5RlUL?qHru zhVDmQBGB1c<^90Co1d_?n;XPmh9R*pj3c1fTG*;uoFm2XW@1SaBouSxgWtVkwes{5q%5fps=NLjfIngQ`DT4fV>l~2`6~+@ z-A}$-710hp@GdG=d~#A!Mmh1(OsAz6ba@i`EiBAMKBsqh_)Gs!7GhsEF0Mo_OJZDM zp;qguwBZ=d>VrHs{j0N`O@`U@5b}h~%p}(fD>FyOlj#akIq1o5X)6=Pj$;!&S`33wrN(>vbHL}$4Z%k4G z0!n^!AGHT>TUuJ0>*`K7xR_D@r65x@x+Z(lig==QBHB6H{b~d`{GWWk<(;RY}RodGa%&*iRM~>UlBS z$Lo*({K*;~DLda!9^iDmJaU`uKtW3e2l0gzseMww8S+3N&yt?|y;@~9_EjlvL0Mg< z%7RHykWxj_y)NBuMe;{6H~3yg!qs&n%UQ>IXS)uN5`d#EI{4ngB4n0QPL5@3%w|2d z$sOzg^ea$r%{LI7GyX_ONE15R>rtw!WH=XD9&AF0CRX6tVtSkKa&oL9L9BNL!Qw-oltH zFaN;z&mOi)po@S2Q3ZMFH9dup@C8(DFI3LN#9e>mo|uuNo{54FAoslYmmpC< z8#Njl88tW?g^AxgnJoPup(jtqkM`xu(&Iy$cBk#0zq^R?^6INFGvnYG$X8`kz8jlw zn2G;E{4n@iqkUO2_lF1B?QTswJNf=}blDg^zMc0S1~7>+5B4{`XJ^W@0h#(8kC)pEoKNZBa~xv=!WP)+Z=aqj?5z(hyrRYqHN~ez^%qKgYfg%S zO5a7?Bj`?cX}%cHmiid~3V$e^M&*^HDmlUF-_z|CsRU^-^J4uGk?L46m)F;6@B&Ip zzY;M`ca?qtC60i8^v@RXiZ3jDa#WF{BQGEq{)T};<*uo@Ikh8nIiPcDDn`O|Z`Mis zj!9X0E!p+2gwRN)dHVUSj?m~YK?Q2`$B&m4aOdX*d3llc7eaHggI^66+waEX$cc-$ zAFaBm#WXmum@c<3-{ftT2Y-Q-+ zTIU3!ZODC;{+vxb-#{Eua&=ZvwY0gnS8p`%6I54fg7X{B)zWN_lZT6a z7Y*5|a6Wb9lSw;K7?r89N!HGb!GKGs)Y;oDo&Mvl;YjY(X{my+mu1B{<7+a)SLb~C zXR54fJpX;YVV|zM6Ob?>7K)EToTl%j5=qN#H~03N7D`M;0)GCy>Fs@1qFVlS^_`Dm z;MGe4poJ&8bNy~2cwN@snyV-HQ}BJav%v@xH<%^njN4i0<206Crx7g_65-4GcZ{km z>y!&fXKM*IcX`XfK^>L{D=RBq z*!hZC<_HLhhW)cbLd?u(yE9yJ)6kN0eFHEQib0`pL7~P*tl;mheF+n*7IMh_*jq(u z#q^VR+{h$Ux2?(j-uOwLo?6WLJTMq{~$iQJqFbaa|kdyirRaZ=p7=KyE@llb8+ zI>IaX{RUn)mC#DnX=q8wPyjxEp*HWIjt&WGwzuqfT*k6Cd$TO}cP>cxcGrg;;oB23 zrnA-KGgX_y!o&TE{MEK5s~waKHSxJR@);>9%p;j@hDJuw;o)f|u1->#NuC>u)8k&;iWEr3Q zG>`uo2HuHZf+J&j*w&9_XlZ9QHe!=q*&9+)4lWMc;5XJrd$UZZTTYryjTXQt(TJSb z+F*!D^oUC++@%o8@P#*i`f~sTAOdgm?vBZyj+t4vFTQ2DOt z@Du%VH{vY{{G7uoWnr#PMro}IWoyXMU1OE|TfAz_SVUI}U=w(elD`rD5rx>7gd=nR z2b)`T!Qu>wCUCaB*Wu^VOBdj(yBNb*%T6Jd{d&#pL_(u-kUseQnV0~nicK?7e zaXe$G0KeW{NLJCP`8wMjz5KLWv!PZw1q*D)e6DHw+rys1Syzdeg zUZs+7yj4>_GoE+-Y_Zqmm4fmXMaNfWG_Th(RuMaPVNG7v)ji?bXzFMNeVa})(GEGA z6o?%WOT@T4i1Q^L3Cb9tdriyf-z%MCVd~&1bU2*Iys|3L`Z12KQF$>tSr@Oi2-vbD{t+N zM&rBq)Y{-8mz2c3JIy(6Ycqd&(BcdxUH~1d)m^^YA6{q4I>*C8Aw3@Zove5ZQe&8t z--Wfq4JjpUHX5<7T<69=m!P0NsEmzucSosReNdJ;lbS)?Zh3ceDfGs2o=2)mc-z<% zr<~#^R^#2(dS8MJr-{5vU%aJ+c&4ck(4oC?O`wzyCmY)sa0#{Q+CeG1E@5HWpYF+& ztf-GpItnzx3p7HXr{<|lRGLi?Uz$Twm!}i^?zg8Oq^kaT?BZfpU{0pUh73#Luf93! zO9(|oT8Cd6oPTggq5|bGAo1rA;_Y+7An8Q)=G7`9mU#nn^Px1+?HZe=mCO=UI;6hS zZNO*oe%egTU?TPl}84j}-^az4Img0p51pM9^Bh6v8D*gAo$KN+(w-Af~hAI}cVUdrO(t(4C zu<;TZrjGp4GTZr4UG!fXiWq~MWLH#(*XzFy-aYaF{rp~}f)Jq#BJO$!6S@80F2DC7 zW`B9Od6$8O?Rsdg3ZMms8i*+!gD9xr4OBFee<}8`A0AbN9k2D}U16iJ;ym&wM~Rq+ z;+5p1ymCBjiK=ASqB9VV4i6t=VBj!p(|L9XGU?jXz6uh42KCYLLXWis)YEXJ^U{4(~SpPkfjg;1QSA zQpnAe)RLuUdy4!LG@>=>kn$8fjJ1_sVIA+qE=z0VQIF_xCjcQ|A*sBEAX$8HSE=(H z^5C{ILw*np2+4<-^mo|9F9`Ai46!8`o|dKfA@V1MY6h+C;kuyr2HNl655HtFN*_U2 z$Ot$aFEj&F0-x)rj}%|0yhDaTpH!K`vCOl~JNL#=& zJd;c|+{%^g$&T5r!qgHI^GTk_~$rYMv1%i7E|VFngIjiIir z{f52ajXB}NFOz1}q=O*D_v3kLHD^OWXKVEi?pelrt?FGXuD2B<--3i}t)ZNG;anls&HMqk z=H<#%8P}A3OoWU^H518f?@+h5|98~=$nMEB1@329Zq_eOgr{Q=;%bD;&gT{!X!u^! zG)Z&z6y0u1-lQj~w&KY3Cghtm`T6jOOZG8m8|qKz)yxe4>Dys?>53HZIO)wVQ-^zc zrUgAs+%YzwX2WX`?^{KGG%8#F643``Tx?NmV8Kx4n)fCY?Xk&}&)9A+YI$Lal`Os) zhdwpw#5ZeJkfFHIZA6EyZbRWH7nGsbh=N8M>B6bh%0=KEc1~ zDDQUJsIPk4Hs>trcRV^Ay=T}mR&P8pD9|wo?91j4`c-=QVk zyT&A{j9#~F+2yLy^XeU=XBZ|^Ql%E?t6SFNxLvD>GZ_UDB*UrL@T8`#_q+0Xr^gs$ zunsTF4X~EnXroJlo`~l2QznLMyes!ILgL!qx1V2r%ZU5jd5W6L+7=zZ_B8C)HZm`TuV?eNMt@fcRa<>DQ+#0{ z;Y@TcZ~IS7aE&#MLjr9PyK>b=$FTL4;l$U<3kG(!BH69a z=EFIje=BsVla3NfXnAy;u=3a2VL4*pKeuUdi^x~QqY(UF223BaD< z>?)y?1Ay)O=QXZRdpeGsu_Qb0l)9MuxHa8a2s4=wKO~FCJD~4UquMw-$YpozaaUl9 zGt?}Iox!erF*e!yg;{y>+I(h`vw@O%UssQ@_LgzAs8i@J_|UR!0*tv}i*BxgzW)5o zw6@@^E=CEsC@sERLhZda!Dx=BWdKaqlM~NTr8Vee!<&&B{XXaVHo11;qLBeN5euFe z79%QD@sp|gXJ1^gO6z$dIBZD^KJ7L=a68PXWh z?%h36v&kW%ctbmP!FcYsZ*=vW3Z*nZGk!2I`tc79Wkcs;YBGV2Ygh&E;?+O!@Z7^6 zp60xzRoL~FgUS9!=o!hC`QZ(2iw!R+@#Wlq?P!0={oUx27*lt2f=?Y!H2BWU<@Z8R z?b_3)hnyH+(CPb<2(q&@6jZ3ugFgaM*PPX7Bm|>hyi>=z0p|K(=wm28W1S==&W)^g zG9GVe_z$0-WrLVlkIRJ&_ri6`$yjl6GG_wQ_-O>LoF&<8FhPs*XLPyX?4!; z)e>;zVnxRG+A|H;iMpC{`;(3=<)s{@B(9=>tjm*_nV7!Gg46gux4}QG_h=`gcp+3T zCL`9f{Di6h@)}s9mLXTYP-jd*Fkg{o9KT#MD1U13y&hv{Bdo}|E{rr*%~F5WPE9HE z!3N)2y0Kig+ulO)?~?VVZmMFtdIHJ7)&!V;1@+HFYzxbdZfOjOC>vj!D2&>bP*j`K%!ojccbp-BGe#_-C=zn0SucRGgvZId$0?>kjz-VaF3 zERJnM|am2yKwCWDxh+jl{poC#Co|DZ$67 zi22pMPmMxw8(!!2{=V?aVjMkKuJ&~`|LANP;;Gno zA$P1qnRz!mjxBRzN%4j)<+=FUotiVAH?LOD%IL9xBP=ejOOkRVS@IjJzbHGVGf1M_ zLT4f1+Dqf_7jx>H+yWnOf4t$N&x}1<_so2*k?~pwx=h#V{rk+8uKK%-FNB_sj_VJ2 zSE5rk>=sP|b=E(gDVkYssnoF~Ihn`TQ~1Vi-q9BvuwkcOsM!AXgYez5Hy27ygOShn=J@F9%A5)i zzW~Q@zH%?xiGs>~XV+3r~^+x%30gO)AnkA zNod8?Y`nDv=-{){pZ*)>hIcXi$+$z2Dsjn-mu8FIW-JO{11A=K0nZFLH7onR4YWx| z&m8``yG}31k_fGQ(H|}i;lSv!I^0*>$pamz%lgdzxm5MUR1zAO5>e z`KPnq5e_EN_zpT< zs%OAk@Z!41RqZ&!nN--y&yjZz{wa(Z8Ld*jVTIfyZ|^=ddy5Tlde; zIZgSqcpI6TLv5ELewKC8$2%Z2`qQ88W!|UDt`0_t^S|;n0-xx)P;^8Rc^NdZxiB{- zcVp#AwzpShn`$d+0xrZhFmiKGunil${+5?zA->5#WQVQtr_-|_0Sjka#n$n?Rnq;} zcYpVr{G6MH{9%=CrK+pcwDpi4YZ@*eclbN%=S)Q@V&gU8HZ#uR6jQr1&A|y=Z7#z( zs21b8);TpO!z|p+Z%>QeR5=pwALV?P>Y}Gg{fmD?93)(@_0F3|`~|g7*0+T5a-}TP zXy6vo@x9MVcR0N(zRGVn-*3;X4dGKC>7sti#=x63_@`UwZi`@W+HEb#iu!8_=jvCJ zw#TFTri@@#Y;G;53;WT;Py{hXbzdZ9qSF><^}f)HHp^ASayiav*k<9SxV&BRmm<>t ziXO;r6Vys=xJpDx_pCqIbQ05e*L`Cj-Z*FP0Gf8+>N&!hU-p`I+-bt)*LS!8rrYKy zP%^rvuDhQy>KmIeYVQ+7Bw#Z9Z$5sGiMP6dsUF@dPrazp18_-V63f{|?*JtLdhYVexL6Pck`WnJ+I7%M7>gi-h$Z5~|`Zh2<-4 zXx1fcYF#yVNF1rB4}oBTqsG6i~m1 z$krG1ByJbwY6@ScSY&oCTrT^nm(+zsy<)u=N?qTFAIU;6Ri}OZ@-1n9U1EF7uuKhv z6uX#YR~|c+AMi+1B15}zTa76FZ)g3<{K@_xEhTHSGW&N{Ud8$-+SW*}8KH4Z5T zCl3o@+NvZsPya&Z151^GaDxS@_2s2(B*9QNdo(E5*B%At--pn>-!gsHXh&`#@)E7E z_ROF|-9b-*h0m3S4KH|CS!F~@q2R{Iqnj_7N(gBXdzu~9U%@Hu7XqfAYU|JVd6Q95 zJM^H*Hc?98_g4CaZtEQL{mm>Hw^XviZyO8M;3W4UN8{P;h7e#r#Z^%^+@-5UG#aM0 z;AA>=@j7;x_rWu$8-W%Fl8tOM@Bk~!cnd^m0kKw3J3gJFcfatJ(vOy_| zWsSmvAml{>)J}-(2MP5ZHwbM&bdQ-0A=$V86Rg<~fm&HHYiEFp{b%tTVmbo?PAPDDpb1up4%?g( zxle%uwV4M70oo$^kzrelUg;?? z<2Vid6HOlWO!x042pZJljzMT*j;?WYt^nk=Q^xB=CMoyRy8v z4T5Z=LJT|}#r_QRMHWG6ZqG;DutW4f_rwen82M!uAYC45mj1+CNz2Q=m~_%+vmPyE|{yyu82YNu65efI}zn$rw8t2il?VrpE9!Pp8(AG%{II1zDZ(wq{U z>9RbvXWZDXIGhZ66+91L@)mCpXn@=lS>i#HDvr9>4l{2 zScv-Q138q!PKBf>+-;xWUk8`{WbEfHP{0T&g0P)ZRyi9E#ci}7#&bWHogr8yDyo-Y z27A~(ZWJ;*YXcj29;&J-%fmUFsT3Ie!){oHei*Mgmk(T#`+mV z*U%QvYI`rd!!pTI32=}QAQ=gy6oo&3+%Y3@h*U_Tb$FdmnhUiuoO}3Xk}%C?tAlWz zF*%WjWSlY=Gx7=Pc*U^Tj)uItjMbdQPmK{3__QI1r!Q04 z8XJwOEU|eV`imwvi&**LBfW7578Y9Hzw;HT>`(e)&1UF{6lsf&7q~d?svlOt#(r1i z>X9g7K0R`O8im+wjgrzN$yA^eGvo>R`#;IoBq73Ov)rE#*dFJtcD6h9etaWwjQXU! zxH72*KuMNbu#2=C^iGVIatWWk8~mly^a>n2O+k=xFdWFH|0G{^$ZRy*2bA|8tU2zs zYy=y1Sh!MC;mCA(q)Ea@cTsFAIt&*%J%ku$_%k|s*B_OL_aFMudCBg)mUF$sdjSe zVu2suT*eh>bQG$xSq;CSHof1>a(e&1&i&%o!emLvSf0l8w0Ljt(|JVb_a8+VH~NSE zuuT!v&hto_*8Sw)rPj7l{Hk?W(VMT4gZ5{0()f z-B<$(`!|#*czSU~|3zHd0Zo0b~D>E`}Y`{F0ifTgbRYl0~ zxn^h>O>=PoLP7)KZDdM)6kEKPmJpBV`V2;)Ey(&X7&3Elp%#~rys4^e6{40`C-az( z?D{O>hn>u2^+`Z`ejVhR&R3V{-`~YzQ{Ls8jLZ-*XDbMjtR>LFv3`^wLZj(q2w@%= zP51pB`$m-(FH_rhr*UyxSmSbXW{+-WXFtGio@>gaRhpCdUh1D)xOZJ@)qP3)Ior^{ zkTEAqN}R2F3b<`;e|=U0vPo;czBJw%)us^*(JIkfU+zf4BI_r6Cwtc}nD?n29T=~E zG?)X6_KohwpoGi0#m~1)j^p`-f_}0E(d=Z(1>VGR%{2ow-M5_CMd%7XeU@(-&e1%)>>#p zqLqpWzNZCIR4gLxS74*3*p54bhxxLDG@j~+KTqWD|@71XnI1WM4 z>flDetNHHA?8q1EXdjXFS$LI&L1yMx83H=1S4x6v&u_ ziJX4Yrqw@*M#Kuff4$H0&5h6H46y3>-Zn?gW~#=f%`AH=<C)6wa>Gp=e>wKZ#^R=@=hGUTn zUp|ONIXc)*K&UP$)Wg!Ksw^%0P~l{A7>oD!@1Az;Xr_@&hUL>AmWcm#vIKRujc|Ay zB$QhgZTdnRWcv7#e>e;^K@Ird-O)#{;aOA>Xet<^)?s-pIM(OT}{YHG%AHl`1kgPJZ&4e(P|d=3bRi;L&fbmTX|$tq6yG;?#gUTG=wQOv49>%&3azBBxm(*eH; z?8s*qv-;4&B;=PC1a9&(Lz+WI_+NKf?vg+A=>hmRVz9HKrgTOw=^uoVt7O&}%`iQ# z8w@>y>Ez%;n+L>H5CnOYg1sPaNbsou?I(IFh&(j|VQ?%>l%@WjU<2rwIfrM{Yk;msU6<0Q$60TGWqzC zqtc?n+V(}NSDrHG_Nd9--EEP+{)ALgy~WYW<@GuKP`_{xP#Rp|K&nh~?%4)gld+4# znyD$TEEyK<_0n*fnUgI}o9i>$DoaY$8urz`1Yo@IhJY=*ySP1net(^;Qf64ypQHs! zKnVNzAia`2I6U5duh$BU+tk&;bKF~Y`!7w_%hds9b{Mr3xe=5ttd2OO5RAxJA6nVj zv(Pn9jE!s=s50FD%MM@Qv&fvN_V?FV@5hz17ir(;zq^<^*-Uf43HP6dU*$}88n34c zBP_TxuyHD7m#Jk*-_MkI{b&Bp&Vc#5JzfcD9X;tCFVI)XCw^ywry{5=-Cs!QzQJXm zFUCl5J0hd=_Di+R5Os`!0sB;ETTq@YgNMc6ubaSgf!>I%zJR4CYJF;}*qn+?UY{Qx zkEyHWskNrz=c<}nPd;v|MMhmSGb^|fCBu`hW-I|pGrGb#MTa#Bf~_xp$TO0USjc5e1D3`oSnAMcv#U$!4LBvJ zHa`CAeenLEr$2i{WDwCByw=};CszqSKxk@nb9P_ahF|f84&$vGIA-j$%*Ni{%I-GB zW<5}oa?rsU2T7M69r*rnBqa1b#`;96*5XAk$Is4$P9((qqZ1QvzGjhf1`@5ID%cE1 zM0{qCODsFCgTHz;t(4b(FD2ya18fd6BVDJY6mPlnX-Zcl!zZcVpEjIzh%-~^$g~#r zp)1|qFl5jL$UK(Y*BqHa%dc}9=_e*fVe1YPfLHC7H zUiB*eL=ol5oI}<(uXSwFr)Lv7kz8LkfF;FEM1SJ$xI3MGx=rHC79;kmKnK3O($(Yl zMCl^_+x$oyvGE^IB*1mE;l|s2Ik_9fr$tG;2~F_(Dzgc`dUvZU?KYXv%QE2oG2Dd-ySJp z0io?zGJKaamK_lhD_N;x|7!0%;GYDAJX_NHqZLGiHV|KNe5fCgW0I0Z%TIuU%LGnp z8njt|(%}3OFNi}yp$VJ>*m1DL*rPpLW;D~{M{vz*_|grH4OL83w_`IhYNd)k*?R&g zY7b^~-KmJX5!;b&3o)`|^Ug|5ISk%1c-iksuMq5>0lMV*Wk2x_PF0|Vr2ZRbGpLRT{c7d zn@VmB%%?^1srcsKVh0Gx8#Byv>w}?W-rihIlY{GhLqLtwqQipq{Ykct&P9XNbd`gx zP2TKTj;M=zs^7efuw0WtPekB>f?WOgkU}8JZ0Gy;cgvv-qQQ7S0-LLh27nf}33ao+ z4oL{4W?(9i9?66!zqiqyD14l!!XPOur>N>^(GjB49-`%X^G*)~$_982OvN&AV!ho~ z>#f_DWf5Si_gZ{&F6Up;$|x(BiGKuL!?{nk9acNTfiz#E95d4pvQ(B=@K#zc_fxuC zeYGLu(QjWbGkncdv#~KG#bI>EYMULMsI?gNTF334x5^bbe3kwES>NsoP8a_d3*e=I zho@;akyNiMxL?$id9EP$r3Rjy9H^(a-XDuizV#GGc8LK4=7=uYbW?oMku33p(9f@9 zkyFHl!i#cw+swqQZs+#9%}-#QwP{2?8-4zX{-nRB|LpKMq0)(it1>M#ZTaBxxaM(W z5-18|y*27j#`T$9EfQdO3$^mXV1Fq*wXGI^=kz7)Yt?=>G?{uyXM7^VAE&O0Bd6-}8z=v1FVu!$j^|%Z?|$y0yqCYEv^{TAU6<(&8zMaA;H=MJ`s{pN!Q1 z{Heu%GibS^8m`K7m6hE1Wzq^5O2(e<&!yo(L>O2$UEjIf|DUE-1G<_pK!H_o%I4*S~jZy#%`%Mbq=%VWrW2`NEoA8ntW#S09r z5K}Gbgdp!a0I3ch$=r3lnH(Ok)D9xtJKaj0EZ=nc{8>;($0uUlVR!4@C&=OJ678Qz z@r>CQjyKr4gvrSJbvkgj>!a0}8k-L&$co1YbZ`ma4vKjp;IzkYdipjtZhrh&2F~Z< z{F*NIg1gK-p(G$+crUj*>A%l_aFP(cj;zklv>i7FfzZTalD&G%p1V-G8pwZVb$G(4 zUHZSwefcM`Mqp@C$X^zPbtLiZw~)Vjw!8y+e=tP)#$-4>nn49U_79aY=$-Z51|kxx zrXvo3=EytvA|c>-cs8q1K$s*Cu}ON0Ohm-Num1)L=LHNE`9HmScnNw57A0U@{{Tl8 zf)1XDSdcsc0Hg<36`;!sjfLx5caKwOI_^hiruMMyav6VzW$P!umJ*1fKcOa;4&DU zZ=d&o6ES&Rrn%oMNizKTZKZ&)^bI{FaS+9@8j+Vb6qHW}qO=FlljdLCuNUqkwCjJ2 zr};Gr0Vh~@ztljpgfAq-m1}&Y&Vd#bAnI6K(~^>+y}s_?cW12Eyle1GO3JGGGR0#g zO)1&|B0#`{cDz1%c`k3EJPv$Q=jmzts$$i*daavG8i=N&*|k`|zK53_R!1`c_xgUe zN~R15xJS1K)R|(Q$TiU0ZQ9ip3GC|iZ3m_3Tg&-kyKRH@eol)Ci{)~YdmcA>op)Re zX5tftD3_NUmF5YA&wdh9^1}zIJXhPufnUr_tv5g4fIm?HJd~}i$N1H&LB3BKs*MJK zk}~=-bH@Gltm^)@XwM5>XPKIsU0%NZ{z#&M zkjcL@M1z8ZWg0nx;HT}5^bY4=3-&tkmwo1e}(z;O^#Ye2+$?q53wic_;v-K`RX|}nW$*t zoeTWVM9*-%P=?Z?rggMjsz`f6<|o})AaTNvr<9f}Q`zBHC;-ZsLItrK>y@Z3CZqqS zcuJ4`C}V<&!xO{h@~oGia~NG=Q)q%B8l0+=lTUSi#6*2IupB@GHM7=tG`9%Y*slf` zns`v6#GMaQKezO!0%{CZUM3&bxfwcdR0OiSQGiD8hP zF0(K(O9=nT$VC4)HoeJB!znMNkw{JsESPX10jFZdpuE=}_WwZ0TijLpqWna$AbeF4 zE(Zp_ol!?xXn=-BLcP$iLh6GpU1v|7{mr}cfp7KoWJ;$8^&Y9s%@vWa;^Gq=o?wpJ zYQSi9H?TcWb#dM(rvE=Gp)TNt5fMJ6(*g|wkMweI;XdpBx(O^%!4e$5>5d-0NO7|o zyG<+O4&MNahv1t9^k^{*i~)<8%;Le;+4|$_^&v$ zlt>7Hn5wnN7ec_v?wOl$S^6cYu|A-~{^iGHXSRD!48z?;OWR1KzqooKFgk=3Jk|EY z>A*J+4E~NP{c{pH@-`prtw5=0ch~d3ZK=)w_%snbC49_;+ z2-@KIj(~`zPizQW>O5M>3-^P?n^{d3%H+0=&a`H@{jIt+j{v_%2o9v%(atQway z<5~g;+NTQRL$|kNhMclyoUp@Q?>?{OQ-KNPDGhjV{E+16=gC6h3*rbFKA5gy# z3`7vY4wWMF!#k_rPOv>H|1%2z>Gvq|Vg4)hI;H*p8<+~Ed=I-r7}WaLAUs`q&6=3m zpZM4vQ)%FG=>w+h`>?wqOU52OqHQi@*cGOZmWTK^2^x<=K_X&cE%5xUPsso!9>W4x zXs{k#Y9T<>|8#{o%GsXBEWSgqrX@xr z+2T4ZGfyfp59N+t%L6tR!u0>A5p5{+5Bsn!5(Je$ z9p-mNy`%{9dx*GfFs--s@1K<|s-^@u+PUw39 z%lQ`-jqP)S&1Hqm7G~d!LrKTM1Mtr&@i)=YO&fo|<_UD3!`?rTei6%^1`j0q{o_~e z^QOd-KfiuH0HtNMH7QAIyXXm0C9_o@u-x?uNfPwhdxiYHup|7_4-ko$M+cW=DV&|A zl;iQ`YwLLq#E3Q!$e(yb{X-uAFpt)fHIhB3`0L`(RlnAS?QJA5& zo_B0fkl1V6R0IzM`msS1K!Og5EtLM0dk8v7`jr7!{Oj)HweSkC852w|yI=TNFn+2l zIq~OL&%e+OIy~~|Mgat*Y>zsnW032nz;PfY9?+UG(`U}7*(6g3O^TrfXwHJ^o2bM% z$|NErQdLi(len9Yz8`RNj+uQT-syP0t;75J(SXGJc={1&DjMPOck$h><~5Yv!!z^L zw6roS5?fCb8qg?AIHy#!wmQn*0FLg#&B(~86e9qoOR%nyru1TR@XNKC6`XWzVOf=V zwXd$N{D_Oghz0kL!mI?WmDzZy4 z=8wXs+Fz*@6|(mq-|);Lq~Ld-iN$6v%CTpYE}idXGkRf$^=H=~lX4Hinl{bAOelSQ z!!l-8`#i-`h`OX3q%zogiS%0o_6@#uzGTo^y~%L)_#1%-baPrVmxyfJ!3$DjCO7f> zjgi`H8EibQltflkvAj)jL)Fbe>RuZxS!s}~(}Ib35gCw4hFJUJMuB>Nl(GGXz$;#>asCflku z`tFZXeeZ>6SMh0zBEZNi3(}Hqur;`*ODGJAqGtF&V%v*+A}?)IJ;kT*d57-^w+jD~ z5o(YNl%9jxYCZ3uC|)E#L&^NQMElXGjiz9$BL z@hAVm08}L?)YgQHpyV&n&tFo6;g`d`QisOgYJ! z)Scer3~jm;UHTZcXyXrgD06;q#l&qZ*i5Wp@~E?qnF>@04V`oUCjZqYu~Cc}iV+x0@u4?;(`d-+FOyKb+dns{2+-dE z{}g)FDRDQWIGiUeZ$A~#$@F|6siCW~EXsAd*}QAfFhu#4(C0Uf$%^e1iNj0A8$mR` zScWSxJA0Yp8}{!S$qqk~Tmsa)`>u}BU)s}FYF~f7`Oi|Zf4j`O_Qov+{+O zd&jV_7%kPg{x4wYG0-?m-g3N3^=#a$N{y6RaH(+3#>QPG6ubW}_99iloToa*C4@ix zXIv8ib*5BOyc~;+(fV`__Y0u2wXPzp*bOjl-#Y-9Q2=Y&4V_9fVEh+SyfvIXz4zF> zy1LlHAus*=4Zw(g2a$U;eJN`jfeq5}#wZ4m#+*PA} z_(!2Oy$*TPZht$*kkHEJ=RQAiRunqc|%$E+Xl;A4; zi{o-KnFTz+?pb(*jWc}1p6g8OAF)Kzi0dtX|J4qZ?kr{FvRJV=UQue# z<&a6P@8;ns!^g!kUgfh>QC;czKH0jX-cJY@ezis*o|rGi%_;kx$9o(1;KIQ0A9V^` zw~;;xK8CX<88RT2e*UU4#J+~Rb@$6dq5!OE9$S7VvgX+_omhawWaWG9;Q*69d#+3TNRA!E_uv(}ep_zfV7<*H_E=9xUBSdeURJ zXGzi{Li-t|;Q#9Eyn~wP+65i~5m2NmNEM_>kscHYAcS6}Lns0w(qDQ{R6vRfQkBk2 zl^S{r5EYOnARR*Q9i)U_?(w^I?sxCpnLEQDJG0qkv*+x2PWJizp3}sFEs6S&2%i!9 zT=qBsK$h_5TvXRABJy8YcaHE+K=Ix+vM_-02LH&O2=h~eQ(UU_^2JdDMSu*r0vt5a z#Ua@?%-3cGC{BvA1GMbW@B_^P3J#CgugU7C=$00(j@{&^2fGPRY6_mfuT#L{I*n!x zt!XOij4ZcnoUBLok+lt>;bkj;7{{{H983JbcAHCz*#FT#14Hy;fb!=SQ)Eo3xCN6`*6ba%Qm z$L{26Cnx<|n`{o}g(SBqb6Ahbur#n`%G{f3Hv%i7=V)m>{zsD#RpZ;Iq<`b&Q0$$2 zaY$Ub;=#e|!-N2J_;EW zTNy2le4HKFJ=lFN>h|vY`~XX1`>5-qgs_NgkrQ+^p6L%XpB&dp4zXX~tlbKrJ=AF< z*5q}VLFj06@a6wrY;TDf1~7j^w)Yr9mHw?!f@BYN6jO)rW*zzIbR{A8GEI#5q<$Ki z;C3>#?ovOr__pQdE}p09I?X z(lq_MwW)}Ln6m>~u2P4h?)UyjwJezPT>y)N(b$xpc4oat$YW=gk$3iG{<>9;CgJ}j z5m+@pfT@E{>>xUCe9jO-pBw+FIjqOipb6EYZZkeOF-d^GVP`SWKgh#}UICnS@yc^h zy8$rp(vMCJz%%3Nu$Jl8Mfm03{y}P#%!Sb(YxU@pY}{sEh05K3G6)t~1l_8{7txs3 z-Y)TJtnmGN>0y~P>1Qm6twYf{xQjo#6LSo~C{f&&W+A>B>_5iW8P=?mq5Z4>UVDwR?7n3P4}Z2CL- z$1qT~2F3iLb$d93P0^-#>c5%=Zcf^LQ1L&b5B0r2&RVRu#pHWGMuu1&biIB}?gRf4 z7{v#b*)&2~2+=Kt)X3|AL0F!PDIXv4p1YVyc!)?Q!P+~pv1J0y>`s@P;mJFS>FgJD z0Y+U-3454#G?$Cz6(1>|Y9pdxG&tUX{c5aLkYFn~j3u$ZNuN0sNRKD{7@dX?r$*-R zm9^OHapC*j_BfNzXQ#yzp5mG|%OETY2+SgA&T+$;T{#Pd-Z%R_mb2Ld3#3Hxc0FKxPQP z`0qEyLvd+}b&%-uG2dPH>oc?!s-_j@ouE=+0z`N9l>T5>0dx=ghj%IJ>|T5|I473C=tlZe2x9ovCCL$nzpwFZEQ zViJ6X>wtE0mc0X3Na=`uL`d8M-b&@K$ml-rFub+0I_AB<0%)7KVtrCq*C$o>#aP#@ zztJvZ_Fq)jh-B#riTs>bciJUZeF0g&iVdZSE-W^tp+L+Uj*qyrX97qY+z&;#mbneG zd;$HM58bH#bl21-lvoo^yUP=e-NC2%bh=N3pYGU2S-hZ(uK1wRC3yg^+*3{IzYYCw zO2cL5|4V707B*aJnKTqh2;Ak}o9RX!Nkl083}%^vdvNTx20M8JDc2%z(YcUE z=!?^S%bW)aVz;16 zpQAr_2*y$MMWu_!W1aL*?1AWG;jusA`p9`9_t!Rs5=ZvpE!qxA2{&hiR>weHAfmQv z*RA$e>IQ68k5FR0w03ZUU=?KLll?}eixPWK!FoS(pWmX4E;5qIDl-}^h?EC$pIyfX zQfsGy@U+)922<;~Sa(%F!)=PfUY!4>vtz;fN|tykzZFddnCLJUsV@lXT`8Wl-6G{? z2l4H}CxaBAqWqWxh4V_JHBCGoTCJ9~%jN$ZG~&OUvI|_Z2uuM%AD>jAHIfq8Dd;lu zqVeIE`&2`v66rY1MgM&CG;8FjhcH)O29IcsGQX7pa_9ATQtk5?GGHZHi*ICrA}uty zf(db;R4|bSQXPu~O&y}5XZqL&-}F;T-yp8q8AaVgf@yn5C=2ka7i+2|opf!zuaC@c z+Aq$&WVwWfh6Suk(uXH5Rc)Z9HQ9?vU;QVmNTi<9ZUL7`7k4m;VgY39#PLyC<2!>& z-6v1X(;PN&0vOK$4|$L9zinUf3P~!0mO(Pi>0;|WpF|f`S1b+-7h^Z{)KU#mj6?QY zuN1-0GINe)oU!tcK-0sOxSOh>a}4hkY;CjN1;lNI2zb;&? zMfmu-ilVb+a((1!lam@8IMd79+&p^UxsgZTika{Z+QzlnfBZ``y27qKnYE#YdgT`2 zM{{PHcNd2K++?4&Tv)VPowrkhUny4GxTG$zT{fBqQ8B0SaNj zn8VL!GwI}Uj^lHY*7JiUUGO3|R0aM-uT3LjAVSHX{w)tTcn|CAdc0)-0xlpAR|PY*k)pkz&r^CFc%E2$W!oEny>uZ-@5TDRfwtGZ`H9jt+I z@d?$dJm_2@teUMc~@4YoPJFk$v1aziLJozzspqk zi*TuVNQ`Tii;OIMdwces1ju@K1@#8H_qqw*y6w!zUj(#myP<-&IFl##ylgFPI9xXB zvM)07fQ4m|?!f{{$iQuW%Iuu{v7nG4_w_56Tg%?;d|k`$1dAM3j zBOab?NMxec(KonV?UKHMc#aXNsZ4RP!OvU-f?P#Z!h=T7O_Z0w2i@>X5SI*L>+T-3-`TlLx56L8cx9< zeWbA~3mtW6^z`keCBpzO!Et{d*aK?mR-EL>LpG10n<8Y&EVAQaYk}}ZL+~Ho>FA=hvI5s z0u&n4sd~bqe(i>kkl6D(^hQR;t1D~Na&K`sWMaH{>$tyhK!e5eg=m;R603RGZZyX7 zJnGV1KR!Kajg_v3hySPLaM8@>c%FdK$2-iExPGe%G;4Bm-}ad9mOw-+ePVLx_W0q} zVE$IX#d|I3IulcMk~-A3xq;(GgSbNiH^;-DNw;{YeTlEyz!g-`f0qNWtw~uceQvW6 zz&6ziOw!N`+LFslclqk?(T|udVbHJJ2>#kaJ{|o9=)HGoUC8nR|$cBeiJ zJXwn8!%mhyu^Zb7K)P7ZSNR{*3YZ7@oF04*xxVVaIKLrf-4WBW*u^R)4tr^jqow?c zD6`6LZ0zs3k}*$>;;ErwI*vMu%n5(pSe|cfHaE$pNK<@DDc1m{3*Ks6xqXO^<;1S9 zixB1-dwbd?z3zBkT~OATmSWe`)bIav;QWk)P4Mu%qBi3drN~g5lHWp*@7~tnpfWEn z4i(#=BKkteGfnf%%Kf1pJ3kC{Vd=hCdG&gBcdn1GxCAspP3@Mywp6NGNXUK_e$LI1 zlXLS!RIjG;(RfcPY|IgV9ckyiHSu&zk&x?2mz|RxX>U*N_l>H#xjkRs{!d>rx}OQ< z`uHEtx#`Nu)1fU~pxPY=l| zT9>_T(5Gw?vON1Y$k>BHhrws$-xrlkqN9{${hA+@5vhG8<%9+_{r+BG7M$zVY1Gi!O_5gn20JVdE-;_l3uGSLq=UC+ts(^*Qb5C@9`EC7jNbe zKEx|c?;w7mx55-}^nXj9DPJ&8T$rL)bMDV9n_TXzmQ+`qV#uqSzBru0atdEl%O__X z>1KK4B~(+Ww*KJcCW|@=)u)65MoGP$p@MReoHo+UM$R#n0aH;?uGlec#Hk!in}Lym zgpDayW;sn4HeHN1ykyCGvON`XZF_ixM()VVs~<*>GeMBD9j>k4V&qHfIR^^{@rh_S zMM|-Z4C*Nvj`S>wlUJ*9P{%uo2|_f$>gp$EG;)57j9nLf?VJN~zkbEMAxMI7bbaqE z;7%4Gy8-T5dEn)_a8HkQO6nqxhrF&$M1&%lxD1Dh%_L72b}s9q?yn7DBD)cnGR zCT*;pXfVTY^`_iE)TuHu^;jEh_(+-KlHDJ!Gq`X~Ro=A3H4M4G67|^I zO(CK11OH;IiJk8g~ zMp&^|m~x}RUR5QfUG^)cHconw?SYzYhwC#CNRk3tDe9Qu$+y4dABBgP8%Fr!@l@vK z{DeW+5>pjsOCfrc6ytN>(TM=CO47lJR9ZaeCa;WmJf&Q>tTy&qME63+4PyC&?;iZ3 zvDQ{1&qhn>U>c9^P5EnSSy<>i75=M*WG(OPd&q~2i+T~lyXCCBuvAvBO)HVaEN13a z2aK_CA~gfUUD^kxHO`0ip8L8Pl4|<;@tx2l?`vT%yt8f+I|03b-ObG;O)CEgKZ4qr zxU)Dv;L=VxhBqLYVR${;2>KobqOpiSULH|ZttPsb4*TotRC7@GtSL6&_@&=T(CJ~; zO_n(1Wo2dA*r$)rpf4#g-rIqsq<*mH)y%d+1+8;)?#o|XvK6?s6i-hy(;n@CK;!uL zuc47oxThwmEQ*iLj@3;oUK8e>9&b{TfDZgNlI2_%d9m~Jr);#cWOl|xMTz2jm&59G zkczd{{-uaQsVIb0rJ60azB4W>6Foo2$6d|n-&?k(dyt}BOh7|6d4B#ufS-hIb7**Y z_;&B|xO&pU+WP6j&V1JDYBB+V)lF99Q156-VWIAr;vNCzhk0Y;2j=F3=y>Uu$u~Z- zio%l8nqV9p^Sd_CP|<*iKXqcn)U zDoV1yq}*;B!yg`Q>HaXZ+NC!v5?WUJS&)*Sgj^pdvNrRL*A)_0&IYFWsSrmD(f z*Jmq0I=17dmfFC2pS*J=$rUDu?7A@hjZby%W^n>U2@LxO<8GKHmF=Q&f1d?$F-p0D zRx7!%NRw6mI+b_+w#VRl~9(ziRm`rm>QP@YZrc0Wu1Uea9e9uGmKwcQdB5 zdM5f~a58p#s{?BzOFhe&z2kmVq^no%*a4cR>PwlqRw045(i^V>{QA1PyKZyy{B42$ zz9D8|WW(miBB^HybkfoP%lAb342H$cxBN?A-`JAOI9YJ``zB#s=?t`xQcB@ER}(JD=5u z4!tWmAeLWlWeX7zXE6V^AvV8%1MCB4lbw^3{uuEUKvMisl>jsWX>c7h7Rlvwe+9M& z7v4KPt4fu8e9jIMi(eVx_o~H$ZuSr9GrNE@fe)A{XlZHLFiu<{a0<$)fIwUxYLLm& zM~7&#HP$gxQT0{DgG(~BEHmOA_jm^hrZNV{tnfQR5jM%rRIebCX3NqrDgYUVB_<|z zLO+A=2+rAx!L-BJfIy1fK;6Q4C(2h~TeeWoz@We}=wFXq1eFna$M1sg_UBeO dI_ixrU6Ol68dn$H#()n)R1`GfC34T+{0m@CuFwDg literal 58146 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 img ); + + double spc[3]; + img->GetSpacing(spc); + + int dim[3]; + int ext[6]; + img->GetWholeExtent(ext); + dim[0] = ext[1]-ext[0]; + dim[1] = ext[3]-ext[2]; + dim[2] = ext[5]-ext[4]; + _sl_SliceImage->SetRange( 0 , dim[2] ); + + if ( (spc[0]!=_spcBase[0]) || (spc[1]!=_spcBase[1]) || (spc[2]!=_spcBase[2]) || + (dim[0]!=_dimBase[0]) || (spc[1]!=_spcBase[1]) || (spc[2]!=_spcBase[2]) + ) + { + + bool transformOkDlg; + int typeOfTransformation; + wxString msg = _T("The image resolution of both images are not compatible. Do you want to tranform it? "); + wxDlgTransformByDimensionBySpacingByPixel dlg; + dlg.GetTransformType(this,msg,typeOfTransformation,transformOkDlg); + + printf("EED ColorLayerImageViewPanel::onReadImage call dialog spc size,dim...???\n"); + + if (typeOfTransformation==0) // make dimensions equals + { + printf("EED ColorLayerImageViewPanel::onReadImage ...WARNNING.... dif size image spc*dim ofnew image ...???\n"); + spc[0]=_spcBase[0]*_dimBase[0]/dim[0]; + spc[1]=_spcBase[1]*_dimBase[1]/dim[1]; + spc[2] = 1; + } + + if (typeOfTransformation==1) // make spacing equals + { + spc[0] = ( _spcBase[0]/spc[0] ) * _spcOrg[0]; + spc[1] = ( _spcBase[1]/spc[1] ) * _spcOrg[1]; + spc[2] = ( _spcBase[2]/spc[2] ) * _spcOrg[2]; + } + + if (typeOfTransformation==2) // make spacing = 1 + { + spc[0] = 1; + spc[1] = 1; + spc[2] = 1; + } + + img->SetSpacing(spc); + } // spc !_spcBase dim!__dimBase + + if (_colorLayerImageView!=NULL) + { + _colorLayerImageView->onThreshold(); + _colorLayerImageView->Refresh(); + } + + + } +} + //---------------------------------------------------------------------------- void ColorLayerImageViewPanel::onReadImage(wxCommandEvent& event) { @@ -181,62 +247,7 @@ void ColorLayerImageViewPanel::onReadImage(wxCommandEvent& event) printf("EED ColorLayerImageViewPanel::onReadImage ....WARNING... Read dlg. all images creaImageIO ... ???\n"); creaMaracasVisuKernel::OpenImageDialog diag = creaMaracasVisuKernel::OpenImageDialog(); - _colorLayerImageView->SetImage( diag.getImageData() ); - - double spc[3]; - diag.getImageData()->GetSpacing(spc); - - int dim[3]; - int ext[6]; - diag.getImageData()->GetWholeExtent(ext); - dim[0] = ext[1]-ext[0]; - dim[1] = ext[3]-ext[2]; - dim[2] = ext[5]-ext[4]; - _sl_SliceImage->SetRange( 0 , dim[2] ); - - if ( (spc[0]!=_spcBase[0]) || (spc[1]!=_spcBase[1]) || (spc[2]!=_spcBase[2]) || - (dim[0]!=_dimBase[0]) || (spc[1]!=_spcBase[1]) || (spc[2]!=_spcBase[2]) - ) - { - - bool transformOkDlg; - int typeOfTransformation; - wxString msg = _T("The image resolution of both images are not compatible. Do you want to tranform it? "); - wxDlgTransformByDimensionBySpacingByPixel dlg; - dlg.GetTransformType(this,msg,typeOfTransformation,transformOkDlg); - -printf("EED ColorLayerImageViewPanel::onReadImage call dialog spc size,dim...???\n"); - - if (typeOfTransformation==0) // make dimensions equals - { - printf("EED ColorLayerImageViewPanel::onReadImage ...WARNNING.... dif size image spc*dim ofnew image ...???\n"); - spc[0]=_spcBase[0]*_dimBase[0]/dim[0]; - spc[1]=_spcBase[1]*_dimBase[1]/dim[1]; - spc[2] = 1; - } - - if (typeOfTransformation==1) // make spacing equals - { - spc[0] = ( _spcBase[0]/spc[0] ) * _spcOrg[0]; - spc[1] = ( _spcBase[1]/spc[1] ) * _spcOrg[1]; - spc[2] = ( _spcBase[2]/spc[2] ) * _spcOrg[2]; - } - - if (typeOfTransformation==2) // make spacing = 1 - { - spc[0] = 1; - spc[1] = 1; - spc[2] = 1; - } - - diag.getImageData()->SetSpacing(spc); - } // spc !_spcBase dim!__dimBase - - if (_colorLayerImageView!=NULL) - { - _colorLayerImageView->onThreshold(); - _colorLayerImageView->Refresh(); - } + SetImage( diag.getImageData() ); } //---------------------------------------------------------------------------- diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageViewPanel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageViewPanel.h index 03cff54..1912199 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageViewPanel.h +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageViewPanel.h @@ -43,6 +43,7 @@ class wxDlgTransformByDimensionBySpacingByPixel void SetBaseSpacing(double spc[3]); void SetBaseDimension(int dim[3]); void SetOriginalSpacing(double spc[3]); + void SetImage(vtkImageData *img); private: int _dimBase[3]; diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/LayerImageBase.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/LayerImageBase.cxx index beb17ea..ee8a7fc 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/LayerImageBase.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/LayerImageBase.cxx @@ -144,8 +144,8 @@ void LayerImageBase::onThreshold() _imageReslicer->SetResliceAxesOrigin(0,0,z); vtkImageData *img = _imageReslicer->GetOutput(); - img->Update(); - img->UpdateInformation(); +// img->Update(); +// img->UpdateInformation(); _thresholdMapper->SetInput( img ); _thresholdMapper->SetLookupTable( _thresholdTable ); diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.cpp new file mode 100644 index 0000000..6cab077 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.cpp @@ -0,0 +1,61 @@ + +#include "ManualPaintControler.h" +#include "vtkInteractorManualPaint.h" +#include "wxVtk2DBaseView.h" +#include "vtkImageActor.h" + +//--------------------------------------------------------------------------- +ManualPaintControler::ManualPaintControler() +{ + auxZ=0; +} + +//--------------------------------------------------------------------------- +ManualPaintControler::~ManualPaintControler() +{ +} + +//--------------------------------------------------------------------------- +void ManualPaintControler::SetManualPaintModel(ManualPaintModel* manualPaintModel) +{ + _manualPaintModel = manualPaintModel; +} + +//--------------------------------------------------------------------------- +void ManualPaintControler::SetManualPaintPanel(ManualPaintPanel* manualPaintPanel) +{ + _manualPaintPanel = manualPaintPanel; +} + +//--------------------------------------------------------------------------- +void ManualPaintControler::SetWxVtkBaseView(wxVtkBaseView *baseview) +{ + _wxvtkbaseview = baseview; +} + +//--------------------------------------------------------------------------- +void ManualPaintControler::Config() +{ + vtkInteractorManualPaint *imp = new vtkInteractorManualPaint(this); + vtkInteractorStyleBaseView *isbv = (vtkInteractorStyleBaseView*)(_wxvtkbaseview->GetInteractorStyleBaseView()); + isbv->AddInteractorStyleMaracas(imp); +} + + + +//--------------------------------------------------------------------------- +void ManualPaintControler::PaintImage(int px,int py, int pz) +{ + _manualPaintModel->PaintImage(px,py,pz); + RefreshView(); +} + +//--------------------------------------------------------------------------- +void ManualPaintControler::RefreshView() +{ + wxVtk2DBaseView *wxvtk2Dbaseview = (wxVtk2DBaseView*)_wxvtkbaseview; + vtkImageViewer2 *vtkimageviewer2 = wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2(); + vtkimageviewer2->GetWindowLevel()->Modified(); + +} + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.h new file mode 100644 index 0000000..66c8d9e --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintControler.h @@ -0,0 +1,33 @@ +#ifndef _MANUAL_PAINT_CONTROLER_H_ +#define _MANUAL_PAINT_CONTROLER_H_ + +#include "ManualPaintModel.h" +#include "ManualPaintPanel.h" +#include "wxVtkBaseView.h" + + +class ManualPaintControler { +public: + ManualPaintControler(); + virtual ~ManualPaintControler(); + + void SetManualPaintModel(ManualPaintModel* manualPaintModel); + void SetManualPaintPanel(ManualPaintPanel* manualPaintPanel); + void SetWxVtkBaseView(wxVtkBaseView *baseview); + void Config(); + void PaintImage(int px,int py, int pz); + +private: + int auxZ; + ManualPaintModel *_manualPaintModel; + ManualPaintPanel *_manualPaintPanel; + wxVtkBaseView *_wxvtkbaseview; + + void RefreshView(); + +protected: + +}; + + +#endif // _MANUAL_PAINT_CONTROLER_H_ diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp new file mode 100644 index 0000000..a9a84e0 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.cpp @@ -0,0 +1,68 @@ + +#include "ManualPaintModel.h" + + +ManualPaintModel::ManualPaintModel() +{ + _graylevel=0.0; + _brushsize=1; +} + +//--------------------------------------------------------------------------- +ManualPaintModel::~ManualPaintModel() +{ +} + +void ManualPaintModel::SetImage(vtkImageData *image) +{ + _image=image; +} + +void ManualPaintModel::PaintImage(int px,int py, int pz) +{ + if (_image!=NULL) + { + float value=(float)_graylevel; + int i,j,k; + int size = _brushsize-1; + int minX=px-size; + int maxX=px+size; + int minY=py-size; + int maxY=py+size; + int minZ=pz-size; + int maxZ=pz+size; + + for (i=minX; i<=maxX; i++) + { + for (j=minY; j<=maxY; j++) + { + for (k=minZ; k<=maxZ; k++) + { + _image->SetScalarComponentFromFloat (i,j,k, 0, value ); + } + } + } + _image->Modified(); + _image->UpdateInformation(); + _image->Update(); + _image->UpdateData(); + } else { + printf("ERROR : bbcreaMaracasvisu::vtkInteractorManualPaint::PaintImage : Image not set. \n"); + } +} + + +//--------------------------------------------------------------------------- +void ManualPaintModel::SetBrushSize( int brushsize ) +{ + printf("EED %p ManualPaintModel::SetBrushSize \n", this); + _brushsize = brushsize; +} + +//--------------------------------------------------------------------------- +void ManualPaintModel::SetGrayLevel( double graylevel ) +{ + printf("EED %p ManualPaintModel::SetGrayLevel \n", this); + _graylevel = graylevel; +} + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.h new file mode 100644 index 0000000..2be8224 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintModel.h @@ -0,0 +1,30 @@ +#ifndef _MANUAL_PAINT_MODEL_H_ +#define _MANUAL_PAINT_MODEL_H_ + +#include + + +class ManualPaintModel { +public: + ManualPaintModel(); + virtual ~ManualPaintModel(); + + void SetImage(vtkImageData *image); + void PaintImage(int px,int py, int pz); + void SetBrushSize( int brushsize ); + void SetGrayLevel( double graylevel ); + + + +private: + vtkImageData *_image; + int _brushsize; + double _graylevel; + + +protected: + +}; + + +#endif // _MANUAL_PAINT_MODEL_H_ diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintPanel.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintPanel.cpp new file mode 100644 index 0000000..78114cc --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintPanel.cpp @@ -0,0 +1,45 @@ + +#include "ManualPaintPanel.h" + + +ManualPaintPanel::ManualPaintPanel() +{ + _manualPaintModel=NULL; +} + +//--------------------------------------------------------------------------- +ManualPaintPanel::~ManualPaintPanel() +{ +} + +//--------------------------------------------------------------------------- +void ManualPaintPanel::SetManualPaintModel(ManualPaintModel* manualPaintModel) +{ + printf("EED %p ManualPaintPanel::SetManualPaintModel manualPaintModel=%p\n", this, manualPaintModel); + _manualPaintModel = manualPaintModel; +} + + +//--------------------------------------------------------------------------- +void ManualPaintPanel::SetBrushSize( int brushsize ) +{ + printf("EED %p ManualPaintPanel::SetBrushSize manualPaintModel=%p\n", this, _manualPaintModel); + if (_manualPaintModel!=NULL) + { + _manualPaintModel->SetBrushSize( brushsize ); + } else { + printf("ERROR in ManualPaintPanel _manualPaintModel not set.\n"); + } +} + +//--------------------------------------------------------------------------- +void ManualPaintPanel::SetGrayLevel( double graylevel ) +{ + if (_manualPaintModel!=NULL) + { + _manualPaintModel->SetGrayLevel( graylevel ); + } else { + printf("ERROR in ManualPaintPanel _manualPaintModel not set.\n"); + } +} + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintPanel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintPanel.h new file mode 100644 index 0000000..07e5dfa --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/ManualPaintPanel.h @@ -0,0 +1,24 @@ +#ifndef _MANUAL_PAINT_PANEL_H_ +#define _MANUAL_PAINT_PANEL_H_ + +#include "ManualPaintModel.h" + +class ManualPaintPanel { +public: + ManualPaintPanel(); + virtual ~ManualPaintPanel(); + + void SetManualPaintModel(ManualPaintModel* manualPaintModel); + void SetBrushSize( int brushsize ); + void SetGrayLevel( double graylevel ); + + +private: + ManualPaintModel *_manualPaintModel; + +protected: + +}; + + +#endif // _MANUAL_PAINT_PANEL_H_ diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/vtkInteractorManualPaint.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/vtkInteractorManualPaint.cpp new file mode 100644 index 0000000..0a9a18f --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/vtkInteractorManualPaint.cpp @@ -0,0 +1,76 @@ + +#include "vtkInteractorManualPaint.h" + + +#include "wxVtk2DBaseView.h" +#include "wxVTKRenderWindowInteractor.h" + + +vtkInteractorManualPaint::vtkInteractorManualPaint(ManualPaintControler* mpc) +{ + _manualPaintControler = mpc; + _state = false; +// _auxZ = 0; +} + +//--------------------------------------------------------------------------- +vtkInteractorManualPaint::~vtkInteractorManualPaint() +{ +} + +//--------------------------------------------------------------------------- +bool vtkInteractorManualPaint::OnLeftButtonDown() +{ + vtkRenderWindowInteractor *interactor = _vtkInteractorStyleBaseView->GetInteractor(); + if ( interactor->GetControlKey()==1 ){ + _state = true; +// wxVtk2DBaseView *wxvtk2Dbaseview = (wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView(); +// _Z = wxvtk2Dbaseview->GetActualSlice(); + } + return true; +} + +//--------------------------------------------------------------------------- +bool vtkInteractorManualPaint::OnLeftButtonUp() +{ + _state = false; + return true; +} + +//--------------------------------------------------------------------------- +bool vtkInteractorManualPaint::OnMouseMove () +{ + if (_state==true) + { + wxVtk2DBaseView *wxvtk2Dbaseview = (wxVtk2DBaseView*)_vtkInteractorStyleBaseView->GetWxVtk2DBaseView(); + wxVTKRenderWindowInteractor *wxVTKiren = wxvtk2Dbaseview->GetWxVTKRenderWindowInteractor(); + int px,py; + wxVTKiren->GetEventPosition(px,py); + + int typeView = 2; + double X = (double)px; + double Y = (double)py; + double Z = wxvtk2Dbaseview->GetActualSlice(); + wxvtk2Dbaseview->TransFromCoordScreenToWorld(X, Y, Z,false, typeView); + +// int px = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[0]; +// int py = _vtkInteractorStyleBaseView->GetInteractor()->GetEventPosition()[1]; + + _manualPaintControler->PaintImage((int)X,(int)Y,(int)Z); + +/* + wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2()->Modified(); + wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2()->GetImageActor()->Modified(); + wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2()->GetImageActor()->SetDisplayExtent(0, 50+_auxZ, 0, 50,_Z, _Z ); + wxvtk2Dbaseview->Refresh(); + wxvtk2Dbaseview->RefreshView(); +// wxvtk2Dbaseview->SetActualSlice(_Z+_auxZ); + _auxZ=(_auxZ+1)%2; + wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->Render(); + this->_vtkInteractorStyleBaseView->SetParent_refresh_waiting(); +*/ + }// if _state + return true; +} + + diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/vtkInteractorManualPaint.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/vtkInteractorManualPaint.h new file mode 100644 index 0000000..c52d03f --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/vtkInteractorManualPaint.h @@ -0,0 +1,25 @@ +#ifndef _VTK_INTERACTOR_MANUAL_PAINT_H_ +#define _VTK_INTERACTOR_MANUAL_PAINT_H_ + +#include "InteractorStyleMaracas.h" +#include "ManualPaintControler.h" + +class vtkInteractorManualPaint : public InteractorStyleMaracas { +public: + vtkInteractorManualPaint(ManualPaintControler* mpc); + virtual ~vtkInteractorManualPaint(); + + virtual bool OnMouseMove(); + virtual bool OnLeftButtonDown(); + virtual bool OnLeftButtonUp(); + +private: + bool _state; + ManualPaintControler *_manualPaintControler; + +protected: + +}; + + +#endif // _VTK_INTERACTOR_MANUAL_PAINT_H_ diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp new file mode 100644 index 0000000..40dcd5f --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.cpp @@ -0,0 +1,142 @@ + +#include "wxManualPaintPanel.h" +#include + +wxManualPaintPanel::wxManualPaintPanel(wxWindow * parent) + : wxPanel(parent, -1) +{ + + wxPanel *panel = this; + wxSizer *sizer = NULL; + + // Widget interface + wxStaticText *tittleText = new wxStaticText(panel, -1, _T(" Manual Paint")); + wxStaticText *txtBrushSize = new wxStaticText(panel, -1, wxString(_T(" Brush size "))); + sldBrushSize = new wxSlider(panel, -1, 1, 1, 20, wxDefaultPosition, wxDefaultSize, wxSL_LABELS); + wxStaticText *txtGrayLevel = new wxStaticText(panel, -1, wxString(_T(" Gray Level "))); + sldGrayLevel = new wxSlider(panel, -1, 0, 0, 50, wxDefaultPosition, wxDefaultSize, wxSL_LABELS); + graylevelCtrl = new wxTextCtrl(panel , -1); + + wxString lst2D3D[2]; + lst2D3D[0]=_T("2D circle"); + lst2D3D[1]=_T("3D sphere"); + wxRadioBox * rb2D3D = new wxRadioBox(panel, -1, _T("2D / 3D"), wxDefaultPosition, wxSize(270,45), 2 , lst2D3D, 2, wxRA_SPECIFY_COLS); + rb2D3D->SetSelection(1); + rb2D3D->Disable(); + + wxString lstBrushForm[2]; + lstBrushForm[0]=_T("rectangle/cube"); + lstBrushForm[1]=_T("circle/sphere"); + wxRadioBox * rbBrushForm = new wxRadioBox(panel, -1, _T("Brush form"), wxDefaultPosition, wxSize(270,45), 2 , lstBrushForm, 2, wxRA_SPECIFY_COLS); + rbBrushForm->Disable(); + + wxString lstBrushTool[2]; + lstBrushTool[0]=_T("Pensil"); + lstBrushTool[1]=_T("Fill"); + wxRadioBox *rbBrushTool = new wxRadioBox(panel, -1, _T("Brush tool"), wxDefaultPosition, wxSize(270,45), 2 , lstBrushTool, 2, wxRA_SPECIFY_COLS); + rbBrushTool->Disable(); + + wxButton *btnCopy = new wxButton( panel, -1, _T("Copy")); + btnCopy->Disable(); + wxButton *btnUndo = new wxButton( panel, -1, _T("Undo")); + btnUndo->Disable(); + + Connect(sldBrushSize->GetId() , wxEVT_SCROLL_THUMBRELEASE , (wxObjectEventFunction) &wxManualPaintPanel::OnBrushSize); + Connect(sldGrayLevel->GetId() , wxEVT_SCROLL_THUMBRELEASE , (wxObjectEventFunction) &wxManualPaintPanel::OnSldGrayLevel); + Connect(graylevelCtrl->GetId() , wxEVT_COMMAND_TEXT_UPDATED , (wxObjectEventFunction) &wxManualPaintPanel::OnCtrTxtGrayLevel); + + Connect(rb2D3D->GetId() , wxEVT_COMMAND_RADIOBOX_SELECTED , (wxObjectEventFunction) &wxManualPaintPanel::On2D3D); + Connect(rbBrushForm->GetId() , wxEVT_COMMAND_RADIOBOX_SELECTED , (wxObjectEventFunction) &wxManualPaintPanel::OnBrushForm); + Connect(rbBrushTool->GetId() , wxEVT_COMMAND_RADIOBOX_SELECTED , (wxObjectEventFunction) &wxManualPaintPanel::OnBrushTool); + Connect(btnCopy->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxManualPaintPanel::OnCopy); + Connect(btnUndo->GetId() , wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &wxManualPaintPanel::OnUndo); + + wxFlexGridSizer *sizer1 = new wxFlexGridSizer(1); + sizer1->Add(new wxStaticText(panel,-1,_T(" "))); + sizer1->Add(tittleText); + sizer1->Add(new wxStaticText(panel,-1,_T(" "))); + sizer1->Add(txtBrushSize); + sizer1->Add(sldBrushSize, 1, wxGROW ); + sizer1->Add(new wxStaticText(panel,-1,_T(" "))); + sizer1->Add(txtGrayLevel); + sizer1->Add(sldGrayLevel, 1, wxGROW ); + sizer1->Add(graylevelCtrl); + sizer1->Add(new wxStaticText(panel,-1,_T(" "))); + sizer1->Add(rb2D3D, 1, wxGROW ); + sizer1->Add(new wxStaticText(panel,-1,_T(" "))); + sizer1->Add(rbBrushForm, 1, wxGROW ); + sizer1->Add(new wxStaticText(panel,-1,_T(" "))); + sizer1->Add(rbBrushTool, 1, wxGROW ); + sizer1->Add(new wxStaticText(panel,-1,_T(" "))); + sizer1->Add(btnCopy, 1, wxGROW ); + sizer1->Add(new wxStaticText(panel,-1,_T(" "))); + sizer1->Add(btnUndo, 1, wxGROW ); + + sizer = sizer1; + panel->SetSizer(sizer); + panel->SetAutoLayout(true); + panel->Layout(); +} + +//--------------------------------------------------------------------------- +wxManualPaintPanel::~wxManualPaintPanel() +{ +} + +//--------------------------------------------------------------------------- +void wxManualPaintPanel::OnBrushSize(wxScrollEvent& event) +{ + printf("EED %p wxManualPaintPanel::OnBrushSize\n", this); + SetBrushSize( sldBrushSize->GetValue() ); +} + +//--------------------------------------------------------------------------- +void wxManualPaintPanel::OnSldGrayLevel(wxScrollEvent& event) +{ + printf("EED %p wxManualPaintPanel::OnGrayLevel\n", this); + SetGrayLevel( (double)(sldGrayLevel->GetValue()) ); + + wxString text; + text.Printf( wxT("%d"), sldGrayLevel->GetValue() ); + graylevelCtrl->SetValue(text); +} + +//--------------------------------------------------------------------------- +void wxManualPaintPanel::OnCtrTxtGrayLevel(wxCommandEvent &event) +{ + printf("EED %p wxManualPaintPanel::OnCtrTxtGrayLevel\n", this); + + double graylevel; + wxString text=graylevelCtrl->GetValue(); + if (text.ToDouble(&graylevel)) + { + SetGrayLevel( graylevel ); + } +} + + + +//--------------------------------------------------------------------------- +void wxManualPaintPanel::On2D3D(wxCommandEvent &event) +{ +} + +//--------------------------------------------------------------------------- +void wxManualPaintPanel::OnBrushForm(wxCommandEvent &event) +{ +} + +//--------------------------------------------------------------------------- +void wxManualPaintPanel::OnBrushTool(wxCommandEvent &event) +{ +} + +//--------------------------------------------------------------------------- +void wxManualPaintPanel::OnCopy(wxCommandEvent &event) +{ +} + +//--------------------------------------------------------------------------- +void wxManualPaintPanel::OnUndo(wxCommandEvent &event) +{ +} diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.h b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.h new file mode 100644 index 0000000..0a175e4 --- /dev/null +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/wxManualPaintPanel.h @@ -0,0 +1,32 @@ +#ifndef _WX_MANUAL_PAINT_PANEL_H_ +#define _WX_MANUAL_PAINT_PANEL_H_ + +#include "ManualPaintPanel.h" +#include +#include + +class wxManualPaintPanel : public wxPanel , public ManualPaintPanel { +public: + wxManualPaintPanel(wxWindow * parent); + virtual ~wxManualPaintPanel(); + void OnBrushSize(wxScrollEvent& event); + void OnSldGrayLevel(wxScrollEvent& event); + void OnCtrTxtGrayLevel(wxCommandEvent &event); + void On2D3D(wxCommandEvent &event); + void OnBrushForm(wxCommandEvent &event); + void OnBrushTool(wxCommandEvent &event); + void OnCopy(wxCommandEvent &event); + void OnUndo(wxCommandEvent &event); + + +private: + wxSlider *sldBrushSize; + wxSlider *sldGrayLevel; + wxTextCtrl *graylevelCtrl; + +protected: + +}; + + +#endif // _WX_MANUAL_PAINT_PANEL_H_ -- 2.45.2