diff options
Diffstat (limited to 'modules/CIAO/examples')
195 files changed, 19323 insertions, 0 deletions
diff --git a/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED.idl b/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED.idl new file mode 100644 index 00000000000..9ea963189fd --- /dev/null +++ b/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED.idl @@ -0,0 +1,24 @@ +//$Id$ + +#ifndef BMCLOSEDED_IDL +#define BMCLOSEDED_IDL + +#include "BasicSP.idl" +#include "BasicSPE.idl" + +module BasicSP +{ + component BMClosedED + { + provides ReadData dataout; + uses ReadData datain; + publishes DataAvailable out_avail; + consumes DataAvailable in_avail; + }; + + home BMClosedEDHome manages BMClosedED + { + }; +}; + +#endif /* BMCLOSEDED_IDL */ diff --git a/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED.mpc b/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED.mpc new file mode 100644 index 00000000000..4805a2137bd --- /dev/null +++ b/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED.mpc @@ -0,0 +1,114 @@ +// $Id$ + +project(BMClosedED_idl_gen) : componentidldefaults { + custom_only = 1 + after += BasicSP_idl_gen + idlflags += -I $(CIAO_ROOT)/examples/BasicSP \ + -Wb,stub_export_macro=BMCLOSEDED_STUB_Export \ + -Wb,stub_export_include=BMClosedED_stub_export.h \ + -Wb,skel_export_macro=BMCLOSEDED_SVNT_Export \ + -Wb,skel_export_include=BMClosedED_svnt_export.h \ + -Wb,exec_export_macro=BMCLOSEDED_EXEC_Export \ + -Wb,exec_export_include=BMClosedED_exec_export.h \ + + IDL_Files { + BMClosedED.idl + } +} + +project(BMClosedED_lem_gen) : ciaoidldefaults { + after += BMClosedED_idl_gen + custom_only = 1 + idlflags += -Wb,export_macro=BMCLOSEDED_EXEC_Export \ + -Wb,export_include=BMClosedED_exec_export.h \ + -SS -I $(CIAO_ROOT)/examples/BasicSP + + IDL_Files { + BMClosedEDE.idl + } +} + +project(BMClosedED_stub): ccm_stub { + libout = ../lib + libpaths += ../lib + after += BasicSP_stub BasicSP_lem_gen BMClosedED_idl_gen + sharedname = BMClosedED_stub + includes += $(CIAO_ROOT)/examples/BasicSP + libs += BasicSP_stub + dynamicflags = BMCLOSEDED_STUB_BUILD_DLL + + IDL_Files { + } + + Header_Files { + BMClosedEDC.h + } + + Source_Files { + BMClosedEDC.cpp + } + + Inline_Files { + } +} + +project(BMClosedED_exec) : ciao_executor { + after += BMClosedED_stub BMClosedED_lem_gen BasicSP_exec + sharedname = BMClosedED_exec + libs += BMClosedED_stub + libs += BasicSP_stub BasicSP_exec + includes += $(CIAO_ROOT)/examples/BasicSP + libout = ../lib + libpaths += ../lib + + dynamicflags = BMCLOSEDED_EXEC_BUILD_DLL + + IDL_Files { + } + + Header_Files { + BMClosedED_exec.h + BMClosedED_exec_export.h + BMClosedEDEC.h + } + + Source_Files { + BMClosedED_exec.cpp + BMClosedEDEC.cpp + } + + Inline_Files { + } +} + +project(BMClosedED_svnt) : ciao_servant { + after += BasicSP_svnt BMClosedED_exec BasicSP_exec + + includes += $(CIAO_ROOT)/examples/BasicSP + + sharedname = BMClosedED_svnt + + libs += BMClosedED_stub BMClosedED_exec BasicSP_exec + libs += BasicSP_stub BasicSP_svnt + libout = ../lib + libpaths += ../lib + + dynamicflags = BMCLOSEDED_SVNT_BUILD_DLL + + IDL_Files { + } + + Header_Files { + BMClosedED_svnt.h + BMClosedEDS.h + } + + Source_Files { + BMClosedED_svnt.cpp + BMClosedEDS.cpp + } + + Inline_Files { + } +} + diff --git a/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED_exec.cpp b/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED_exec.cpp new file mode 100644 index 00000000000..9b3808d8ce4 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED_exec.cpp @@ -0,0 +1,193 @@ +// $Id$ + +#include "ace/SString.h" +#include "ace/OS_NS_string.h" +#include "BMClosedED_exec.h" + +#define DISPLACEMENT 256 + +MyImpl::ReadData_Impl::ReadData_Impl (const char* name) + : str_ (name) +{ +} + +MyImpl::ReadData_Impl::~ReadData_Impl (void) +{ +} + +void +MyImpl::ReadData_Impl::set_name (const char* name) +{ + this->str_ = name; +} + +char * +MyImpl::ReadData_Impl::get_data (void) +{ + return CORBA::string_dup (this->str_.in()); +} + +//================================================= + +/// Default constructor. +MyImpl::BMClosedED_exec_i::BMClosedED_exec_i (void) + : dataout_ (new ReadData_Impl("")) +{ +} + +/// Default destructor. +MyImpl::BMClosedED_exec_i::~BMClosedED_exec_i (void) +{ + delete this->dataout_; +} + +// Operations from HUDisplay::BMClosedED + +BasicSP::CCM_ReadData_ptr +MyImpl::BMClosedED_exec_i::get_dataout (void) +{ + return BasicSP::CCM_ReadData::_duplicate (this->dataout_); +} + +void +MyImpl::BMClosedED_exec_i::push_in_avail (BasicSP::DataAvailable *) +{ + + ACE_DEBUG ((LM_EMERGENCY, + "BMClosedED - Doing computations\n")); + + ACE_DEBUG ((LM_EMERGENCY, + "BMClosedED - Doing data fetch\n")); + + // Refresh position + BasicSP::ReadData_var dat + = this->context_->get_connection_datain (); + + if (CORBA::is_nil (dat.in ())) + { + ACE_DEBUG ((LM_EMERGENCY, + "BMClosedED - got nil from get_connection\n")); + + throw CORBA::BAD_INV_ORDER (); + } + + CORBA::String_var str = + dat->get_data (); + + ACE_DEBUG ((LM_EMERGENCY, + "BMClosedED - Display data is [%s]\n", + str.in ())); + + if (ACE_OS::strcmp (str.in (), "BM DEVICE DATA") == 0) + { + this->dataout_->set_name ("BM CLOSED ED DATA"); + } + + // Notify others. + BasicSP::DataAvailable_var event = + new OBV_BasicSP::DataAvailable; + + this->context_->push_out_avail (event); +} + +// Operations from Components::SessionComponent +void +MyImpl::BMClosedED_exec_i::set_session_context ( + Components::SessionContext_ptr ctx + ) +{ + ACE_DEBUG ((LM_EMERGENCY, + "MyImpl::BMClosedED_exec_i::set_session_context\n")); + + this->context_ = + BasicSP::CCM_BMClosedED_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + { + throw CORBA::INTERNAL (); + } + // Urm, we actually discard exceptions thown from this operation. +} + +void +MyImpl::BMClosedED_exec_i::configuration_complete (void) +{ +} + +void +MyImpl::BMClosedED_exec_i::ccm_activate (void) +{ + ACE_DEBUG ((LM_EMERGENCY, + "MyImpl::BMClosedED_exec_i::ccm_activate\n")); +} + +void +MyImpl::BMClosedED_exec_i::ccm_passivate (void) +{ + // if (CIAO::debug_level () > 0) + ACE_DEBUG ((LM_EMERGENCY, + "MyImpl::BMClosedED_exec_i::ccm_passivate\n")); +} + +void +MyImpl::BMClosedED_exec_i::ccm_remove (void) +{ + // if (CIAO::debug_level () > 0) + ACE_DEBUG ((LM_EMERGENCY, + "MyImpl::BMClosedED_exec_i::ccm_remove\n")); +} + +extern "C" BMCLOSEDED_EXEC_Export ::Components::EnterpriseComponent_ptr +create_BasicSP_BMClosedED_Impl (void) +{ + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_RETURN (retval, + MyImpl::BMClosedED_exec_i, + ::Components::EnterpriseComponent::_nil ()); + + return retval; +} + +/// Default ctor. +MyImpl::BMClosedEDHome_exec_i::BMClosedEDHome_exec_i (void) +{ +} + +/// Default dtor. +MyImpl::BMClosedEDHome_exec_i::~BMClosedEDHome_exec_i (void) +{ +} + +// Explicit home operations. + +// Implicit home operations. + +::Components::EnterpriseComponent_ptr +MyImpl::BMClosedEDHome_exec_i::create (void) +{ + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + MyImpl::BMClosedED_exec_i, + ::CORBA::NO_MEMORY ()); + + return retval; +} + +extern "C" BMCLOSEDED_EXEC_Export ::Components::HomeExecutorBase_ptr +create_BasicSP_BMClosedEDHome_Impl (void) +{ + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + MyImpl::BMClosedEDHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; +} diff --git a/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED_exec.h b/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED_exec.h new file mode 100644 index 00000000000..904421ec63b --- /dev/null +++ b/modules/CIAO/examples/BasicSP/BMClosedED/BMClosedED_exec.h @@ -0,0 +1,133 @@ +// $Id$ + +//================================================================ +/** + * @file BMClosedED_exec.h + * + * @author Balachandran Natarajan <bala@dre.vanderbilt.edu> + */ +//================================================================ + +#ifndef CIAO_BMCLOSED_EXEC_H +#define CIAO_BMCLOSED_EXEC_H + +#include "BMClosedEDEC.h" +#include "tao/LocalObject.h" +#include "BMClosedED_exec_export.h" + +// The namespace name for the actual implementation classes doesn't +// really matter. Since there may be several different +// implementations for a component, they can very well be in different +// namespaces. +namespace MyImpl +{ + /** + * @class ReadData_Impl + * + * Implementation of the ReadData interface + */ + class BMCLOSEDED_EXEC_Export ReadData_Impl : + public virtual ::BasicSP::CCM_ReadData, + public virtual ::CORBA::LocalObject + { + public: + /// Constructor + ReadData_Impl(const char* name); + + void set_name (const char* name); + + virtual char * + get_data (void); + + ~ReadData_Impl (void); + + private: + CORBA::String_var str_; + }; + + /** + * @class BMClosedED_exec_i + * + * An example RateGen executor implementation class. + */ + class BMCLOSEDED_EXEC_Export BMClosedED_exec_i : + public virtual CIAO_BasicSP_BMClosedED_Impl::BMClosedED_Exec, + // CIAO container implementation depends on correct reference + // counting of local interfaces, so we take a short cut to + public virtual ::CORBA::LocalObject + { + public: + /// Default constructor. + BMClosedED_exec_i (void); + + /// Default destructor. + ~BMClosedED_exec_i (void); + + // Operations from HUDisplay::BMClosedED + + virtual BasicSP::CCM_ReadData_ptr + get_dataout (); + + virtual void + push_in_avail (BasicSP::DataAvailable *ev); + + // Operations from Components::SessionComponent + + virtual void + set_session_context (Components::SessionContext_ptr ctx); + + virtual void + configuration_complete (); + + virtual void + ccm_activate (); + + virtual void + ccm_passivate (); + + virtual void + ccm_remove (); + protected: + CORBA::String_var str_; + + MyImpl::ReadData_Impl* dataout_; + + /// Copmponent specific context + BasicSP::CCM_BMClosedED_Context_var context_; + }; + + extern "C" BMCLOSEDED_EXEC_Export ::Components::EnterpriseComponent_ptr + create_BasicSP_BMClosedED_Impl (void); + + /** + * @class BMClosedEDHome_exec_i + * + * BMClosedED home executor implementation class. + */ + class BMCLOSEDED_EXEC_Export BMClosedEDHome_exec_i : + public virtual CIAO_BasicSP_BMClosedED_Impl::BMClosedEDHome_Exec, + public virtual ::CORBA::LocalObject + { + public: + /// Default ctor. + BMClosedEDHome_exec_i (); + + /// Default dtor. + ~BMClosedEDHome_exec_i (); + + // Explicit home operations. + + // Implicit home operations. + + virtual ::Components::EnterpriseComponent_ptr + create (); + }; + +} + +// Executor DLL entry point. CIAO's deployment and assembly framework +// invokes this function on the resulting DLL to get the home executor. +extern "C" BMCLOSEDED_EXEC_Export ::Components::HomeExecutorBase_ptr +create_BasicSP_BMClosedEDHome_Impl (void); + +#endif /* CIAO_BMCLOSED_EXEC_H*/ diff --git a/modules/CIAO/examples/BasicSP/BMClosedED/config b/modules/CIAO/examples/BasicSP/BMClosedED/config new file mode 100644 index 00000000000..a122025755d --- /dev/null +++ b/modules/CIAO/examples/BasicSP/BMClosedED/config @@ -0,0 +1 @@ +BMClosedED_exec|createBMClosedEDHome_Impl|BMClosedED_svnt|createBMClosedEDHome_Servant diff --git a/modules/CIAO/examples/BasicSP/BMDevice/BMDevice.idl b/modules/CIAO/examples/BasicSP/BMDevice/BMDevice.idl new file mode 100644 index 00000000000..9c14d839875 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/BMDevice/BMDevice.idl @@ -0,0 +1,31 @@ +//$Id$ +//============================================================================= +/** + * @file BMDevice.idl + * + * Definition of the BMDevice component + * + * @author Balachandran Natarajan <bala@dre.vanderbilt.edu> + */ +//============================================================================= +#ifndef CIAO_BMDEVICE_IDL +#define CIAO_BMDEVICE_IDL + +#include "BasicSP.idl" +#include "BasicSPE.idl" + +module BasicSP +{ + component BMDevice + { + provides ReadData data_read; + publishes DataAvailable data_available; + consumes TimeOut timeout; + }; + + home BMDeviceHome manages BMDevice + { + }; +}; + +#endif /*CIAO_BMDEVICE_IDL */ diff --git a/modules/CIAO/examples/BasicSP/BMDevice/BMDevice.mpc b/modules/CIAO/examples/BasicSP/BMDevice/BMDevice.mpc new file mode 100644 index 00000000000..b3c3a377bd5 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/BMDevice/BMDevice.mpc @@ -0,0 +1,116 @@ +// $Id$ + +project(BMDevice_idl_gen): componentidldefaults { + custom_only = 1 + after += BasicSP_idl_gen + idlflags += -I $(CIAO_ROOT)/examples/BasicSP \ + -Wb,stub_export_macro=BMDEVICE_STUB_Export \ + -Wb,stub_export_include=BMDevice_stub_export.h \ + -Wb,skel_export_macro=BMDEVICE_SVNT_Export \ + -Wb,skel_export_include=BMDevice_svnt_export.h \ + -Wb,exec_export_macro=BMDEVICE_EXEC_Export \ + -Wb,exec_export_include=BMDevice_exec_export.h \ + + IDL_Files { + BMDevice.idl + } +} + +project(BMDevice_lem_gen) : ciaoidldefaults { + after += BasicSP_lem_gen BMDevice_idl_gen + custom_only = 1 + idlflags += -Wb,export_macro=BMDEVICE_EXEC_Export \ + -Wb,export_include=BMDevice_exec_export.h \ + -SS \ + -I $(CIAO_ROOT)/examples/BasicSP + + IDL_Files { + BMDeviceE.idl + } +} + +project(BMDevice_stub): ccm_stub { + libout = ../lib + libpaths += ../lib + after += BasicSP_stub BMDevice_idl_gen + sharedname = BMDevice_stub + includes += $(CIAO_ROOT)/examples/BasicSP + + libs += BasicSP_stub + + dynamicflags = BMDEVICE_STUB_BUILD_DLL + + IDL_Files { + } + + Header_Files { + BMDeviceC.h + BMDevice_stub_export.h + } + + Source_Files { + BMDeviceC.cpp + } + + Inline_Files { + } +} + +project(BMDevice_exec) : ciao_executor { + after += BMDevice_stub BMDevice_lem_gen BasicSP_exec + sharedname = BMDevice_exec + libs += BMDevice_stub BasicSP_stub BasicSP_exec + libout = ../lib + libpaths += ../lib + + includes += $(CIAO_ROOT)/examples/BasicSP + + dynamicflags = BMDEVICE_EXEC_BUILD_DLL + + IDL_Files { + } + + Header_Files { + BMDevice_exec.h + BMDevice_exec_export.h + BMDeviceEC.h + } + + Source_Files { + BMDevice_exec.cpp + BMDeviceEC.cpp + } + + Inline_Files { + } +} + +project(BMDevice_svnt) : ciao_servant { + after += BasicSP_svnt BMDevice_exec BasicSP_exec + includes += $(CIAO_ROOT)/examples/BasicSP + + sharedname = BMDevice_svnt + + libs += BMDevice_stub BMDevice_exec BasicSP_exec + libs += BasicSP_stub BasicSP_svnt + dynamicflags = BMDEVICE_SVNT_BUILD_DLL + libout = ../lib + libpaths += ../lib + + IDL_Files { + } + + Header_Files { + BMDeviceS.h + BMDevice_svnt.h + BMDevice_svnt_export.h + } + + Source_Files { + BMDeviceS.cpp + BMDevice_svnt.cpp + } + + Inline_Files { + } +} diff --git a/modules/CIAO/examples/BasicSP/BMDevice/BMDevice_exec.cpp b/modules/CIAO/examples/BasicSP/BMDevice/BMDevice_exec.cpp new file mode 100644 index 00000000000..50a84ba37af --- /dev/null +++ b/modules/CIAO/examples/BasicSP/BMDevice/BMDevice_exec.cpp @@ -0,0 +1,159 @@ +// $Id$ + +#include "BMDevice_exec.h" + +#define DISPLACEMENT 256 + +MyImpl::ReadData_Impl::ReadData_Impl (const char* name) + : str_ (name) +{ +} + +MyImpl::ReadData_Impl::~ReadData_Impl (void) +{ +} + +void +MyImpl::ReadData_Impl::set_name (const char* name) +{ + this->str_ = name; +} + +char * +MyImpl::ReadData_Impl::get_data (void) +{ + return CORBA::string_dup (this->str_.in()); +} + +//================================================= + +/// Default constructor. +MyImpl::BMDevice_exec_i::BMDevice_exec_i (void) + : data_read_ (new ReadData_Impl ("BM DEVICE DATA")) +{ +} + +/// Default destructor. +MyImpl::BMDevice_exec_i::~BMDevice_exec_i (void) +{ + delete this->data_read_; +} + +BasicSP::CCM_ReadData_ptr +MyImpl::BMDevice_exec_i::get_data_read (void) +{ + return + BasicSP::CCM_ReadData::_duplicate (this->data_read_); +} + +void +MyImpl::BMDevice_exec_i::push_timeout (BasicSP::TimeOut *) +{ + // Notify others + BasicSP::DataAvailable_var event = + new OBV_BasicSP::DataAvailable; + + ACE_DEBUG ((LM_EMERGENCY, + "BMDevice, received a timeout from EC\n")); + + this->context_->push_data_available (event); +} + +// Operations from Components::SessionComponent +void +MyImpl::BMDevice_exec_i:: set_session_context ( + Components::SessionContext_ptr ctx) +{ + ACE_DEBUG ((LM_EMERGENCY, + "MyImpl::BMDevice_exec_i::set_session_context\n")); + + this->context_ = + BasicSP::CCM_BMDevice_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + { + throw CORBA::INTERNAL (); + } + // Urm, we actually discard exceptions thown from this operation. +} + +void +MyImpl::BMDevice_exec_i::configuration_complete (void) +{ +} + +void +MyImpl::BMDevice_exec_i::ccm_activate (void) +{ + ACE_DEBUG ((LM_EMERGENCY, + "MyImpl::BMDevice_exec_i::ccm_activate\n")); +} + +void +MyImpl::BMDevice_exec_i::ccm_passivate (void) +{ + ACE_DEBUG ((LM_EMERGENCY, + "MyImpl::BMDevice_exec_i::ccm_passivate\n")); +} + +void +MyImpl::BMDevice_exec_i::ccm_remove (void) +{ + ACE_DEBUG ((LM_EMERGENCY, + "MyImpl::BMDevice_exec_i::ccm_remove\n")); +} + +extern "C" BMDEVICE_EXEC_Export ::Components::EnterpriseComponent_ptr +create_BasicSP_BMDevice_Impl (void) +{ + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_RETURN (retval, + MyImpl::BMDevice_exec_i, + ::Components::EnterpriseComponent::_nil ()); + + return retval; +} + +/// Default ctor. +MyImpl::BMDeviceHome_exec_i::BMDeviceHome_exec_i (void) +{ +} + +/// Default dtor. +MyImpl::BMDeviceHome_exec_i::~BMDeviceHome_exec_i (void) +{ +} + +// Explicit home operations. + +// Implicit home operations. + +::Components::EnterpriseComponent_ptr +MyImpl::BMDeviceHome_exec_i::create (void) +{ + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX (retval, + MyImpl::BMDevice_exec_i, + ::CORBA::NO_MEMORY ()); + + return retval; +} + + +extern "C" BMDEVICE_EXEC_Export ::Components::HomeExecutorBase_ptr +create_BasicSP_BMDeviceHome_Impl (void) +{ + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN (retval, + MyImpl::BMDeviceHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; +} + diff --git a/modules/CIAO/examples/BasicSP/BMDevice/BMDevice_exec.h b/modules/CIAO/examples/BasicSP/BMDevice/BMDevice_exec.h new file mode 100644 index 00000000000..7dee3fc7c43 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/BMDevice/BMDevice_exec.h @@ -0,0 +1,130 @@ +// $Id$ + +// ================================================================ +/** + * @file BMDevice_exec.h + * + * Header file for the actual BMDevice and BMDeviceHome component + * implementations. These classes are the implementations of local + * interfaces defined in BMDeviceEI.idl. + * + * @author Balachandran Natarajan <bala@dre.vanderbilt.edu> + */ +// ================================================================ + +#ifndef CIAO_BMDEVICE_EXEC_H +#define CIAO_BMDEVICE_EXEC_H + +#include "BMDevice_exec_export.h" +#include "BMDeviceEC.h" +#include "tao/LocalObject.h" + +namespace MyImpl +{ + /** + * @class ReadData_Impl + * + * Implementation of the ReadData interface + */ + class BMDEVICE_EXEC_Export ReadData_Impl : + public virtual ::BasicSP::CCM_ReadData, + public virtual ::CORBA::LocalObject + { + public: + /// Constructor + ReadData_Impl(const char* name); + + void set_name (const char* name); + + virtual char * + get_data (void); + + ~ReadData_Impl (void); + + private: + CORBA::String_var str_; + }; + + /** + * @class BMDEVICE_exec_i + * + * An example RateGen executor implementation class. + */ + class BMDEVICE_EXEC_Export BMDevice_exec_i : + public virtual CIAO_BasicSP_BMDevice_Impl::BMDevice_Exec, + public virtual ::CORBA::LocalObject + { + public: + /// Default constructor. + BMDevice_exec_i (void); + + /// Default destructor. + ~BMDevice_exec_i (void); + + // Operations from BasicSP::BMDevice + + virtual BasicSP::CCM_ReadData_ptr + get_data_read (void); + + virtual void + push_timeout (BasicSP::TimeOut *ev); + + // Operations from Components::SessionComponent + + virtual void + set_session_context (Components::SessionContext_ptr ctx); + + virtual void + configuration_complete (void); + + virtual void + ccm_activate (void); + + virtual void + ccm_passivate (void); + + virtual void + ccm_remove (void); + protected: + + /// Copmponent specific context + BasicSP::CCM_BMDevice_Context_var context_; + + private: + MyImpl::ReadData_Impl* data_read_; + }; + + extern "C" BMDEVICE_EXEC_Export ::Components::EnterpriseComponent_ptr + create_BasicSP_BMDevice_Impl (void); + + /** + * @class BMDeviceHome_exec_i + * + * BMDevice home executor implementation class. + */ + class BMDEVICE_EXEC_Export BMDeviceHome_exec_i : + public virtual CIAO_BasicSP_BMDevice_Impl::BMDeviceHome_Exec, + public virtual ::CORBA::LocalObject + { + public: + /// Default ctor. + BMDeviceHome_exec_i (void); + + /// Default dtor. + ~BMDeviceHome_exec_i (void); + + // Explicit home operations. + + // Implicit home operations. + + virtual ::Components::EnterpriseComponent_ptr + create (void); + }; +} + +// Executor DLL entry point. CIAO's deployment and assembly framework +// invokes this function on the resulting DLL to get the home executor. +extern "C" BMDEVICE_EXEC_Export ::Components::HomeExecutorBase_ptr +createBMDeviceHome_Impl (void); + +#endif /* CIAO_BMDEVICE_EXEC_H*/ diff --git a/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay.idl b/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay.idl new file mode 100644 index 00000000000..1bcf144de33 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay.idl @@ -0,0 +1,21 @@ +//$Id$ + +#ifndef BMDISPLAY_IDL +#define BMDISPLAY_IDL + +#include "BasicSP.idl" + +module BasicSP +{ + component BMDisplay + { + consumes DataAvailable data_ready; + uses ReadData comp_data; + }; + + home BMDisplayHome manages BMDisplay + { + }; +}; + +#endif /* BMDISPLAY_IDL */ diff --git a/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay.mpc b/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay.mpc new file mode 100644 index 00000000000..c3e3f300173 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay.mpc @@ -0,0 +1,118 @@ +// $Id$ + +project(BMDisplay_idl_gen): componentidldefaults,anytypecode { + custom_only = 1 + idlflags += -I $(CIAO_ROOT)/examples/BasicSP \ + -Wb,stub_export_macro=BMDISPLAY_STUB_Export \ + -Wb,stub_export_include=BMDisplay_stub_export.h \ + -Wb,skel_export_macro=BMDISPLAY_SVNT_Export \ + -Wb,skel_export_include=BMDisplay_svnt_export.h \ + -Wb,exec_export_macro=BMDISPLAY_EXEC_Export \ + -Wb,exec_export_include=BMDisplay_exec_export.h \ + + IDL_Files { + BMDisplay.idl + } +} + +project(BMDisplay_lem_gen) : ciaoidldefaults { + after += BasicSP_lem_gen BMDisplay_idl_gen + custom_only = 1 + + idlflags += -I $(CIAO_ROOT)/examples/BasicSP \ + -Wb,export_macro=BMDISPLAY_EXEC_Export \ + -Wb,export_include=BMDisplay_exec_export.h \ + -SS + + IDL_Files { + BMDisplayE.idl + } + +} + +project(BMDisplay_stub): ccm_stub { + after += BasicSP_stub BMDisplay_idl_gen + sharedname = BMDisplay_stub + includes += $(CIAO_ROOT)/examples/BasicSP + libout = ../lib + libpaths += ../lib + + libs += BasicSP_stub + + dynamicflags = BMDISPLAY_STUB_BUILD_DLL + + IDL_Files { + } + + Header_Files { + BMDisplayC.h + BMDisplay_stub_export.h + } + + Source_Files { + BMDisplayC.cpp + } + + Inline_Files { + } +} + +project(BMDisplay_exec) : ciao_executor { + after += BMDisplay_stub BMDisplay_lem_gen + + sharedname = BMDisplay_exec + libs += BMDisplay_stub + libs += BasicSP_stub + includes += $(CIAO_ROOT)/examples/BasicSP + libout = ../lib + libpaths += ../lib + + dynamicflags = BMDISPLAY_EXEC_BUILD_DLL + + IDL_Files { + } + + Header_Files { + BMDisplay_exec.h + BMDisplay_exec_export.h + BMDisplayEC.h + } + + Source_Files { + BMDisplay_exec.cpp + BMDisplayEC.cpp + } + + Inline_Files { + } +} + +project(BMDisplay_svnt) : ciao_servant { + after += BasicSP_svnt BMDisplay_exec + includes += $(CIAO_ROOT)/examples/BasicSP + + sharedname = BMDisplay_svnt + + libs += BMDisplay_stub BMDisplay_exec + libs += BasicSP_stub BasicSP_svnt + dynamicflags = BMDISPLAY_SVNT_BUILD_DLL + libout = ../lib + libpaths += ../lib + + IDL_Files { + } + + Source_Files { + BMDisplayS.cpp + BMDisplay_svnt.cpp + } + + Header_Files { + BMDisplayS.h + BMDisplay_svnt.h + BMDisplay_svnt_export.h + } + + Inline_Files { + } +} diff --git a/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay_exec.cpp b/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay_exec.cpp new file mode 100644 index 00000000000..c52461c27dd --- /dev/null +++ b/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay_exec.cpp @@ -0,0 +1,142 @@ +// $Id$ + +#include "BMDisplay_exec.h" + +/// Default constructor. +MyImpl::BMDisplay_exec_i::BMDisplay_exec_i () +{ +} + +/// Default destructor. +MyImpl::BMDisplay_exec_i::~BMDisplay_exec_i () +{ +} + +// Operations from BasicSP::BMDisplay + +void +MyImpl::BMDisplay_exec_i::push_data_ready ( + BasicSP::DataAvailable *ev + ) +{ + ACE_UNUSED_ARG (ev); + + ACE_DEBUG ((LM_EMERGENCY, + "BMDisplay - Doing computations\n")); + + ACE_DEBUG ((LM_EMERGENCY, + "BMDisplay - Doing data fetch\n")); + // Refresh position + BasicSP::ReadData_var dat + = this->context_->get_connection_comp_data (); + + if (CORBA::is_nil (dat.in ())) + throw CORBA::BAD_INV_ORDER (); + + CORBA::String_var str = + dat->get_data (); + + ACE_DEBUG ((LM_EMERGENCY, + "BMDisplay - Display data is [%s]\n", + str.in ())); + +} + +// Operations from Components::SessionComponent +void +MyImpl::BMDisplay_exec_i::set_session_context ( + Components::SessionContext_ptr ctx + ) +{ + ACE_DEBUG ((LM_EMERGENCY, + "MyImpl::BMDisplay_exec_i::set_session_context\n")); + this->context_ = + BasicSP::CCM_BMDisplay_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + throw CORBA::INTERNAL (); + // Urm, we actually discard exceptions thown from this operation. +} + +void +MyImpl::BMDisplay_exec_i::configuration_complete ( + ) +{ +} + +void +MyImpl::BMDisplay_exec_i::ccm_activate () +{ + ACE_DEBUG ((LM_EMERGENCY, + "MyImpl::BMDisplay_exec_i::ccm_activate\n")); +} + +void +MyImpl::BMDisplay_exec_i::ccm_passivate ( + ) +{ + ACE_DEBUG ((LM_EMERGENCY, + "MyImpl::BMDisplay_exec_i::ccm_passivate\n")); +} + +void +MyImpl::BMDisplay_exec_i::ccm_remove () +{ + ACE_DEBUG ((LM_EMERGENCY, + "MyImpl::BMDisplay_exec_i::ccm_remove\n")); +} + +extern "C" BMDISPLAY_EXEC_Export ::Components::EnterpriseComponent_ptr +create_BasicSP_BMDisplay_Impl (void) +{ + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_RETURN (retval, + MyImpl::BMDisplay_exec_i, + ::Components::EnterpriseComponent::_nil ()); + + return retval; +} + +/// Default ctor. +MyImpl::BMDisplayHome_exec_impl::BMDisplayHome_exec_impl () +{ +} + +/// Default dtor. +MyImpl::BMDisplayHome_exec_impl::~BMDisplayHome_exec_impl () +{ +} + +// Explicit home operations. + +// Implicit home operations. + +::Components::EnterpriseComponent_ptr +MyImpl::BMDisplayHome_exec_impl::create () +{ + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + MyImpl::BMDisplay_exec_i, + ::CORBA::NO_MEMORY ()); + + return retval; +} + +extern "C" BMDISPLAY_EXEC_Export ::Components::HomeExecutorBase_ptr +create_BasicSP_BMDisplayHome_Impl (void) +{ + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + MyImpl::BMDisplayHome_exec_impl, + ::Components::HomeExecutorBase::_nil ()); + + return retval; +} diff --git a/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay_exec.h b/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay_exec.h new file mode 100644 index 00000000000..e52ceb879a0 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/BMDisplay/BMDisplay_exec.h @@ -0,0 +1,96 @@ +// $Id$ + +//============================================================== +/** + * @file BMDisplay_exec.h + * + * Header file for the actual BMDisplay and BMDisplayHome component + * implementations. + * + * @author Balachandran Natarajan <bala@dre.vanderbilt.edu> + */ +//============================================================== +#ifndef CIAO_BMDISPLAY_EXEC_H +#define CIAO_BMDISPLAY_EXEC_H + +#include "BMDisplayEC.h" +#include "tao/LocalObject.h" +#include "BMDisplay_exec_export.h" + +namespace MyImpl +{ + /** + * @class BMDisplay_exec_i + * + * RateGen executor implementation class. + */ + class BMDISPLAY_EXEC_Export BMDisplay_exec_i : + public virtual CIAO_BasicSP_BMDisplay_Impl::BMDisplay_Exec, + public virtual ::CORBA::LocalObject + { + public: + /// Default constructor. + BMDisplay_exec_i (); + + /// Default destructor. + ~BMDisplay_exec_i (); + + // Operations from BasicSP::BMDisplay + + virtual void + push_data_ready (BasicSP::DataAvailable *ev); + + // Operations from Components::SessionComponent + + virtual void + set_session_context (Components::SessionContext_ptr ctx); + + virtual void + configuration_complete (); + + virtual void + ccm_activate (); + + virtual void + ccm_passivate (); + + virtual void + ccm_remove (); + protected: + /// Copmponent specific context + BasicSP::CCM_BMDisplay_Context_var context_; + }; + + extern "C" BMDISPLAY_EXEC_Export ::Components::EnterpriseComponent_ptr + create_BasicSP_BMDisplay_Impl (void); + + /** + * @class BMDisplayHome_exec_impl + * + * BMDisplay home executor implementation class. + */ + class BMDISPLAY_EXEC_Export BMDisplayHome_exec_impl : + public virtual CIAO_BasicSP_BMDisplay_Impl::BMDisplayHome_Exec, + public virtual ::CORBA::LocalObject + { + public: + /// Default ctor. + BMDisplayHome_exec_impl (); + + /// Default dtor. + ~BMDisplayHome_exec_impl (); + + // Explicit home operations. + + // Implicit home operations. + + virtual ::Components::EnterpriseComponent_ptr + create (); + }; + +} + +extern "C" BMDISPLAY_EXEC_Export ::Components::HomeExecutorBase_ptr +createBMDisplayHome_Impl (void); + +#endif /* BMDISPLAY_EXEC_H */ diff --git a/modules/CIAO/examples/BasicSP/BasicSP.idl b/modules/CIAO/examples/BasicSP/BasicSP.idl new file mode 100644 index 00000000000..0b000c9cf56 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/BasicSP.idl @@ -0,0 +1,48 @@ +// $Id$ +//============================================================================= +/** + * @file BasicSP.idl + * + * Definition of events, and common interfaces used in the BasicSP module. + * + * @author Balachandran Natarajan <bala@dre.vanderbilt.edu> + */ +//============================================================================= + +#ifndef CIAO_BASIC_SP_IDL +#define CIAO_BASIC_SP_IDL + +#include <Components.idl> + +// @@NOTE: Do we need a pragma prefix. Anyway its broken now in TAO.. +// #pragma prefix "" + +module BasicSP +{ + + /** + * @NOTE: Not sure whether this is a good abstraction. Just copying + * the stuff from Cadena folks. + */ + /** + * @interface ReadData + * + */ + + interface ReadData { + string get_data (); + }; + + /** + * @eventtype Events that represent timeouts + */ + eventtype TimeOut {}; + + /** + * @eventtype Events that represent data availability + */ + eventtype DataAvailable {}; + +}; + +#endif /*CIAO_BASIC_SP_IDL*/ diff --git a/modules/CIAO/examples/BasicSP/BasicSP.mpc b/modules/CIAO/examples/BasicSP/BasicSP.mpc new file mode 100644 index 00000000000..177c0f373a6 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/BasicSP.mpc @@ -0,0 +1,100 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n HUDisplay" + +project(BasicSP_idl_gen): componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=BASICSP_STUB_Export \ + -Wb,stub_export_include=BasicSP_stub_export.h \ + -Wb,skel_export_macro=BASICSP_SVNT_Export \ + -Wb,skel_export_include=BasicSP_svnt_export.h \ + -Wb,exec_export_macro=BASICSP_EXEC_Export \ + -Wb,exec_export_include=BasicSP_exec_export.h + + IDL_Files { + BasicSP.idl + } +} + +project(BasicSP_lem_gen) : ciaoidldefaults { + custom_only = 1 + after += BasicSP_idl_gen + idlflags += -Wb,export_macro=BASICSP_EXEC_Export \ + -Wb,export_include=BasicSP_exec_export.h \ + -SS + + IDL_Files { + BasicSPE.idl + } +} + +project(BasicSP_stub): ccm_stub { + after += BasicSP_lem_gen + sharedname = BasicSP_stub + dynamicflags = BASICSP_STUB_BUILD_DLL + includes += $(CIAO_ROOT)/examples/BasicSP + libout = lib + libpaths += lib + + IDL_Files { + } + Header_Files { + BasicSPC.h + } + Source_Files { + BasicSPC.cpp + } + Inline_Files { + } +} + +project(BasicSP_svnt) : ciao_servant { + after += BasicSP_exec + sharedname = BasicSP_svnt + libs += BasicSP_exec BasicSP_stub + includes += $(CIAO_ROOT)/examples/BasicSP + dynamicflags = BASICSP_SVNT_BUILD_DLL + libout = lib + libpaths += lib + + IDL_Files { + } + + Header_Files { + BasicSPS.h + BasicSP_svnt.h + } + + Source_Files { + BasicSPS.cpp + BasicSP_svnt.cpp + } + + Inline_Files { + } +} + +project(BasicSP_exec) : ciao_executor { + after += BasicSP_stub BasicSP_lem_gen + sharedname = BasicSP_exec + libs += BasicSP_stub + dynamicflags = BASICSP_EXEC_BUILD_DLL + includes += $(CIAO_ROOT)/examples/BasicSP + libout = lib + libpaths += lib + + IDL_Files { + } + + Header_Files { + BasicSP_exec_export.h + BasicSPEC.h + } + + Source_Files { + BasicSPEC.cpp + } + + Inline_Files { + } +} + diff --git a/modules/CIAO/examples/BasicSP/BasicSP.mwc b/modules/CIAO/examples/BasicSP/BasicSP.mwc new file mode 100644 index 00000000000..781791601d9 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/BasicSP.mwc @@ -0,0 +1,9 @@ +// $Id$ + +workspace { + BasicSP.mpc + BMClosedED/BMClosedED.mpc + BMDevice/BMDevice.mpc + BMDisplay/BMDisplay.mpc + EC/EC.mpc +} diff --git a/modules/CIAO/examples/BasicSP/EC/EC.idl b/modules/CIAO/examples/BasicSP/EC/EC.idl new file mode 100644 index 00000000000..93cce410942 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/EC/EC.idl @@ -0,0 +1,41 @@ +// $Id$ +//============================================================================= +/** + * @file EC.idl + * + * Definition of events, and common interfaces used in the BasicSP module. + * + * @author Balachandran Natarajan <bala@dre.vanderbilt.edu> + */ +//============================================================================= + +#ifndef CIAO_EC_IDL +#define CIAO_EC_IDL + +#include "BasicSP.idl" + +module BasicSP +{ + interface trigger + { + void start (); + void stop (); + }; + + component EC supports trigger + { + publishes TimeOut timeout; + + /// The attribute can be configured via the home or the + /// component property file. + attribute long hertz; + }; + + home ECHome manages EC + { + // Explicit operations + factory new_EC (in long hertz); + }; +}; + +#endif /* CIAO_EC_IDL*/ diff --git a/modules/CIAO/examples/BasicSP/EC/EC.mpc b/modules/CIAO/examples/BasicSP/EC/EC.mpc new file mode 100644 index 00000000000..ee27913422c --- /dev/null +++ b/modules/CIAO/examples/BasicSP/EC/EC.mpc @@ -0,0 +1,157 @@ +// $Id$ + +project(EC_idl_gen): componentidldefaults { + custom_only = 1 + idlflags += -I $(CIAO_ROOT)/examples/BasicSP \ + -Wb,stub_export_macro=EC_STUB_Export \ + -Wb,stub_export_include=EC_stub_export.h \ + -Wb,skel_export_macro=EC_SVNT_Export \ + -Wb,skel_export_include=EC_svnt_export.h \ + -Wb,exec_export_macro=EC_EXEC_Export \ + -Wb,exec_export_include=EC_exec_export.h + + IDL_Files { + EC.idl + } +} + +project(EC_lem_gen) : ciaoidldefaults { + after += BasicSP_lem_gen EC_idl_gen + custom_only = 1 + + idlflags += -Wb,export_macro=EC_EXEC_Export \ + -Wb,export_include=EC_exec_export.h \ + -SS \ + -I $(CIAO_ROOT)/examples/BasicSP + + IDL_Files { + ECE.idl + } +} + +project(EC_stub): ccm_stub { + after += BasicSP_stub EC_idl_gen + sharedname = EC_stub + includes += $(CIAO_ROOT)/examples/BasicSP + libpaths += .. + libout = ../lib + libpaths += ../lib + + libs += BasicSP_stub + + dynamicflags = EC_STUB_BUILD_DLL + + IDL_Files { + } + + Header_Files { + ECC.h + EC_stub_export.h + } + + Source_Files { + ECC.cpp + } + + Inline_Files { + } +} + +project(EC_exec) : ciao_executor { + after += EC_stub EC_lem_gen + sharedname = EC_exec + libs += EC_stub BasicSP_stub + includes += $(CIAO_ROOT)/examples/BasicSP + libout = ../lib + libpaths += ../lib + + dynamicflags = EC_EXEC_BUILD_DLL + + IDL_Files { + } + + Header_Files { + EC_exec.h + EC_exec_export.h + ECEC.h + } + + Source_Files { + EC_exec.cpp + ECEC.cpp + } + + Inline_Files { + } +} + +project(EC_svnt) : ciao_servant { + after += BasicSP_svnt EC_exec + includes += $(CIAO_ROOT)/examples/BasicSP + + sharedname = EC_svnt + + libs += EC_stub EC_exec + libs += BasicSP_stub BasicSP_svnt + dynamicflags = EC_SVNT_BUILD_DLL + libout = ../lib + libpaths += ../lib + + IDL_Files { + } + + Header_Files { + ECS.h + EC_svnt.h + EC_svnt_export.h + } + + Source_Files { + ECS.cpp + EC_svnt.cpp + } +} + +project (EC_client) : ccm_stub { + after += EC_stub + exename = client + libs += EC_stub BasicSP_stub + includes += $(CIAO_ROOT)/examples/BasicSP + libout = ../lib + libpaths += ../lib + + IDL_Files { + } + + Header_Files { + } + + Source_Files { + client.cpp + } + + Inline_Files { + } +} + +project (EC_controller) : ccm_stub { + after += EC_stub + exename = controller + includes += $(CIAO_ROOT)/examples/BasicSP + libs += EC_stub BasicSP_stub + libout = ../lib + libpaths += ../lib + + IDL_Files { + } + + Header_Files { + } + + Source_Files { + controller.cpp + } + + Inline_Files { + } +} diff --git a/modules/CIAO/examples/BasicSP/EC/EC_exec.cpp b/modules/CIAO/examples/BasicSP/EC/EC_exec.cpp new file mode 100644 index 00000000000..9c903f9b2c0 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/EC/EC_exec.cpp @@ -0,0 +1,296 @@ +// $Id$ + +#include "EC_exec.h" +#include "ace/Timer_Queue.h" +#include "ace/Reactor.h" + +//================================================================= + +MyImpl::timeout_Handler::timeout_Handler (MyImpl::EC_exec_i *cb) + : active_ (0), + done_ (0), + tid_ (0), + pulse_callback_ (cb) +{ + // Nothing + this->reactor (new ACE_Reactor); +} + +MyImpl::timeout_Handler::~timeout_Handler () +{ + delete this->reactor (); + this->reactor (0); +} + +int +MyImpl::timeout_Handler::open_h () +{ + return this->activate (); +} + +int +MyImpl::timeout_Handler::close_h () +{ + this->done_ = 1; + this->reactor ()->notify (); + + ACE_DEBUG ((LM_EMERGENCY, "Waiting\n")); + return this->wait (); +} + +int +MyImpl::timeout_Handler::start (CORBA::Long hertz) +{ + if (hertz == 0 || this->active_ != 0) // Not valid + return -1; + + long usec = 1000000 / hertz; + + this->tid_ = this->reactor ()->schedule_timer (this, + 0, + ACE_Time_Value (0, usec), + ACE_Time_Value (0, usec)); + + this->active_ = 1; + return 0; +} + +int +MyImpl::timeout_Handler::stop (void) +{ + if (this->active_ == 0) // Not valid. + return -1; + + this->reactor ()->cancel_timer (this); + + this->active_ = 0; + return 0; +} + +int +MyImpl::timeout_Handler::active (void) +{ + return this->active_; +} + +int +MyImpl::timeout_Handler::handle_close (ACE_HANDLE handle, + ACE_Reactor_Mask close_mask) +{ + ACE_DEBUG ((LM_EMERGENCY, + ACE_TEXT ("[%x] handle = %d, close_mask = %d\n"), + this, + handle, + close_mask)); + + return 0; +} + +int +MyImpl::timeout_Handler::handle_timeout (const ACE_Time_Value &, + const void *) +{ + this->pulse_callback_->pulse (); + + // ACE_DEBUG ((LM_EMERGENCY, + // ACE_TEXT ("[%x] with count #%05d timed out at %d.%d!\n"), + // this, + // tv.sec (), + // tv.usec ())); + + return 0; +} + +int +MyImpl::timeout_Handler::svc (void) +{ + this->reactor ()->owner (ACE_OS::thr_self ()); + + while (!this->done_) + this->reactor ()->handle_events (); + + return 0; +} + +//================================================================= + +MyImpl::EC_exec_i::EC_exec_i () + : hertz_ (0), + pulser_ (this) +{ + +} + +MyImpl::EC_exec_i::EC_exec_i (CORBA::Long hz) + : hertz_ (hz), + pulser_ (this) +{ +} + +MyImpl::EC_exec_i::~EC_exec_i () +{ +} + +CORBA::Long +MyImpl::EC_exec_i::hertz () +{ + return this->hertz_; +} + +void +MyImpl::EC_exec_i::hertz (CORBA::Long hertz) +{ + this->hertz_ = hertz; +} + +// Operations from supported interface(s) + +void +MyImpl::EC_exec_i::start () +{ + if (this->hertz_ == 0 || this->pulser_.active()) + throw CORBA::BAD_INV_ORDER (); + + // @@ Start the rate generator + this->pulser_.start (this->hertz_); +} + +void +MyImpl::EC_exec_i::stop () +{ + if (! this->pulser_.active ()) + throw CORBA::BAD_INV_ORDER (); + + // @@ stop the rate generator + this->pulser_.stop (); +} + +CORBA::Boolean +MyImpl::EC_exec_i::active () +{ + return this->pulser_.active (); +} + +// Operations from Components::SessionComponent + +void +MyImpl::EC_exec_i::set_session_context (Components::SessionContext_ptr ctx) +{ + ACE_DEBUG ((LM_EMERGENCY, "MyImpl::EC_exec_i::set_session_context\n")); + + this->context_ = + BasicSP::CCM_EC_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + throw CORBA::INTERNAL (); + // Urm, we actually discard exceptions thown from this operation. + +} + +void +MyImpl::EC_exec_i::configuration_complete () +{ +} + +void +MyImpl::EC_exec_i::ccm_activate () +{ + ACE_DEBUG ((LM_EMERGENCY, "MyImpl::EC_exec_i::ccm_activate\n")); + + this->pulser_.open_h (); +} + +void +MyImpl::EC_exec_i::ccm_passivate () +{ + ACE_DEBUG ((LM_EMERGENCY, "MyImpl::EC_exec_i::ccm_passivate\n")); + this->pulser_.close_h (); +} + +void +MyImpl::EC_exec_i::ccm_remove () +{ + ACE_DEBUG ((LM_EMERGENCY, "MyImpl::EC_exec_i::ccm_remove\n")); +} + +void +MyImpl::EC_exec_i::pulse (void) +{ + try + { + ACE_DEBUG ((LM_EMERGENCY, + ACE_TEXT ("Pushing BasicSP::TimeOut event!\n"))); + + BasicSP::TimeOut_var ev = new OBV_BasicSP::TimeOut (); + + this->context_->push_timeout (ev.in ()); + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("Caught exception while pushing " + "BasicSP::TimeOut event to BMDevice"); + } +} + +extern "C" EC_EXEC_Export ::Components::EnterpriseComponent_ptr +create_BasicSP_EC_Impl (void) +{ + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_RETURN (retval, + MyImpl::EC_exec_i, + ::Components::EnterpriseComponent::_nil ()); + + return retval; +} + +MyImpl::ECHome_exec_i::ECHome_exec_i () +{ +} + +MyImpl::ECHome_exec_i::~ECHome_exec_i () +{ +} + +::Components::EnterpriseComponent_ptr +MyImpl::ECHome_exec_i::new_EC (CORBA::Long hertz) +{ + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + MyImpl::EC_exec_i (hertz), + ::CORBA::NO_MEMORY ()); + + return retval; +} + +::Components::EnterpriseComponent_ptr +MyImpl::ECHome_exec_i::create () +{ + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + MyImpl::EC_exec_i, + ::CORBA::NO_MEMORY ()); + + return retval; +} + +extern "C" EC_EXEC_Export ::Components::HomeExecutorBase_ptr +create_BasicSP_ECHome_Impl (void) +{ + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + MyImpl::ECHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; +} diff --git a/modules/CIAO/examples/BasicSP/EC/EC_exec.h b/modules/CIAO/examples/BasicSP/EC/EC_exec.h new file mode 100644 index 00000000000..e42352971cd --- /dev/null +++ b/modules/CIAO/examples/BasicSP/EC/EC_exec.h @@ -0,0 +1,168 @@ +// $Id$ + +//============================================================ +/** + * @file EC_exec.h + * + * Header file for the actualy EC and ECHome component + * implementation. + * + * @author Balachandran Natarajan <bala@dre.vanderbilt.edu> + */ +//============================================================ + +#ifndef EC_EXEC_H +#define EC_EXEC_H + +#include "ECEC.h" +#include "tao/LocalObject.h" +#include "ace/Thread_Manager.h" +#include "ace/Task.h" +#include "EC_exec_export.h" + +namespace MyImpl +{ + // Forward decl. + class EC_exec_i; + + /** + * @brief Active pulse generater + */ + class timeout_Handler : public ACE_Task_Base + { + public: + // Default constructor + timeout_Handler (EC_exec_i *cb); + ~timeout_Handler (); + + int open_h (void); + + int close_h (void); + + int start (CORBA::Long hertz); + + int stop (void); + + int active (void); + + // Handle the timeout. + virtual int handle_timeout (const ACE_Time_Value &tv, + const void *arg); + + // Called when <Time_Handler> is removed. + virtual int handle_close (ACE_HANDLE handle, + ACE_Reactor_Mask close_mask); + + virtual int svc (void); + + private: + /// Tracking whether we are actively generating pulse or not. + long active_; + + /// Flag to indicate completion of this active object. + int done_; + + /// The timer id we are waiting. + long tid_; + + EC_exec_i *pulse_callback_; + + ACE_Thread_Manager thr_mgr_; + }; + + extern "C" EC_EXEC_Export ::Components::EnterpriseComponent_ptr + create_BasicSP_EC_Impl (void); + + /** + * @class EC_exec_i + * + * EC executor implementation class. + */ + class EC_EXEC_Export EC_exec_i : + public virtual CIAO_BasicSP_EC_Impl::EC_Exec, + public virtual ::CORBA::LocalObject + { + public: + /// Default constructor. + EC_exec_i (); + + /// Initialize with a default frequency. + EC_exec_i (CORBA::Long hz); + + /// Default destructor. + ~EC_exec_i (); + + // Attribute operations. + + virtual CORBA::Long hertz (); + + virtual void hertz (CORBA::Long hertz); + + // Operations from supported interface(s) + + virtual void start (); + + virtual void stop (); + + virtual CORBA::Boolean active (); + + // Operations from Components::SessionComponent + + virtual void set_session_context (Components::SessionContext_ptr ctx); + + virtual void configuration_complete (); + + virtual void ccm_activate (); + + virtual void ccm_passivate (); + + virtual void ccm_remove (); + + /// Helper function to be called back by timeout_Handler + void pulse (void); + + protected: + /// Frequency + CORBA::Long hertz_; + + /// Copmponent specific context + BasicSP::CCM_EC_Context_var context_; + + /// An active object that actually trigger the generation of + /// periodic events. + timeout_Handler pulser_; + }; + + /** + * @class ECHome_exec_i + * + * EC home executor implementation class. + */ + class EC_EXEC_Export ECHome_exec_i : + public virtual ::CIAO_BasicSP_EC_Impl::ECHome_Exec, + public virtual ::CORBA::LocalObject + { + public: + /// Default ctor. + ECHome_exec_i (); + + /// Default dtor. + ~ECHome_exec_i (); + + // Explicit home operations. + + virtual ::Components::EnterpriseComponent_ptr + new_EC (CORBA::Long hertz); + + // Implicit home operations. + + virtual ::Components::EnterpriseComponent_ptr + create (); + }; + +} + +extern "C" EC_EXEC_Export ::Components::HomeExecutorBase_ptr +createECHome_Impl (void); + +#endif /* CIAO_ECGEN_EXEC_H */ diff --git a/modules/CIAO/examples/BasicSP/EC/README b/modules/CIAO/examples/BasicSP/EC/README new file mode 100644 index 00000000000..7e032780ab1 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/EC/README @@ -0,0 +1,9 @@ +/** + +@page EC README File + + The EC component. This shouldnt be needed if we had a way to +integrate EC sugly into CIAO. We dont at the time of writing this +example on May 12, 2003. Hence this holy hack! + +*/ diff --git a/modules/CIAO/examples/BasicSP/EC/client.cpp b/modules/CIAO/examples/BasicSP/EC/client.cpp new file mode 100644 index 00000000000..ace0a8c1209 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/EC/client.cpp @@ -0,0 +1,62 @@ +// $Id$ + +//============================================================== +/** + * @file client.cpp + * + * This is a simple client test program that interact with the EC + * component implementation. This test uses the explicit factory + * operation in the home interface to create a EC component + * instance, run it for a while, and destroy the component instance. + */ +//============================================================== + +#include "ECC.h" +#include "ace/streams.h" +#include "ace/OS_NS_unistd.h" + +int +ACE_TMAIN (int argc, ACE_TCHAR *argv[]) +{ + try + { + // Initialize orb + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); + + // Resolve HomeFinder interface + + CORBA::Object_var obj + = orb->string_to_object ("file://ec.ior"); + + BasicSP::ECHome_var home + = BasicSP::ECHome::_narrow (obj.in ()); + + if (CORBA::is_nil (home.in ())) + ACE_ERROR_RETURN ((LM_ERROR, "Unable to acquire ECHome objref\n"), -1); + + BasicSP::EC_var pulser + = home->create (); + + // Place to plug in the rate + pulser->hertz (5); + + pulser->start (); + + ACE_OS::sleep (45); + + pulser->stop (); + + home->remove_component (pulser.in ()); + + orb->destroy (); + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("Who is the culprit\n"); + ACE_ERROR_RETURN ((LM_ERROR, + "Uncaught CORBA exception\n"), + 1); + } + + return 0; +} diff --git a/modules/CIAO/examples/BasicSP/EC/controller.cpp b/modules/CIAO/examples/BasicSP/EC/controller.cpp new file mode 100644 index 00000000000..5897abb93ee --- /dev/null +++ b/modules/CIAO/examples/BasicSP/EC/controller.cpp @@ -0,0 +1,126 @@ +// $Id$ + +/** + * @file controller.cpp + * + * This program interact with a EC component, and set the rate of the + * EC. + */ + +#include "ECC.h" +#include "ace/Get_Opt.h" +#include "ace/streams.h" + +const ACE_TCHAR *rategen_ior_ = ACE_TEXT("file://rategen.ior"); +int rate = 3; +int turn_on = 1; + +int +parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:r:of")); + int c; + + while ((c = get_opts ()) != -1) + { + switch (c) + { + case 'o': + turn_on = 1; + break; + + case 'f': + turn_on = 0; + break; + + case 'k': + rategen_ior_ = get_opts.opt_arg (); + break; + + case 'r': + rate = ACE_OS::atoi (get_opts.opt_arg ()); + break; + + case '?': // display help for use of the server. + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s\n" + "-o (Turn on the rate generator)\n" + "-f (Turn off the rate generator)\n" + "-k <EC IOR> (default is file://rategen.ior)\n" + "-r <rate in hertz> (default is 3)\n" + "\n", + argv [0]), + -1); + break; + } + } + + if (rategen_ior_ == 0) + { + rategen_ior_ = ACE_TEXT("file://ec.ior"); + } + + if (rate == 0) + { + rate = 3; + } + + return 0; +} + +int +ACE_TMAIN (int argc, ACE_TCHAR *argv[]) +{ + try + { + // Initialize orb + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); + + if (parse_args (argc, argv) != 0) + { + return -1; + } + + CORBA::Object_var obj = + orb->string_to_object (rategen_ior_); + + BasicSP::EC_var pulser + = BasicSP::EC::_narrow (obj.in ()); + + if (CORBA::is_nil (pulser.in ())) + { + ACE_ERROR_RETURN ((LM_ERROR, + "Unable to acquire 'EC' objref\n"), + -1); + } + + pulser->hertz (rate); + + if (turn_on) + { + pulser->hertz (rate); + + ACE_DEBUG ((LM_EMERGENCY, "Start up the Event services\n")); + + pulser->start (); + } + else + { + pulser->stop (); + + ACE_DEBUG ((LM_EMERGENCY, "Stop the ES\n")); + } + + orb->destroy (); + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("Who is the culprit\n"); + ACE_ERROR_RETURN ((LM_ERROR, + "Uncaught CORBA exception\n"), + 1); + } + + return 0; +} diff --git a/modules/CIAO/examples/BasicSP/README.html b/modules/CIAO/examples/BasicSP/README.html new file mode 100644 index 00000000000..9bd740215e1 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/README.html @@ -0,0 +1,70 @@ +<HTML> +<!-- $Id$ --> +<BODY> + +This document describes how to compile/run the BasicSP (HUDisplay) example with the new DnC implementation. + +<H3> Installing </H3> + +<UL> + <LI> Make sure you have the latest DAnCE framework built. + </LI> + + <LI> + Get the latest cidl compiler (if you did not compile from source) from: + <A href="http://www.dre.vanderbilt.edu/cidlc/binary/"> + http://www.dre.vanderbilt.edu/cidlc/binary/ + </A> + + Copy the file into the <code> $CIAO_ROOT/bin </code> directory. + Build ACE, TAO, DAnCE before you proceed. + + <br><br> + <em>NOTE</em>: <br> + While buiding DAnCE, we also suggest that you build the tests in the $CIAO_ROOT/test directory and make sure + all the tests run OK before you proceed to try out the BasicSP example or any other DAnCE-based + applications. To do this, open the file + + $ACE_ROOT/bin/MakeProjectCreator/config/global.features, + + then change the line from "cidl = 0" to "cidl = 1". <br><br> + + After this, go back to the $CIAO_ROOT/DAnCE directory to generate your workspace/project or makefile by using MPC.<br> + After the DAnCE and the tests are build OK, go to the $CIAO_ROOT/DAnCE/tests/NodeApplicationTest directory and make + sure all the three perl scripts (run_test.pl, run_test_simple.pl and run_test_ex.pl) run successfully. + + <br><br> + </LI> + + <LI> Generate the project/make files for the <em> BasicSP </em> example directory: + <UL> + <LI> <em> linux: </em> <code> [in $CIAO_ROOT/examples/BasicSP] mwc.pl -type gnuace</code> </LI> + <LI> <em> windows: </em> <code> [in %CIAO_ROOT%/examples/BasicSP] mwc.pl -type vc71</code> </LI> + </UL> + </LI> + + + <LI> Build the generated solution/make files </LI> +</UL> + +<H3> Running the test </H3> + +<UL> + + <LI> Change into the $CIAO_ROOT/examples/BasicSP/descriptors directory Start NodeManagers (NodeDameon) by running <code> basicNodeDaemon.pl </code> + + <LI> Start the execution manager: + <code>$CIAO_ROOT/DAnCE/ExecutionManager/Execution_Manager -o EM.ior -i NodeManagerMap.dat </code> + </LI> + + <LI> Start the executor: + <code> $CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p flattern_deploymentplan.cdp -k file://EM.ior </code> + + <LI> After this, components should be deployed successfully. You can run the $CIAO_ROOT/examples/BasicSP/EC/controller to start the application. + Please make sure that the component IOR file for the EC component is present when you run this client. + + <BR/> + </LI> +</UL> + +</BODY> </HTML> diff --git a/modules/CIAO/examples/BasicSP/RepoMan_Usage.html b/modules/CIAO/examples/BasicSP/RepoMan_Usage.html new file mode 100644 index 00000000000..b0854d03b96 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/RepoMan_Usage.html @@ -0,0 +1,117 @@ +<!-- $Id$ --> + +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <title>Step-By-Step instructions about how to use Repository Manager with DAnCE</title> +</head> + +<body + text = "#000000" + link = "#000fff" + vLink= "#ff0f0f" + aLink = "#0000ff" + bgColor = "#ffffff"> + +<hr><h2>Step-By-Step instructions about how to use Repository Manager with DAnCE</h2><hr> + +<P>This file explains how to run the BasicSP example using the integrated Repository Manager (RepoMan).<P> + +<li>Be sure to add $CIAO_ROOT/HTTP_DOWNLOADED_LIBS into your PATH environment variable. This directory include the +downloaded component lib files.</li> <P> + +<li>If you want to use CORBA <em>naming service</em> to get the RepoMan object reference, then please start naming +service with multicast mode.</li> <P> +<PRE> + $TAO_ROOT/orbsvcs/Naming_Service/naming_service -m 1 +</PRE> + +<li>Build & start JAWS server.</li> <P> +<OL> +<li> Be sure to set JAWS_DOCUMENT_ROOT to the installation path of the RepoMan, i.e., +$CIAO_ROOT/DAnCE/RepositoryManager.</li> +<li> Start JAWS:</li> +<PRE> +Change the current directory into $ACE_ROOT/apps/JAWS/server +main +</PRE> +</OL> + +<li>Start RepoMan. Make sure you have BasicSP or BMClosedED, BMDevice, BMDisplay & EC installed in the +RepoMan you want to use. Please refer to the README file of RepoMan to get the instructions +about how to installed Packages into RepoMan.</li> <P> +<OL> +<li>Using ior file: </li> +<PRE> +Change the current directory into $CIAO_ROOT/DAnCE/RepositoryManager +RepositoryManagerDaemon -o +</PRE> +<li>Using Naming Service:</li> +<PRE> +Change the current directory into $CIAO_ROOT/DAnCE/RepositoryManager +RepositoryManagerDaemon -v [NameofRM] +</PRE> +</OL> + +<li>Change the current directory into $CIAO_ROOT/examples/BasicSP/descriptors.</li> <P> + +<li>Start NodeManagers.</li> <P> +<PRE> + basicNodeDaemon.pl +</PRE> + +<li>Start ExecutionManager.</li> <P> +<PRE> + $CIAO_ROOT/DAnCE/ExecutionManager/Execution_Manager -o EM.ior -i NodeManagerMap.dat +</PRE> + +<li>Start plan_launcher.</li> <P> +<OL> +<li>Not using RepoMan:</li> +<PRE> +$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p flattened_deploymentplan.cdp -k file://EM.ior +</PRE> + +<li>Using ior file to get RepoMan, providing the name of one composite componemt:</li> +<PRE> +$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p flattened_deploymentplan.cdp +-a BasicSP +-k file://EM.ior +-l file://$CIAO_ROOT/DAnCE/RepositoryManager/RepositoryManagerDaemon.ior +</PRE> + +<li>Using naming service to get RepoMan, providing the name of one composite componemt:</li> +<PRE> +$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p flattened_deploymentplan.cdp +-a BasicSP +-k file://EM.ior +-v [NameofRM] +</PRE> + +<li>Using naming service to get RepoMan, providing the names of several individual componemts:</li> +<PRE> +$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p flattened_deploymentplan.cdp +-a BMClosedED+BMDevice+BMDisplay+EC +-k file://EM.ior +-v [NameofRM] +</PRE> + +<li>Using naming service to get RepoMan, providing the types of several individual componemts:</li> +<PRE> +$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p flattened_deploymentplan.cdp +-e IDL:BasicSP/EC:1.0+IDL:BasicSP/BMDisplay:1.0+IDL:BasicSP/BMDevice:1.0+IDL:BasicSP/BMClosedED:1.0 +-k file://EM.ior +-v [NameofRM] +</PRE> +</OL> + +<li>Start the application.</li> +<PRE> + $CIAO_ROOT/examples/BasicSP/EC/controller +</PRE> + +<hr><b>Email: </b><a href="mailto:"</a<ADDRESS>shanshan.jiang@vanderbilt.edu</ADDRESS> + +</body> + +</html> diff --git a/modules/CIAO/examples/BasicSP/descriptors/BasicSP.dat b/modules/CIAO/examples/BasicSP/descriptors/BasicSP.dat new file mode 100644 index 00000000000..2131aeec973 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/descriptors/BasicSP.dat @@ -0,0 +1,4 @@ +EC corbaloc:iiop:localhost:10000/EC.NodeManager +BMDisplay corbaloc:iiop:localhost:20000/BMDisplay.NodeManager +BMClosedED corbaloc:iiop:localhost:30000/BMClosedED.NodeManager +BMDevice corbaloc:iiop:localhost:40000/BMDevice.NodeManager diff --git a/modules/CIAO/examples/BasicSP/descriptors/BasicSP_Homed.cdp b/modules/CIAO/examples/BasicSP/descriptors/BasicSP_Homed.cdp new file mode 100644 index 00000000000..cb705023256 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/descriptors/BasicSP_Homed.cdp @@ -0,0 +1,504 @@ +<Deployment:DeploymentPlan + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>BasicSP_Homed</label> + <UUID>BasicSP_Homed</UUID> + <implementation xmi:id="ECHomeImplementation"> + <name>ECHomeImplementation</name> + <source/> + <artifact xmi:idref="EC_ExecArtifact" /> + <artifact xmi:idref="EC_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>home factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_BasicSP_ECHome_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_BasicSP_ECHome_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>EC_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>EC_exec</string> + </value> + </value> + </execParameter> + </implementation> + <implementation xmi:id="BMClosedEDHomeImplementation"> + <name>BMClosedEDHomeImplementation</name> + <source/> + <artifact xmi:idref="BMClosedED_ExecArtifact" /> + <artifact xmi:idref="BMClosedED_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>home factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_BasicSP_BMClosedEDHome_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_BasicSP_BMClosedEDHome_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>BMClosedED_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>BMClosedED_exec</string> + </value> + </value> + </execParameter> + </implementation> + <implementation xmi:id="BMDeviceHomeImplementation"> + <name>BMDeviceHomeImplementation</name> + <source/> + <artifact xmi:idref="BMDevice_ExecArtifact" /> + <artifact xmi:idref="BMDevice_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>home factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_BasicSP_BMDeviceHome_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_BasicSP_BMDeviceHome_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>BMDevice_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>BMDevice_exec</string> + </value> + </value> + </execParameter> + </implementation> + <implementation xmi:id="BMDisplayHomeImplementation"> + <name>BMDisplayHomeImplementation</name> + <source/> + <artifact xmi:idref="BMDisplay_ExecArtifact" /> + <artifact xmi:idref="BMDisplay_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>home factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_BasicSP_BMDisplayHome_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_BasicSP_BMDisplayHome_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>BMDisplay_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>BMDisplay_exec</string> + </value> + </value> + </execParameter> + </implementation> + <implementation xmi:id="ECComponentImplementation"> + <name>ECComponentImplementation</name> + <source/> + <artifact xmi:idref="EC_ExecArtifact" /> + <artifact xmi:idref="EC_SvntArtifact" /> + <artifact xmi:idref="EC_StubArtifact" /> + </implementation> + <implementation xmi:id="BMClosedEDComponentImplementation"> + <name>BMClosedEDComponentImplementation</name> + <source/> + <artifact xmi:idref="BMClosedED_ExecArtifact" /> + <artifact xmi:idref="BMClosedED_SvntArtifact" /> + <artifact xmi:idref="BMClosedED_StubArtifact" /> + </implementation> + <implementation xmi:id="BMDeviceComponentImplementation"> + <name>BMDeviceComponentImplementation</name> + <source/> + <artifact xmi:idref="BMDevice_ExecArtifact" /> + <artifact xmi:idref="BMDevice_SvntArtifact" /> + <artifact xmi:idref="BMDevice_StubArtifact" /> + </implementation> + <implementation xmi:id="BMDisplayComponentImplementation"> + <name>BMDisplayComponentImplementation</name> + <source/> + <artifact xmi:idref="BMDisplay_ExecArtifact" /> + <artifact xmi:idref="BMDisplay_SvntArtifact" /> + <artifact xmi:idref="BMDisplay_StubArtifact" /> + </implementation> + <instance xmi:id="ECHomeInstance"> + <name>ECHome</name> + <node>EC</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="ECHomeImplementation" /> + </instance> + <instance xmi:id="BMClosedEDHomeInstance"> + <name>BMClosedEDHome</name> + <node>BMClosedED</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="BMClosedEDHomeImplementation" /> + </instance> + <instance xmi:id="BMDeviceHomeInstance"> + <name>BMDeviceHome</name> + <node>BMDevice</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="BMDeviceHomeImplementation" /> + </instance> + <instance xmi:id="BMDisplayHomeInstance"> + <name>BMDisplayHome</name> + <node>BMDisplay</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="BMDisplayHomeImplementation" /> + </instance> + <instance xmi:id="ECComponentInstance"> + <name>ECComponent</name> + <node>EC</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="ECComponentImplementation" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>ECHome</string> + </value> + </value> + </configProperty> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>rategen.ior</string> + </value> + </value> + </configProperty> + </instance> + <instance xmi:id="BMClosedEDComponentInstance"> + <name>BMClosedEDComponent</name> + <node>BMClosedED</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="BMClosedEDComponentImplementation" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>BMClosedEDHome</string> + </value> + </value> + </configProperty> + </instance> + <instance xmi:id="BMDeviceComponentInstance"> + <name>BMDeviceComponent</name> + <node>BMDevice</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="BMDeviceComponentImplementation" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>BMDeviceHome</string> + </value> + </value> + </configProperty> + </instance> + <instance xmi:id="BMDisplayComponentInstance"> + <name>BMDisplayComponent</name> + <node>BMDisplay</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="BMDisplayComponentImplementation" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>BMDisplayHome</string> + </value> + </value> + </configProperty> + </instance> + + <connection> + <name>datain_data_readBasicSP.ComponentImplementations.BasicSP.BasicSP.BMClosedEDBMDeviceComponentInstance</name> + <internalEndpoint> + <portName>datain</portName> + <provider>false</provider> + <kind>SimplexReceptacle</kind> + <instance xmi:idref="BMClosedEDComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>data_read</portName> + <provider>true</provider> + <kind>Facet</kind> + <instance xmi:idref="BMDeviceComponentInstance" /> + </internalEndpoint> + </connection> + + <connection> + <name>comp_data_dataoutBMDisplayComponentInstanceBMDisplayComponentInstance</name> + <internalEndpoint> + <portName>comp_data</portName> + <provider>false</provider> + <kind>SimplexReceptacle</kind> + <instance xmi:idref="BMDisplayComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>dataout</portName> + <provider>true</provider> + <kind>Facet</kind> + <instance xmi:idref="BMClosedEDComponentInstance" /> + </internalEndpoint> + </connection> + + <connection> + <name>timeout_timeoutECComponentInstanceBMDeviceComponentInstance</name> + <internalEndpoint> + <portName>timeout</portName> + <provider>false</provider> + <kind>EventPublisher</kind> + <instance xmi:idref="ECComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>timeout</portName> + <provider>true</provider> + <kind>EventConsumer</kind> + <instance xmi:idref="BMDeviceComponentInstance" /> + </internalEndpoint> + </connection> + + <connection> + <name>data_available_in_availBMDeviceComponentInstanceBMDisplayComponentInstance</name> + <internalEndpoint> + <portName>data_available</portName> + <provider>false</provider> + <kind>EventPublisher</kind> + <instance xmi:idref="BMDeviceComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>in_avail</portName> + <provider>true</provider> + <kind>EventConsumer</kind> + <instance xmi:idref="BMClosedEDComponentInstance" /> + </internalEndpoint> + </connection> + + <connection> + <name>out_avail_data_readyBMDisplayComponentInstanceBMDisplayComponentInstance</name> + <internalEndpoint> + <portName>out_avail</portName> + <provider>false</provider> + <kind>EventPublisher</kind> + <instance xmi:idref="BMClosedEDComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>data_ready</portName> + <provider>true</provider> + <kind>EventConsumer</kind> + <instance xmi:idref="BMDisplayComponentInstance" /> + </internalEndpoint> + </connection> + + <artifact xmi:id="BMDisplay_ExecArtifact"> + <name>BMDisplay_exec</name> + <source/> + <node/> + <location>BMDisplay_exec</location> + </artifact> + <artifact xmi:id="BMDisplay_SvntArtifact"> + <name>BMDisplay_svnt</name> + <source/> + <node/> + <location>BMDisplay_svnt</location> + </artifact> + <artifact xmi:id="BMDisplay_StubArtifact"> + <name>BMDisplay_stub</name> + <source/> + <node/> + <location>BMDisplay_stub</location> + </artifact> + <artifact xmi:id="BMClosedED_ExecArtifact"> + <name>BMClosedED_exec</name> + <source/> + <node/> + <location>BMClosedED_exec</location> + </artifact> + <artifact xmi:id="BMClosedED_SvntArtifact"> + <name>BMClosedED_svnt</name> + <source/> + <node/> + <location>BMClosedED_svnt</location> + </artifact> + <artifact xmi:id="BMClosedED_StubArtifact"> + <name>BMClosedED_stub</name> + <source/> + <node/> + <location>BMClosedED_stub</location> + </artifact> + <artifact xmi:id="BMDevice_ExecArtifact"> + <name>BMDevice_exec</name> + <source/> + <node/> + <location>BMDevice_exec</location> + </artifact> + <artifact xmi:id="BMDevice_SvntArtifact"> + <name>BMDevice_svnt</name> + <source/> + <node/> + <location>BMDevice_svnt</location> + </artifact> + <artifact xmi:id="BMDevice_StubArtifact"> + <name>BMDevice_stub</name> + <source/> + <node/> + <location>BMDevice_stub</location> + </artifact> + <artifact xmi:id="EC_ExecArtifact"> + <name>EC_exec</name> + <source/> + <node/> + <location>EC_exec</location> + </artifact> + <artifact xmi:id="EC_SvntArtifact"> + <name>EC_svnt</name> + <source/> + <node/> + <location>EC_svnt</location> + </artifact> + <artifact xmi:id="EC_StubArtifact"> + <name>EC_stub</name> + <source/> + <node/> + <location>EC_stub</location> + </artifact> +</Deployment:DeploymentPlan> diff --git a/modules/CIAO/examples/BasicSP/descriptors/BasicSP_Unhomed.cdp b/modules/CIAO/examples/BasicSP/descriptors/BasicSP_Unhomed.cdp new file mode 100644 index 00000000000..469858ec97d --- /dev/null +++ b/modules/CIAO/examples/BasicSP/descriptors/BasicSP_Unhomed.cdp @@ -0,0 +1,408 @@ +<Deployment:DeploymentPlan + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>BasicSP_Unhomed</label> + <UUID>BasicSP_Unhomed</UUID> + + <implementation xmi:id="BMDisplayComponentImplementation"> + <name>BMDisplayComponentImplementation</name> + <source/> + <artifact xmi:idref="BMDisplay_ExecArtifact" /> + <artifact xmi:idref="BMDisplay_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>component factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_BasicSP_BMDisplay_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_BasicSP_BMDisplay_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>BMDisplay_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>BMDisplay_exec</string> + </value> + </value> + </execParameter> + </implementation> + + <implementation xmi:id="BMClosedEDComponentImplementation"> + <name>BMClosedEDComponentImplementation</name> + <source/> + <artifact xmi:idref="BMClosedED_ExecArtifact" /> + <artifact xmi:idref="BMClosedED_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>component factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_BasicSP_BMClosedED_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_BasicSP_BMClosedED_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>BMClosedED_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>BMClosedED_exec</string> + </value> + </value> + </execParameter> + </implementation> + + <implementation xmi:id="BMDeviceComponentImplementation"> + <name>BMDeviceComponentImplementation</name> + <source/> + <artifact xmi:idref="BMDevice_ExecArtifact" /> + <artifact xmi:idref="BMDevice_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>component factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_BasicSP_BMDevice_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_BasicSP_BMDevice_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>BMDevice_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>BMDevice_exec</string> + </value> + </value> + </execParameter> + </implementation> + + <implementation xmi:id="ECComponentImplementation"> + <name>ECComponentImplementation</name> + <source/> + <artifact xmi:idref="EC_ExecArtifact" /> + <artifact xmi:idref="EC_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>component factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_BasicSP_EC_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_BasicSP_EC_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>EC_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>EC_exec</string> + </value> + </value> + </execParameter> + </implementation> + <instance xmi:id="BMDisplayComponentInstance"> + <name>BMDisplayComponent</name> + <node>BMDisplay</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="BMDisplayComponentImplementation" /> + </instance> + <instance xmi:id="BMClosedEDComponentInstance"> + <name>BMClosedEDComponent</name> + <node>BMClosedED</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="BMClosedEDComponentImplementation" /> + </instance> + <instance xmi:id="BMDeviceComponentInstance"> + <name>BMDeviceComponent</name> + <node>BMDevice</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="BMDeviceComponentImplementation" /> + </instance> + <instance xmi:id="ECComponentInstance"> + <name>ECComponent</name> + <node>EC</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="ECComponentImplementation" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>rategen.ior</string> + </value> + </value> + </configProperty> + </instance> + + <connection> + <name>datain_data_readBasicSP.ComponentImplementations.BasicSP.BasicSP.BMClosedEDBMDeviceComponentInstance</name> + <internalEndpoint> + <portName>datain</portName> + <provider>false</provider> + <kind>SimplexReceptacle</kind> + <instance xmi:idref="BMClosedEDComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>data_read</portName> + <provider>true</provider> + <kind>Facet</kind> + <instance xmi:idref="BMDeviceComponentInstance" /> + </internalEndpoint> + </connection> + + <connection> + <name>comp_data_dataoutBMDisplayComponentInstanceBMDisplayComponentInstance</name> + <internalEndpoint> + <portName>comp_data</portName> + <provider>false</provider> + <kind>SimplexReceptacle</kind> + <instance xmi:idref="BMDisplayComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>dataout</portName> + <provider>true</provider> + <kind>Facet</kind> + <instance xmi:idref="BMClosedEDComponentInstance" /> + </internalEndpoint> + </connection> + + <connection> + <name>timeout_timeoutECComponentInstanceBMDeviceComponentInstance</name> + <internalEndpoint> + <portName>timeout</portName> + <provider>false</provider> + <kind>EventPublisher</kind> + <instance xmi:idref="ECComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>timeout</portName> + <provider>true</provider> + <kind>EventConsumer</kind> + <instance xmi:idref="BMDeviceComponentInstance" /> + </internalEndpoint> + </connection> + + <connection> + <name>data_available_in_availBMDeviceComponentInstanceBMDisplayComponentInstance</name> + <internalEndpoint> + <portName>data_available</portName> + <provider>false</provider> + <kind>EventPublisher</kind> + <instance xmi:idref="BMDeviceComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>in_avail</portName> + <provider>true</provider> + <kind>EventConsumer</kind> + <instance xmi:idref="BMClosedEDComponentInstance" /> + </internalEndpoint> + </connection> + + <connection> + <name>out_avail_data_readyBMDisplayComponentInstanceBMDisplayComponentInstance</name> + <internalEndpoint> + <portName>out_avail</portName> + <provider>false</provider> + <kind>EventPublisher</kind> + <instance xmi:idref="BMClosedEDComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>data_ready</portName> + <provider>true</provider> + <kind>EventConsumer</kind> + <instance xmi:idref="BMDisplayComponentInstance" /> + </internalEndpoint> + </connection> + + <artifact xmi:id="BMDisplay_ExecArtifact"> + <name>BMDisplay_exec</name> + <source/> + <node/> + <location>BMDisplay_exec</location> + </artifact> + <artifact xmi:id="BMDisplay_SvntArtifact"> + <name>BMDisplay_svnt</name> + <source/> + <node/> + <location>BMDisplay_svnt</location> + </artifact> + <artifact xmi:id="BMDisplay_StubArtifact"> + <name>BMDisplay_stub</name> + <source/> + <node/> + <location>BMDisplay_stub</location> + </artifact> + <artifact xmi:id="BMClosedED_ExecArtifact"> + <name>BMClosedED_exec</name> + <source/> + <node/> + <location>BMClosedED_exec</location> + </artifact> + <artifact xmi:id="BMClosedED_SvntArtifact"> + <name>BMClosedED_svnt</name> + <source/> + <node/> + <location>BMClosedED_svnt</location> + </artifact> + <artifact xmi:id="BMClosedED_StubArtifact"> + <name>BMClosedED_stub</name> + <source/> + <node/> + <location>BMClosedED_stub</location> + </artifact> + <artifact xmi:id="EC_ExecArtifact"> + <name>EC_exec</name> + <source/> + <node/> + <location>EC_exec</location> + </artifact> + <artifact xmi:id="EC_SvntArtifact"> + <name>EC_svnt</name> + <source/> + <node/> + <location>EC_svnt</location> + </artifact> + <artifact xmi:id="EC_StubArtifact"> + <name>EC_stub</name> + <source/> + <node/> + <location>EC_stub</location> + </artifact> + <artifact xmi:id="BMDevice_ExecArtifact"> + <name>BMDevice_exec</name> + <source/> + <node/> + <location>BMDevice_exec</location> + </artifact> + <artifact xmi:id="BMDevice_SvntArtifact"> + <name>BMDevice_svnt</name> + <source/> + <node/> + <location>BMDevice_svnt</location> + </artifact> + <artifact xmi:id="BMDevice_StubArtifact"> + <name>BMDevice_stub</name> + <source/> + <node/> + <location>BMDevice_stub</location> + </artifact> +</Deployment:DeploymentPlan> diff --git a/modules/CIAO/examples/BasicSP/descriptors/run_test.pl b/modules/CIAO/examples/BasicSP/descriptors/run_test.pl new file mode 100755 index 00000000000..1e2c88135e1 --- /dev/null +++ b/modules/CIAO/examples/BasicSP/descriptors/run_test.pl @@ -0,0 +1,193 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{'ACE_ROOT'}/bin"; +use PerlACE::Run_Test; + +$CIAO_ROOT = "$ENV{'CIAO_ROOT'}"; +$TAO_ROOT = "$ENV{'TAO_ROOT'}"; +$DAnCE = "$ENV{'DANCE_ROOT'}"; +$daemons_running = 0; +$em_running = 0; +$ns_running = 0; +$daemons = 4; +@ports = ( 10000, 20000, 30000, 40000 ); +@iorfiles = ( "NodeApp1.ior", "NodeApp2.ior", "NodeApp3.ior", "NodeApp4.ior" ); +@nodenames = ( "EC", "BMDisplay", "BMClosedED", "BMDevice" ); +$status = 0; +$dat_file = "BasicSP.dat"; +$cdp_file = "BasicSP_Unhomed.cdp"; +$controller_exec = "$CIAO_ROOT/examples/BasicSP/EC/controller"; + +PerlACE::add_lib_path ('../lib'); + +$nsior = PerlACE::LocalFile ("ns.ior"); + +unlink $nsior; + +$E = 0; +$EM = 0; + +# Delete if there are any .ior files. +sub delete_ior_files { + for ($i = 0; $i < $daemons; ++$i) { + unlink $iorfiles[$i]; + } + unlink PerlACE::LocalFile ("EM.ior"); + unlink PerlACE::LocalFile ("rategen.ior"); + unlink PerlACE::LocalFile ("DAM.ior"); + unlink PerlACE::LocalFile ("ns.ior"); +} + +sub kill_node_daemons { + for ($i = 0; $i < $daemons; ++$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } +} + +sub kill_open_processes { + if ($daemons_running == 1) { + kill_node_daemons (); + } + + if ($em_running == 1) { + $EM->Kill (); + $EM->TimedWait (1); + } + + if ($ns_running == 1) { + $NS->Kill (); + $NS->TimedWait (1); + } + +} + +sub run_node_daemons { + for ($i = 0; $i < $daemons; ++$i) + { + $iorfile = $iorfiles[$i]; + $port = $ports[$i]; + $nodename = $nodenames[$i]; + $iiop = "iiop://localhost:$port"; + $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + + $d_cmd = "$DAnCE/bin/dance_node_manager"; + $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --instance-nc corbaloc:rir:/NameService"; + print "$d_param\n"; + $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param); + $result = $Daemons[$i]->Spawn (); + push(@processes, $Daemons[$i]); + + if (PerlACE::waitforfile_timed ($iorfile, + 30) == -1) { + print STDERR + "ERROR: The ior $iorfile file of node daemon $i could not be found\n"; + for (; $i >= 0; --$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } + return -1; + } + } + return 0; +} + +if ($#ARGV == 0) +{ + $cdp_file = $ARGV[0]; +} + +delete_ior_files (); + +# Invoke naming service + +$NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior"); + +$NS->Spawn (); + +print STDERR "Starting Naming Service\n"; + +if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1) +{ + print STDERR "ERROR: cannot find naming service IOR file\n"; + $NS->Kill (); + exit 1; +} + +$ns_running = 1; + +# Set up NamingService environment +$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService"; + + +# Invoke node daemons. +print "Invoking node daemons\n"; +$status = run_node_daemons (); + +if ($status != 0) { + print STDERR "ERROR: Unable to execute the node daemons\n"; + kill_open_processes (); + exit 1; +} + +$daemons_running = 1; + +# Invoke execution manager. +print "Invoking execution manager\n"; +$EM = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager", + "-eEM.ior --node-map $dat_file"); +$EM->Spawn (); + +if (PerlACE::waitforfile_timed ("EM.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR + "ERROR: The ior file of execution manager could not be found\n"; + kill_open_processes (); + exit 1; +} + +$em_running = 1; + +# Invoke executor - start the application -. +print "Invoking executor - start the application -\n"; +$E = + new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher", + "-x $cdp_file -k file://EM.ior"); + +$E->SpawnWaitKill (5000); + +if (PerlACE::waitforfile_timed ( + "rategen.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: The ior file of receiver could not be found\n"; + kill_open_processes (); + exit 1; +} + +print "Invoking the controller\n"; +$controller = new PerlACE::Process ("$controller_exec", "-o"); +$result = $controller->SpawnWaitKill (3000); + +if ($result != 0) { + print STDERR "ERROR: The controller returned $result\n"; + $status = 1; +} + +sleep 10; +# Invoke executor - stop the application -. +print "Invoking executor - stop the application -\n"; +$E = + new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher", + "-k file://EM.ior -x $cdp_file -q"); +$E->SpawnWaitKill (3000); + +print "Executor returned.\n"; +print "Shutting down rest of the processes.\n"; + +delete_ior_files (); +kill_open_processes (); + +exit $status; diff --git a/modules/CIAO/examples/DevGuideExamples/CIAO.mwc b/modules/CIAO/examples/DevGuideExamples/CIAO.mwc new file mode 100644 index 00000000000..dd297256b34 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/CIAO.mwc @@ -0,0 +1,5 @@ +// -*- MPC -*- +// $Id$ + +workspace { +} diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.idl new file mode 100644 index 00000000000..67bb016e157 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.idl @@ -0,0 +1,24 @@ +// $Id$ + +/** + * @file Administrator.idl + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#ifndef ADMINISTRATOR_IDL +#define ADMINISTRATOR_IDL + +#include <Components.idl> +#include "Runnable.idl" +#include "Publication.idl" + +component Administrator { + uses multiple Runnable runnables; + uses multiple Publication content; +}; + +home AdministratorHome manages Administrator {}; + +#endif + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.mpc new file mode 100644 index 00000000000..4f7ce593400 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator.mpc @@ -0,0 +1,110 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -p Messenger Administrator" + +project(Messenger_Administrator_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=ADMINISTRATOR_STUB_Export \ + -Wb,stub_export_include=Administrator_stub_export.h \ + -Wb,skel_export_macro=ADMINISTRATOR_SVNT_Export \ + -Wb,skel_export_include=Administrator_svnt_export.h \ + -Wb,exec_export_macro=ADMINISTRATOR_EXEC_Export \ + -Wb,exec_export_include=Administrator_exec_export.h + + IDL_Files { + Administrator.idl + } +} + +project(Messenger_Administrator_lem_gen) : ciaoidldefaults { + custom_only = 1 + after += Messenger_Administrator_idl_gen + idlflags += -Wb,export_macro=ADMINISTRATOR_EXEC_Export \ + -Wb,export_include=Administrator_exec_export.h \ + -SS + + IDL_Files { + AdministratorE.idl + } +} + +project(Messenger_Administrator_stub) : ccm_stub { + after += Messenger_Administrator_idl_gen Messenger_stub + libs += Messenger_stub + + sharedname = Administrator_stub + dynamicflags = ADMINISTRATOR_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + AdministratorC.cpp + } + + Header_Files { + AdministratorC.h + Administrator_stub_export.h + } + + Inline_Files { + AdministratorC.inl + } +} + +project(Messenger_Administrator_exec) : ciao_executor { + after += Messenger_Administrator_lem_gen Messenger_Administrator_stub + sharedname = Administrator_exec + libs += Administrator_stub Messenger_stub + + dynamicflags = ADMINISTRATOR_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + AdministratorEC.cpp + Administrator_exec_i.cpp + } + + Header_Files { + AdministratorEC.h + Administrator_exec_i.h + Administrator_exec_export.h + } + + Inline_Files { + AdministratorEC.inl + } +} + + +project(Messenger_Administrator_svnt) : ciao_servant { + after += Messenger_svnt Messenger_Administrator_exec + sharedname = Administrator_svnt + libs += Administrator_exec \ + Administrator_stub \ + Messenger_svnt \ + Messenger_stub + + dynamicflags = ADMINISTRATOR_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + AdministratorS.cpp + Administrator_svnt.cpp + } + + Header_Files { + AdministratorS.h + Administrator_svnt.h + Administrator_svnt_export.h + } + + Inline_Files { + AdministratorS.inl + } +} + + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client.cpp new file mode 100644 index 00000000000..15378b35b78 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client.cpp @@ -0,0 +1,120 @@ +// $Id$ + +/** + * @file Administrator_Client.cpp + * + * Do NOT put this file in a project; it is included by + * Administrator_Client_IDL2.cpp and Administrator_Client_IDL3.cpp + * This file will not build on its own. + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#include "ace/Get_Opt.h" +#include <iostream> + +const ACE_TCHAR* ior = ACE_TEXT ("file://Messenger.ior"); + +int +parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, "k:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'k': + ior = get_opts.optarg; + break; + + case '?': + default: + std::cerr << "usage: " << argv[0] << " -k <ior>" << std::endl; + return -1; + break; + } + return 0; +} + +int +svc( Runnable_ptr runnable, Publication_ptr publication ) +{ + enum SelectionType { START=1, STOP, CHANGE_PERIOD, CHANGE_TEXT, EXIT }; + + bool done = false; + do { + std::cout << "\nWhat do you want to do to the Messenger(s)?" << std::endl; + std::cout << START << ". Start" << std::endl; + std::cout << STOP << ". Stop" << std::endl; + std::cout << CHANGE_PERIOD << ". Change Publication Period" << std::endl; + std::cout << CHANGE_TEXT << ". Change Publication Text" << std::endl; + std::cout << EXIT << ". Exit" << std::endl; + + char selection_text[10]; + std::cout << "Please enter a selection: "; + std::cin.getline( selection_text, sizeof(selection_text) ); + int selection = ACE_OS::atoi(selection_text); + + switch (selection) { + case START: { + runnable->start(); + break; + } + case STOP: { + runnable->stop(); + break; + } + case CHANGE_PERIOD: { + char period[10]; + std::cout << "Please enter a new period in seconds: "; + std::cin.getline( period, sizeof( period ) ); + publication->period( ACE_OS::atoi(period) ); + break; + } + case CHANGE_TEXT: { + char buffer[1024]; + std::cout << "Please enter new text: "; + std::cin.getline( buffer, sizeof(buffer) ); + publication->text( buffer ); + break; + } + case EXIT: { + done = true; + break; + } + default: + std::cout << "Please enter a valid option" << std::endl; + } + } while ( !done ); + + return 0; +} + +int +ACE_TMAIN (int argc, ACE_TCHAR *argv[]) +{ + if (parse_args (argc, argv) != 0) { + return 1; + } + + try { + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); + + // get Messenger object + CORBA::Object_var obj = orb->string_to_object(ior); + Messenger_var messenger = Messenger::_narrow (obj.in()); + + Runnable_var runnable = messenger->provide_control(); + Publication_var publication = messenger->provide_content (); + + svc( runnable.in(), publication.in() ); + + return 0; + } + catch(const CORBA::Exception& ex) { + std::cerr << "Caught CORBA::Exception: " << std::endl << ex << std::endl; + } + + return 1; +} diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.cpp new file mode 100644 index 00000000000..399faa40389 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.cpp @@ -0,0 +1,10 @@ +// $Id$ + +/** + * @file Administrator_Client_IDL2.cpp + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#include "idl2/Messenger_IDL2C.h" +#include "Administrator_Client.cpp" diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc new file mode 100644 index 00000000000..07ff70dc8e2 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL2.mpc @@ -0,0 +1,48 @@ +// $Id$ + +project(Administrator_Client_IDL2_Compile): taoidl3toidl2defaults { + requires += dummy_label + after += Messenger_idl_gen Messenger_Administrator_idl_gen + // ensures that only idl3-to-idl2 processing is performed + custom_only = 1 + + idl3toidl2flags += -I. -o idl2 + + IDL3TOIDL2_Files { + gendir = idl2 + Runnable.idl + Publication.idl + Message.idl + History.idl + Administrator.idl + Messenger.idl + } +} + +project(Administrator_Client_IDL2): ccm_stub, valuetype { + requires += dummy_label + after += Administrator_Client_IDL2_Compile + + exename = Administrator_Client_IDL2 + idlflags += -Sm -Iidl2 -o idl2 -SS + + IDL_Files { + gendir = idl2 + idl2/Runnable_IDL2.idl + idl2/Publication_IDL2.idl + idl2/Message_IDL2.idl + idl2/History_IDL2.idl + idl2/Administrator_IDL2.idl + idl2/Messenger_IDL2.idl + } + + Source_Files { + Administrator_Client_IDL2.cpp + idl2/Administrator_IDL2C.cpp + idl2/Messenger_IDL2C.cpp + idl2/Publication_IDL2C.cpp + idl2/Runnable_IDL2C.cpp + idl2/History_IDL2C.cpp + idl2/Message_IDL2C.cpp + } +} diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.cpp new file mode 100644 index 00000000000..6e83b57165f --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.cpp @@ -0,0 +1,10 @@ +// $Id$ + +/** + * @file Administrator_Client_IDL3.cpp + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#include "MessengerC.h" +#include "Administrator_Client.cpp" diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc new file mode 100644 index 00000000000..06cf093c861 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_Client_IDL3.mpc @@ -0,0 +1,32 @@ +// $Id$ + +// @file Administrator_Client_IDL3.mpc +// +// @author Don Busch <busch_d@ociweb.com> + +project(Administrator_Client_IDL3): ccm_stub, valuetype { + after += Messenger_stub + libs += Messenger_stub + after += Administrator_Client_IDL2_Compile + + exename = Administrator_Client_IDL3 + + IDL_Files { + // IDL stubs are linked from the Messenger_stub library; + // this empty section prevents all of the IDL stub code from + // being linked into this executable as well + } + + Header_Files { + // this empty section prevents all of the header files + // being includes in this project + } + + Source_Files { + Administrator_Client_IDL3.cpp + } + + Inline_Files { + } +} + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp new file mode 100644 index 00000000000..cfb6b5b7e71 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.cpp @@ -0,0 +1,259 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#include "Administrator_exec_i.h" + +// MY CODE +#include <iostream> +#include <string> + +namespace CIAO_Administrator_Impl +{ + //================================================================== + // Component Executor Implementation Class: Administrator_exec_i + //================================================================== + + Administrator_exec_i::Administrator_exec_i (void) + { + } + + Administrator_exec_i::~Administrator_exec_i (void) + { + } + + // Supported or inherited operations. + + // Attribute operations. + + // Port operations. + + // Operations from Components::SessionComponent + + void + Administrator_exec_i::set_session_context ( + ::Components::SessionContext_ptr ctx) + { + this->context_ = + ::CCM_Administrator_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + { + throw ::CORBA::INTERNAL (); + } + } + + void + Administrator_exec_i::ccm_activate () + { + // Your code here. + + // MY CODE + ACE_DEBUG((LM_INFO, ACE_TEXT("ccm_activate\n" ))); + + // Activate the Task + this->activate(); + } + + void + Administrator_exec_i::ccm_passivate () + { + // Your code here. + + // MY CODE + ACE_DEBUG((LM_INFO, ACE_TEXT("ccm_passivate\n" ))); + } + + void + Administrator_exec_i::ccm_remove () + { + // Your code here. + ACE_DEBUG((LM_INFO, ACE_TEXT("ccm_remove\n"))); + } + + void + Administrator_exec_i::configuration_complete (void) + { + ACE_DEBUG ((LM_INFO, ACE_TEXT("configuration_complete\n"))); + } + + // Overridden from ACE_Task_Base + int + Administrator_exec_i::svc() + { + enum SelectionType { START=1, STOP, CHANGE_PERIOD, CHANGE_TEXT,EXIT }; + + bool done = false; + do { + std::cout << "\nWhat do you want to do to the Messenger(s)?" << std::endl; + std::cout << START << ". Start" << std::endl; + std::cout << STOP << ". Stop" << std::endl; + std::cout << CHANGE_PERIOD << ". Change Publication Period" << std::endl; + std::cout << CHANGE_TEXT << ". Change Publication Text" << std::endl; + std::cout << EXIT << ". Exit" << std::endl; + + char selection_text[10]; + std::cout << "Please enter a selection: "; + std::cin.getline( selection_text, sizeof(selection_text) ); + int selection = ACE_OS::atoi(selection_text); + + switch (selection) { + case START: + startPublishing(); + break; + case STOP: + stopPublishing(); + break; + case CHANGE_PERIOD: + changePublicationPeriod(); + break; + case CHANGE_TEXT: + changePublicationText(); + break; + case EXIT: { + done = true; + break; + } + default: + std::cout << "Please enter a valid option" << std::endl; + } + } while ( !done ); + + return 0; + } + + void Administrator_exec_i::startPublishing() + { + // Get the attached Runnable facet(s) + ::Administrator::runnablesConnections_var connections = + this->context_->get_connections_runnables(); + + std::cout << "Starting Publication" << std::endl; + for ( CORBA::ULong i = 0; i < connections->length(); ++i ) { + Runnable_var runnable = (*connections)[i].objref; + runnable->start(); + } + } + + void Administrator_exec_i::stopPublishing() + { + // Get the attached Runnable facet(s) + ::Administrator::runnablesConnections_var connections = + this->context_->get_connections_runnables(); + + std::cout << "Stopping Publication" << std::endl; + for ( CORBA::ULong i = 0; i < connections->length(); ++i ) { + Runnable_var runnable = (*connections)[i].objref; + runnable->stop(); + } + } + + void Administrator_exec_i::changePublicationPeriod() + { + // Get the attached Publication facet(s) + ::Administrator::contentConnections_var contents = + this->context_->get_connections_content(); + + char period[10]; + std::cout << "Please enter a new period in seconds: "; + std::cin.getline( period, sizeof( period ) ); + for ( CORBA::ULong i = 0; i < contents->length(); ++i ) { + Publication_var publication = (*contents)[i].objref; + publication->period( ACE_OS::atoi(period) ); + } + } + + void Administrator_exec_i::changePublicationText() + { + // Get the attached Publication facet(s) + ::Administrator::contentConnections_var contents = + this->context_->get_connections_content(); + + char buffer[1024]; + std::cout << "Please enter new text: "; + std::cin.getline( buffer, sizeof(buffer) ); + for ( CORBA::ULong i = 0; i < contents->length(); ++i ) { + Publication_var publication = (*contents)[i].objref; + publication->text( buffer ); + } + } + + extern "C" ADMINISTRATOR_EXEC_Export ::Components::EnterpriseComponent_ptr + create_Administrator_Impl (void) + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_RETURN (retval, + Administrator_exec_i, + ::Components::EnterpriseComponent::_nil ()); + + return retval; + } + + //================================================================== + // Home Executor Implementation Class: AdministratorHome_exec_i + //================================================================== + + AdministratorHome_exec_i::AdministratorHome_exec_i (void) + { + } + + AdministratorHome_exec_i::~AdministratorHome_exec_i (void) + { + } + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + ::Components::EnterpriseComponent_ptr + AdministratorHome_exec_i::create () + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + Administrator_exec_i, + ::CORBA::NO_MEMORY ()); + + return retval; + } + + extern "C" ADMINISTRATOR_EXEC_Export ::Components::HomeExecutorBase_ptr + create_AdministratorHome_Impl (void) + { + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + AdministratorHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; + } +} diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.h new file mode 100644 index 00000000000..796395a2042 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Administrator_exec_i.h @@ -0,0 +1,112 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_ADMINISTRATOR_EXEC_H +#define CIAO_ADMINISTRATOR_EXEC_H + +#include /**/ "ace/pre.h" + +#include "AdministratorEC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Administrator_exec_export.h" +#include "tao/LocalObject.h" + +#include "ace/Task.h" + +namespace CIAO_Administrator_Impl +{ + class ADMINISTRATOR_EXEC_Export Administrator_exec_i + : public virtual Administrator_Exec, + public virtual ::CORBA::LocalObject, + public virtual ACE_Task_Base + { + public: + Administrator_exec_i (void); + virtual ~Administrator_exec_i (void); + + // Supported or inherited operations. + + // Attribute operations. + + // Port operations. + + // Operations from Components::SessionComponent + + virtual void + set_session_context ( + ::Components::SessionContext_ptr ctx); + + virtual void configuration_complete (void); + + virtual void ccm_activate (); + + virtual void ccm_passivate (); + + virtual void ccm_remove (); + + // Overridden from ACE_Task_Base + int svc(); + + private: + + void startPublishing(); + void stopPublishing(); + void changePublicationPeriod(); + void changePublicationText(); + + ::CCM_Administrator_Context_var context_; + }; + + extern "C" ADMINISTRATOR_EXEC_Export ::Components::EnterpriseComponent_ptr + create_Administrator_Impl (void); + + class ADMINISTRATOR_EXEC_Export AdministratorHome_exec_i + : public virtual AdministratorHome_Exec, + public virtual ::CORBA::LocalObject + { + public: + AdministratorHome_exec_i (void); + virtual ~AdministratorHome_exec_i (void); + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + virtual ::Components::EnterpriseComponent_ptr + create (); + }; + + extern "C" ADMINISTRATOR_EXEC_Export ::Components::HomeExecutorBase_ptr + create_AdministratorHome_Impl (void); +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_ADMINISTRATOR_EXEC_H */ diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/History.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/History.idl new file mode 100644 index 00000000000..c83cadf03bb --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/History.idl @@ -0,0 +1,19 @@ +// $Id$ + +/** + * @file History.idl + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#ifndef HISTORY_IDL +#define HISTORY_IDL + +#include "Message.idl" + +interface History { + Messages get_all(); + Message get_latest(); +}; + +#endif diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.cpp new file mode 100644 index 00000000000..1afb8060fc2 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.cpp @@ -0,0 +1,95 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#include "History_exec_i.h" + +namespace CIAO_Messenger_Impl +{ + //================================================================== + // Facet Executor Implementation Class: History_exec_i + //================================================================== + + History_exec_i::History_exec_i (void) + { + } + + History_exec_i::~History_exec_i (void) + { + } + + // Operations from ::History + + ::Messages * + History_exec_i::get_all () + { + // Your code here. + + // MY CODE + ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_); + + ACE_DEBUG((LM_INFO, ACE_TEXT("History_i::get_all\n") )); + + // create a Messages sequence, set its length + ::Messages* retval = new ::Messages(); + retval->length( this->messages_.size() ); + + // iterate through the MessageList, copying messages into the return sequence + CORBA::ULong i = 0; + for ( MessageList::iterator messageItr = this->messages_.begin(); + messageItr != this->messages_.end(); + ++messageItr ) + { + // because the MessageList contains Message_vars, reference counting + // upon assignment into the sequence is handled properly for us. + (*retval)[i++] = *messageItr; + } + return retval; + } + + ::Message * + History_exec_i::get_latest () + { + // Your code here. + + // MY CODE + ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_); + + ACE_DEBUG((LM_INFO, ACE_TEXT("History_i::get_latest\n") )); + + // just get the last message from the history. because the MessageList + // contains Message_vars, _var to _var assigmnent handles the reference + // counting properly for us. + ::Message_var retval = this->messages_.back(); + return retval._retn(); + } + + // MY CODE + void + History_exec_i::add( ::Message* message ) + { + ACE_Guard<TAO_SYNCH_MUTEX> guard(lock_); + + // bump up the reference count; we don't own it. + // the _var in the STL list takes ownership of the "copy" + message->_add_ref(); + this->messages_.push_back( message ); + } +} + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.h new file mode 100644 index 00000000000..5563a1b033b --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/History_exec_i.h @@ -0,0 +1,70 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_HISTORY_EXEC_H +#define CIAO_HISTORY_EXEC_H + +#include /**/ "ace/pre.h" + +#include "MessengerEC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Messenger_exec_export.h" +#include "tao/LocalObject.h" + +// MY CODE +#include <list> +#include "ace/Thread_Mutex.h" + +namespace CIAO_Messenger_Impl +{ + class MESSENGER_EXEC_Export History_exec_i + : public virtual ::CCM_History, + public virtual ::CORBA::LocalObject + { + public: + History_exec_i (void); + virtual ~History_exec_i (void); + + // Operations from ::History + + virtual ::Messages *get_all (); + + virtual ::Message *get_latest (); + + // MY CODE + + void add( ::Message* message); + + private: + TAO_SYNCH_MUTEX lock_; + + typedef std::list< ::Message_var> MessageList; + MessageList messages_; + }; +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_HISTORY_EXEC_H */ + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Message.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Message.idl new file mode 100644 index 00000000000..2e3aee687b0 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Message.idl @@ -0,0 +1,21 @@ +// $Id$ + +/** + * @file Message.idl + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#ifndef MESSAGE_IDL +#define MESSAGE_IDL + +#include <Components.idl> + +eventtype Message { + public string subject; + public string user; + public string text; +}; +typedef sequence<Message> Messages; + +#endif diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.idl new file mode 100644 index 00000000000..47033a5885c --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.idl @@ -0,0 +1,34 @@ +// $Id$ + +/** + * @file Messenger.idl + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#ifndef MESSENGER_IDL +#define MESSENGER_IDL + +#include <Components.idl> +#include "Runnable.idl" +#include "RunnableE.idl" +#include "Publication.idl" +#include "PublicationE.idl" +#include "Message.idl" +#include "MessageE.idl" +#include "History.idl" +#include "HistoryE.idl" + +component Messenger { + attribute string subject; + + provides Runnable control; + provides Publication content; + + publishes Message message_publisher; + provides History message_history; +}; + +home MessengerHome manages Messenger {}; + +#endif diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.mpc new file mode 100644 index 00000000000..8683d5f7220 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger.mpc @@ -0,0 +1,172 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl Messenger" + +project(Messenge_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=MESSENGER_STUB_Export \ + -Wb,stub_export_include=Messenger_stub_export.h \ + -Wb,skel_export_macro=MESSENGER_SVNT_Export \ + -Wb,skel_export_include=Messenger_svnt_export.h \ + -Wb,exec_export_macro=MESSENGER_EXEC_Export \ + -Wb,exec_export_include=Messenger_exec_export.h + + IDL_Files { + Message.idl + } +} + +project(Messenger_idl_gen) : componentidldefaults { + after += Messenge_idl_gen + custom_only = 1 + idlflags -= -Gxhst -Gxhsk -Gxhsv -Gxhex + idlflags += -Wb,stub_export_macro=MESSENGER_STUB_Export \ + -Wb,stub_export_include=Messenger_stub_export.h \ + -Wb,skel_export_macro=MESSENGER_SVNT_Export \ + -Wb,skel_export_include=Messenger_svnt_export.h + IDL_Files { + Runnable.idl + Publication.idl + History.idl + } +} + +project(Messenger_messenger_idl_gen) : componentidldefaults { + custom_only = 1 + after += Messenger_idl_gen + idlflags += -Wb,stub_export_macro=MESSENGER_STUB_Export \ + -Wb,stub_export_include=Messenger_stub_export.h \ + -Wb,skel_export_macro=MESSENGER_SVNT_Export \ + -Wb,skel_export_include=Messenger_svnt_export.h + + IDL_Files { + Messenger.idl + } +} + +project(Messenger_lem_gen) : ciaoidldefaults { + custom_only = 1 + after += Messenger_messenger_idl_gen + idlflags += -Wb,export_macro=MESSENGER_EXEC_Export \ + -Wb,export_include=Messenger_exec_export.h \ + -SS + + IDL_Files { + MessengerE.idl + RunnableE.idl + PublicationE.idl + MessageE.idl + HistoryE.idl + } +} + +project(Messenger_stub) : ccm_stub { + after += Messenger_idl_gen Messenger_idlx_gen Messenger_lem_gen + + sharedname = Messenger_stub + dynamicflags = MESSENGER_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + RunnableC.cpp + PublicationC.cpp + MessageC.cpp + HistoryC.cpp + MessengerC.cpp + } + + Header_Files { + RunnableC.h + PublicationC.h + MessageC.h + HistoryC.h + MessengerC.h + Messenger_stub_export.h + } + + Inline_Files { + RunnableC.inl + PublicationC.inl + MessageC.inl + HistoryC.inl + MessengerC.inl + } +} + +project(Messenger_exec) : ciao_executor { + after += Messenger_lem_gen Messenger_stub + sharedname = Messenger_exec + libs += Messenger_stub + + dynamicflags = MESSENGER_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + MessengerEC.cpp + RunnableEC.cpp + PublicationEC.cpp + MessageEC.cpp + HistoryEC.cpp + Messenger_exec_i.cpp + Publication_exec_i.cpp + History_exec_i.cpp + Runnable_exec_i.cpp + } + + Header_Files { + MessengerEC.h + Messenger_exec_i.h + Publication_exec_i.h + History_exec_i.h + Runnable_exec_i.h + Messenger_exec_export.h + } + + Inline_Files { + MessengerEC.inl + } +} + +project(Messenger_svnt) : ciao_servant { + after += Messenger_exec + sharedname = Messenger_svnt + libs += Messenger_exec \ + Messenger_stub + + dynamicflags = MESSENGER_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + RunnableS.cpp + PublicationS.cpp + MessageS.cpp + HistoryS.cpp + MessengerS.cpp + Messenger_svnt.cpp + } + + Header_Files { + RunnableS.h + PublicationS.h + MessageS.h + HistoryS.h + MessengerS.h + Messenger_svnt.h + Messenger_svnt_export.h + } + + Inline_Files { + RunnableS.inl + PublicationS.inl + MessageS.inl + HistoryS.inl + MessengerS.inl + } +} + + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp new file mode 100644 index 00000000000..c71b7b82504 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.cpp @@ -0,0 +1,253 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#include "Messenger_exec_i.h" + +// MY CODE +#include "ace/OS_NS_unistd.h" +#include "History_exec_i.h" +#include "Runnable_exec_i.h" +#include "Publication_exec_i.h" + +namespace CIAO_Messenger_Impl +{ + //================================================================== + // Component Executor Implementation Class: Messenger_exec_i + //================================================================== + + Messenger_exec_i::Messenger_exec_i () + : subject_( "Test Subject" ), + user_( "ciao_user" ) + { + this->control_ = new Runnable_exec_i(); + this->history_ = new History_exec_i(); + this->content_ = new Publication_exec_i( + "The quick brown fox jumped over the lazy dog", + 2 ); + } + + Messenger_exec_i::~Messenger_exec_i (void) + { + this->control_->_remove_ref(); + this->history_->_remove_ref(); + this->content_->_remove_ref(); + } + + // MY CODE + int Messenger_exec_i::svc() { + + ACE_DEBUG((LM_INFO, ACE_TEXT("svc()\n"))); + + while (1) + { + ACE_OS::sleep( this->content_->period() ); + + // get the run_lock from the Runnable executor; we have an + // agreement with the Runnable executor that we must posess the + // run_lock to publish + ACE_Guard<TAO_SYNCH_MUTEX> guard( this->control_->get_run_lock() ); + + // create a message to publish + ::Message_var msg = new ::OBV_Message(); + msg->subject( this->subject() ); + msg->text( this->content_->text() ); + msg->user( CORBA::string_dup( this->user_.c_str() ) ); + + // add the message to the message history + this->history_->add( msg.in() ); + + ACE_DEBUG((LM_INFO, ACE_TEXT("Messenger_exec_i::svc: publishing message\n") )); + + // publish to all interested consumers + this->context_->push_message_publisher( msg.in() ); + + ACE_DEBUG((LM_INFO, + ACE_TEXT("Published Message on subject %s\n User %s\n Text %s\n"), + msg->subject(), + msg->user(), + msg->text() )); + } + + ACE_DEBUG((LM_INFO, ACE_TEXT("svc(): Gracefully stopping publication\n"))); + return 0; + } + + // Supported or inherited operations. + + // Attribute operations. + + char* + Messenger_exec_i::subject () + { + return CORBA::string_dup( this->subject_.c_str() ); + } + + void + Messenger_exec_i::subject ( const char* subject) + { + this->subject_ = CORBA::string_dup( subject ); + } + + // Port operations. + + ::CCM_Runnable_ptr + Messenger_exec_i::get_control () + { + // Your code here. + + // MY CODE + + // bump up ref count because we give up ownership when we return this + this->control_->_add_ref(); + return this->control_; + } + + ::CCM_Publication_ptr + Messenger_exec_i::get_content () + { + // Your code here. + + // MY CODE + + // bump up ref count because we give up ownership when we return this + this->content_->_add_ref(); + return this->content_; + } + + ::CCM_History_ptr + Messenger_exec_i::get_message_history () + { + // Your code here. + + // MY CODE + + // bump up ref count because we give up ownership when we return this + this->history_->_add_ref(); + return this->history_; + } + + // Operations from Components::SessionComponent + + void + Messenger_exec_i::set_session_context ( + ::Components::SessionContext_ptr ctx) + { + this->context_ = + ::CCM_Messenger_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + { + throw ::CORBA::INTERNAL (); + } + } + + void + Messenger_exec_i::configuration_complete () + { + /* Your code here. */ + } + + void + Messenger_exec_i::ccm_activate () + { + /* Your code here. */ + ACE_DEBUG((LM_INFO, ACE_TEXT("Messenger_exec_i::ccm_activate\n"))); + this->activate(); + } + + void + Messenger_exec_i::ccm_passivate () + { + /* Your code here. */ + ACE_DEBUG((LM_INFO, ACE_TEXT("Messenger_exec_i::ccm_passivate\n"))); + } + + void + Messenger_exec_i::ccm_remove () + { + /* Your code here. */ + ACE_DEBUG((LM_INFO, ACE_TEXT("Messenger_exec_i::ccm_remove\n"))); + } + + + extern "C" MESSENGER_EXEC_Export ::Components::EnterpriseComponent_ptr + create_Messenger_Impl (void) + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_RETURN (retval, + Messenger_exec_i, + ::Components::EnterpriseComponent::_nil ()); + + return retval; + } + + //================================================================== + // Home Executor Implementation Class: MessengerHome_exec_i + //================================================================== + + MessengerHome_exec_i::MessengerHome_exec_i (void) + { + } + + MessengerHome_exec_i::~MessengerHome_exec_i (void) + { + } + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + ::Components::EnterpriseComponent_ptr + MessengerHome_exec_i::create () + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + Messenger_exec_i, + ::CORBA::NO_MEMORY ()); + + return retval; + } + + extern "C" MESSENGER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_MessengerHome_Impl (void) + { + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + MessengerHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; + } +} + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.h new file mode 100644 index 00000000000..50e53e211ff --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Messenger_exec_i.h @@ -0,0 +1,129 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_MESSENGER_EXEC_H +#define CIAO_MESSENGER_EXEC_H + +#include /**/ "ace/pre.h" + +#include "Messenger_svnt.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Messenger_exec_export.h" +#include "tao/LocalObject.h" + +// MY CODE +#include <string> +#include "ace/Task.h" + +namespace CIAO_Messenger_Impl +{ + class Runnable_exec_i; + class Publication_exec_i; + class History_exec_i; + + class MESSENGER_EXEC_Export Messenger_exec_i + : public virtual Messenger_Exec, + public virtual ::CORBA::LocalObject, + public virtual ACE_Task_Base + { + public: + Messenger_exec_i (void); + virtual ~Messenger_exec_i (void); + + // Supported or inherited operations. + + // Attribute operations. + + virtual char *subject (); + + virtual void subject (const char * subject); + + // Port operations. + + virtual ::CCM_Runnable_ptr get_control (); + + virtual ::CCM_Publication_ptr get_content (); + + virtual ::CCM_History_ptr get_message_history (); + + // Operations from Components::SessionComponent + + virtual void set_session_context ( ::Components::SessionContext_ptr ctx); + + virtual void configuration_complete (void); + + virtual void ccm_activate (); + + virtual void ccm_passivate (); + + virtual void ccm_remove (); + + // MY CODE + virtual int svc(); + + private: + ::CCM_Messenger_Context_var context_; + + // MY CODE + Runnable_exec_i* control_; + Publication_exec_i* content_; + History_exec_i* history_; + + std::string subject_; + const std::string user_; + }; + + extern "C" MESSENGER_EXEC_Export ::Components::EnterpriseComponent_ptr + create_Messenger_Impl (void); + + class MESSENGER_EXEC_Export MessengerHome_exec_i + : public virtual MessengerHome_Exec, + public virtual ::CORBA::LocalObject + { + public: + MessengerHome_exec_i (void); + virtual ~MessengerHome_exec_i (void); + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + virtual ::Components::EnterpriseComponent_ptr + create (); + }; + + extern "C" MESSENGER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_MessengerHome_Impl (void); +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_MESSENGER_EXEC_H */ + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Publication.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication.idl new file mode 100644 index 00000000000..43cf29228cc --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication.idl @@ -0,0 +1,17 @@ +// $Id$ + +/** + * @file Publication.idl + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#ifndef PUBLICATION_IDL +#define PUBLICATION_IDL + +interface Publication { + attribute string text; + attribute unsigned short period; +}; + +#endif diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.cpp new file mode 100644 index 00000000000..4c87e597459 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.cpp @@ -0,0 +1,81 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#include "Publication_exec_i.h" + +namespace CIAO_Messenger_Impl +{ + //================================================================== + // Facet Executor Implementation Class: Publication_exec_i + //================================================================== + + Publication_exec_i::Publication_exec_i ( + const char* text, CORBA::UShort period) + : text_( text ), + period_( period) + { + } + + Publication_exec_i::~Publication_exec_i (void) + { + } + + // Operations from ::Publication + + char* + Publication_exec_i::text () + { + ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_); + + return CORBA::string_dup( this->text_.c_str() ); + } + + void + Publication_exec_i::text ( + const char* text) + { + ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_); + + this->text_ = text; + ACE_DEBUG((LM_INFO, ACE_TEXT("publication text changed to %C\n"), text )); + } + + CORBA::UShort + Publication_exec_i::period () + { + ACE_Guard<TAO_SYNCH_MUTEX> guard(this->lock_); + + return this->period_; + } + + void + Publication_exec_i::period (CORBA::UShort period) + { + ACE_Guard<TAO_SYNCH_MUTEX> guard( this->lock_ ); + + if ( period > 0 ) { + this->period_ = period; + ACE_DEBUG((LM_INFO, ACE_TEXT("publication period changed to %d seconds\n"), period )); + } else { + ACE_DEBUG((LM_INFO, ACE_TEXT("ignoring a negative period of %d\n"), period )); + } + } +} + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.h new file mode 100644 index 00000000000..07c43248586 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Publication_exec_i.h @@ -0,0 +1,70 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_PUBLICATION_EXEC_H +#define CIAO_PUBLICATION_EXEC_H + +#include /**/ "ace/pre.h" + +#include "MessengerEC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Messenger_exec_export.h" +#include "tao/LocalObject.h" + +// MY CODE +#include <string> +#include "ace/Thread_Mutex.h" + +namespace CIAO_Messenger_Impl +{ + class MESSENGER_EXEC_Export Publication_exec_i + : public virtual ::CCM_Publication, + public virtual ::CORBA::LocalObject + { + public: + Publication_exec_i (const char* text, CORBA::UShort period); + virtual ~Publication_exec_i (void); + + // Operations from ::Publication + + virtual char* text (); + + virtual void text ( const char* text); + + virtual CORBA::UShort period (); + + virtual void period ( CORBA::UShort period); + + private: + std::string text_; + CORBA::UShort period_; + + TAO_SYNCH_MUTEX lock_; + }; +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_PUBLICATION_EXEC_H */ + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.idl new file mode 100644 index 00000000000..2d22feceb70 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.idl @@ -0,0 +1,23 @@ +// $Id$ + +/** + * @file Receiver.idl + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#ifndef RECEIVER_IDL +#define RECEIVER_IDL + +#include <Components.idl> +#include "Message.idl" +#include "History.idl" + +component Receiver { + consumes Message message_consumer; + uses History message_history; +}; + +home ReceiverHome manages Receiver {}; + +#endif diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.mpc new file mode 100644 index 00000000000..daa4437a9f3 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver.mpc @@ -0,0 +1,110 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -p Messenger Receiver" + +project(Messenger_Receiver_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=RECEIVER_STUB_Export \ + -Wb,stub_export_include=Receiver_stub_export.h \ + -Wb,skel_export_macro=RECEIVER_SVNT_Export \ + -Wb,skel_export_include=Receiver_svnt_export.h \ + -Wb,exec_export_macro=RECEIVER_EXEC_Export \ + -Wb,exec_export_include=Receiver_exec_export.h + + IDL_Files { + Receiver.idl + } +} + +project(Messenger_Receiver_lem_gen) : ciaoidldefaults { + custom_only = 1 + after += Messenger_Receiver_idl_gen + idlflags += -Wb,export_macro=RECEIVER_EXEC_Export \ + -Wb,export_include=Receiver_exec_export.h \ + -SS + + IDL_Files { + ReceiverE.idl + } +} + +project(Messenger_Receiver_stub) : ccm_stub { + after += Messenger_Receiver_idl_gen Messenger_stub + libs += Messenger_stub + + sharedname = Receiver_stub + dynamicflags = RECEIVER_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + ReceiverC.cpp + } + + Header_Files { + ReceiverC.h + Receiver_stub_export.h + } + + Inline_Files { + ReceiverC.inl + } +} + +project(Messenger_Receiver_exec) : ciao_executor { + after += Messenger_Receiver_lem_gen Messenger_Receiver_stub + sharedname = Receiver_exec + libs += Receiver_stub Messenger_stub + + dynamicflags = RECEIVER_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + ReceiverEC.cpp + Receiver_exec_i.cpp + } + + Header_Files { + ReceiverEC.h + Receiver_exec_i.h + Receiver_exec_export.h + } + + Inline_Files { + ReceiverEC.inl + } +} + + +project(Messenger_Receiver_svnt) : ciao_servant { + after += Messenger_svnt Messenger_Receiver_exec + sharedname = Receiver_svnt + libs += Receiver_exec \ + Receiver_stub \ + Messenger_svnt \ + Messenger_stub + + dynamicflags = RECEIVER_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + ReceiverS.cpp + Receiver_svnt.cpp + } + + Header_Files { + ReceiverS.h + Receiver_svnt.h + Receiver_svnt_export.h + } + + Inline_Files { + ReceiverS.inl + } +} + + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp new file mode 100644 index 00000000000..46981868492 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.cpp @@ -0,0 +1,176 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#include "Receiver_exec_i.h" + +namespace CIAO_Receiver_Impl +{ + //================================================================== + // Component Executor Implementation Class: Receiver_exec_i + //================================================================== + + Receiver_exec_i::Receiver_exec_i (void) + { + } + + Receiver_exec_i::~Receiver_exec_i (void) + { + } + + // Supported or inherited operations. + + // Attribute operations. + + // Port operations. + + void + Receiver_exec_i::push_message_consumer (::Message * ev) + { + /* Your code here. */ + + // MY CODE + + CORBA::String_var subject = ev->subject(); + CORBA::String_var user = ev->user(); + CORBA::String_var text = ev->text(); + + ACE_DEBUG((LM_INFO, + ACE_TEXT("Received Message:\n Subject: %s\n User: %s\n Text: %s\n"), + subject.in(), + user.in(), + text.in() )); + + // Use the history to (inefficiently) get the total number of messages + // published on this item so far + ::History_var history = + this->context_->get_connection_message_history(); + ::Messages_var messages = history->get_all(); + ACE_DEBUG((LM_INFO, + ACE_TEXT(" Subject \"%s\" has published %d messages so far\n"), + subject.in(), + messages->length() )); + } + + // Operations from Components::SessionComponent + + void + Receiver_exec_i::set_session_context ( + ::Components::SessionContext_ptr ctx) + { + this->context_ = + ::CCM_Receiver_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + { + throw ::CORBA::INTERNAL (); + } + } + + void + Receiver_exec_i::configuration_complete () + { + /* Your code here. */ + ACE_DEBUG((LM_INFO, ACE_TEXT("Receiver_exec_i::configuration_complete\n"))); + } + + void + Receiver_exec_i::ccm_activate () + { + // Your code here. + ACE_DEBUG((LM_INFO, ACE_TEXT("Receiver_exec_i::ccm_activate\n"))); + } + + void + Receiver_exec_i::ccm_passivate () + { + /* Your code here. */ + ACE_DEBUG((LM_INFO, ACE_TEXT("Receiver_exec_i::ccm_passivate\n"))); + } + + void + Receiver_exec_i::ccm_remove () + { + /* Your code here. */ + ACE_DEBUG((LM_INFO, ACE_TEXT("Receiver_exec_i::ccm_remove\n"))); + } + + extern "C" RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr + create_Receiver_Impl (void) + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_RETURN (retval, + Receiver_exec_i, + ::Components::EnterpriseComponent::_nil ()); + + return retval; + } + + //================================================================== + // Home Executor Implementation Class: ReceiverHome_exec_i + //================================================================== + + ReceiverHome_exec_i::ReceiverHome_exec_i (void) + { + } + + ReceiverHome_exec_i::~ReceiverHome_exec_i (void) + { + } + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + ::Components::EnterpriseComponent_ptr + ReceiverHome_exec_i::create () + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + Receiver_exec_i, + ::CORBA::NO_MEMORY ()); + + return retval; + } + + extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_ReceiverHome_Impl (void) + { + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + ReceiverHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; + } +} diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.h new file mode 100644 index 00000000000..a42f79f36b7 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Receiver_exec_i.h @@ -0,0 +1,102 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_RECEIVER_EXEC_H +#define CIAO_RECEIVER_EXEC_H + +#include /**/ "ace/pre.h" + +#include "ReceiverEC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Receiver_exec_export.h" +#include "tao/LocalObject.h" + +namespace CIAO_Receiver_Impl +{ + class RECEIVER_EXEC_Export Receiver_exec_i + : public virtual Receiver_Exec, + public virtual ::CORBA::LocalObject + { + public: + Receiver_exec_i (void); + virtual ~Receiver_exec_i (void); + + // Supported or inherited operations. + + // Attribute operations. + + // Port operations. + + virtual void push_message_consumer (::Message *ev); + + // Operations from Components::SessionComponent + + virtual void + set_session_context (::Components::SessionContext_ptr ctx); + + virtual void configuration_complete (); + + virtual void ccm_activate (); + + virtual void ccm_passivate (); + + virtual void ccm_remove (); + + private: + ::CCM_Receiver_Context_var context_; + }; + + extern "C" RECEIVER_EXEC_Export ::Components::EnterpriseComponent_ptr + create_Receiver_Impl (void); + + class RECEIVER_EXEC_Export ReceiverHome_exec_i + : public virtual ReceiverHome_Exec, + public virtual ::CORBA::LocalObject + { + public: + ReceiverHome_exec_i (void); + virtual ~ReceiverHome_exec_i (void); + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + virtual ::Components::EnterpriseComponent_ptr + create (); + }; + + extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_ReceiverHome_Impl (void); +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_RECEIVER_EXEC_H */ + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable.idl b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable.idl new file mode 100644 index 00000000000..61515b7c17a --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable.idl @@ -0,0 +1,17 @@ +// $Id$ + +/** + * @file Runnable.idl + * + * @author Don Busch <busch_d@ociweb.com> + */ + +#ifndef RUNNABLE_IDL +#define RUNNABLE_IDL + +interface Runnable { + void start(); + void stop(); +}; + +#endif diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp new file mode 100644 index 00000000000..4f02a3e7e10 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.cpp @@ -0,0 +1,60 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#include "Runnable_exec_i.h" + +namespace CIAO_Messenger_Impl +{ + //================================================================== + // Facet Executor Implementation Class: Runnable_exec_i + //================================================================== + + Runnable_exec_i::Runnable_exec_i () + { + // initially in "stopped" state + this->stop(); + } + + Runnable_exec_i::~Runnable_exec_i (void) + { + // don't own anything + } + + // Operations from ::Runnable + + void + Runnable_exec_i::start () + { + this->run_lock_.release(); + } + + void + Runnable_exec_i::stop () + { + this->run_lock_.acquire(); + } + + TAO_SYNCH_MUTEX& + Runnable_exec_i::get_run_lock () + { + return this->run_lock_; + } +} + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.h b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.h new file mode 100644 index 00000000000..c432298dfd4 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/Runnable_exec_i.h @@ -0,0 +1,65 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_RUNNABLE_EXEC_H +#define CIAO_RUNNABLE_EXEC_H + +#include /**/ "ace/pre.h" + +#include "Messenger_svnt.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Messenger_exec_export.h" + +// MY CODE +#include "tao/LocalObject.h" +#include "ace/Thread_Mutex.h" + +namespace CIAO_Messenger_Impl +{ + class MESSENGER_EXEC_Export Runnable_exec_i + : public virtual ::CCM_Runnable, + public virtual ::CORBA::LocalObject + { + public: + Runnable_exec_i (); + virtual ~Runnable_exec_i (void); + + // Operations from ::Runnable + + virtual void start (); + + virtual void stop (); + + // MY CODE + TAO_SYNCH_MUTEX& get_run_lock(); + + private: + TAO_SYNCH_MUTEX run_lock_; + }; +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_RUNNABLE_EXEC_H */ + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc new file mode 100644 index 00000000000..caae6351bbc --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/Messenger_StaticDAnCE.mpc @@ -0,0 +1,18 @@ +// -*- MPC -*- +// $Id$ + +project(Messenger_StaticDAnCE) { + exename = Messenger_StaticDAnCE + requires += dummy_label + + libs += Receiver_stub Administrator_stub Messenger_stub + libs += Receiver_svnt Administrator_svnt Messenger_svnt + libs += Receiver_exec Administrator_exec Messenger_exec + libpaths += .. + + after += Receiver_exec Administrator_exec Messenger_exec + + Source_Files { + StaticDAnCEApp.cpp + } +} diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/README.txt b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/README.txt new file mode 100644 index 00000000000..71cfbcf947f --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/README.txt @@ -0,0 +1,35 @@ +// $Id$ + +plan.h +------- +generated by running +$CIAO_ROOT/DAnCE/StaticConfiguration/StaticDAnCEParser -p + ../descriptors/Application-flattened.cdp + +Messenger_StaticDAnCE.mpc +------------------------- +started with a copy of StaticDAnCEApp.mpc.tmpl from + $CIAO_ROOT/DAnCE/StaticConfiguration +changed project name and exe name +replaces example libs with libs built in the .. directory +added the after += line + +StaticDAnCEApp.cpp +------------------ +copied from StaticDAnCEApp.cpp.tmpl in $CIAO_ROOT/DAnCE/StaticConfiguration + +run_test.pl +----------- +a modified copy of the ../descriptors/run_test.pl script that uses the static +application in place of the NodeManager to run the Messenger_Node (port 44000) + +To run the test on the target, start the Messenger_StaticDAnCE executable +(with -ORBEndpoint iiop://:44000) first on the target. +Then comment out the spawning of process NA4 in the run_test.pl script. +Also modify the final line of ../descriptors/ApplicationNodeMap.dat to +replace host with the hostname or IP address of the target system. + +Known issues: +- During shutodwn the Execution_Manager will print out some exceptions when +it tries to communicate with the Messenger_StaticDAnCE process that has +already terminated. diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/StaticDAnCEApp.cpp b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/StaticDAnCEApp.cpp new file mode 100644 index 00000000000..daf16e8cbba --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/StaticDAnCEApp.cpp @@ -0,0 +1,102 @@ +// $Id$ + +#include "Container_Base.h" +#include "NodeManager/NodeManager_Impl.h" +#include "ace/OS_NS_stdio.h" +#include "ace/streams.h" +#include "ace/Get_Opt.h" +#include "tao/IORTable/IORTable.h" +#include "tao/CDR.h" +#include "plan.h" + +int +ACE_TMAIN (int argc, ACE_TCHAR *argv[]) +{ + // Initialize the ORB so that CORBA::Any will work + // + CORBA::ORB_var orb = + CORBA::ORB_init (argc, + argv); + try + { + // Get reference to Root POA. + CORBA::Object_var obj + = orb->resolve_initial_references ("RootPOA"); + + PortableServer::POA_var poa + = PortableServer::POA::_narrow (obj.in ()); + + // Activate POA manager + PortableServer::POAManager_var mgr + = poa->the_POAManager (); + + mgr->activate (); + + int homes_table_size = + sizeof (homes_table)/sizeof(HomeAttributes); + + CIAO::HOMECREATOR_FUNCPTR_MAP home_creator_fptr_map; + CIAO::HOMESERVANTCREATOR_FUNCPTR_MAP homesvnt_creator_fptr_map; + CIAO::Static_Config_EntryPoints_Maps static_config_entrypoints_maps; + static_config_entrypoints_maps.home_creator_funcptr_map_ = &home_creator_fptr_map; + static_config_entrypoints_maps.home_servant_creator_funcptr_map_ = &homesvnt_creator_fptr_map; + + int i=0; + for (i=0; i<homes_table_size; ++i) + { + home_creator_fptr_map.bind (homes_table[i].executor_entrypt_, + homes_table[i].executor_fptr_); + + homesvnt_creator_fptr_map.bind (homes_table[i].servant_entrypt_, + homes_table[i].servant_fptr_); + } + + CIAO::Static_NodeManager_Impl *static_node_manager_impl; + // Create and install the CIAO Daemon servant + + ACE_DEBUG ((LM_DEBUG, "creating static_node_manager\n")); + + static_node_manager_impl = + new CIAO::Static_NodeManager_Impl("NodeManager", + orb.in (), + poa.in (), + "", //exe location + "", //exe options + 0, //spawn delay + &static_config_entrypoints_maps); + + static_node_manager_impl->init (); + + CORBA::Object_var table_object = + orb->resolve_initial_references ("IORTable"); + + IORTable::Table_var adapter = + IORTable::Table::_narrow (table_object.in ()); + + if (CORBA::is_nil (adapter.in ())) + ACE_ERROR_RETURN ((LM_ERROR, "Nil IORTable\n"), -1); + + CIAO::NodeManagerDaemon_var manager = + static_node_manager_impl->_this (); + + CORBA::String_var str = + orb->object_to_string (manager.in ()); + + adapter->bind ("NodeManager", + str.in ()); + + // Run the main event loop for the ORB. + orb->run (); + + poa->destroy (1, 1); + + orb->destroy (); + } + catch (CORBA::Exception& ex) + { + ex._tao_print_exception ("Caught CORBA Exception: "); + return -1; + } + + return 0; +} diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/plan.h b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/plan.h new file mode 100644 index 00000000000..a5732221e75 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/plan.h @@ -0,0 +1,47 @@ +// $Id$ + +#include "Session_Container.h" + +extern "C" ::Components::HomeExecutorBase_ptr create_MessengerHome_Impl (void); +extern "C" ::PortableServer::Servant create_MessengerHome_Servant + (::Components::HomeExecutorBase_ptr p, + ::CIAO::Session_Container *c, + const char* + ); +extern "C" ::Components::HomeExecutorBase_ptr create_ReceiverHome_Impl (void); +extern "C" ::PortableServer::Servant create_ReceiverHome_Servant + (::Components::HomeExecutorBase_ptr p, + ::CIAO::Session_Container *c, + const char* + ); +extern "C" ::Components::HomeExecutorBase_ptr create_ReceiverHome_Impl (void); +extern "C" ::PortableServer::Servant create_ReceiverHome_Servant + (::Components::HomeExecutorBase_ptr p, + ::CIAO::Session_Container *c, + const char* + ); +extern "C" ::Components::HomeExecutorBase_ptr create_AdministratorHome_Impl (void); +extern "C" ::PortableServer::Servant create_AdministratorHome_Servant + (::Components::HomeExecutorBase_ptr p, + ::CIAO::Session_Container *c, + const char* + ); +struct HomeAttributes +{ + char const * component_instance_name_; + /// Specify the entrypoint to component executor DLL. + char const * executor_entrypt_; + ::CIAO::HomeFactory executor_fptr_; + /// Specify the entrypoint to component servant DLL. + char const * servant_entrypt_; + ::CIAO::ServantFactory servant_fptr_; +}; +/// Homes +HomeAttributes homes_table[]= +{ + {"Messenger_Instance", "create_MessengerHome_Impl", create_MessengerHome_Impl, "create_MessengerHome_Servant", create_MessengerHome_Servant}, + {"First_Receiver_Instance", "create_ReceiverHome_Impl", create_ReceiverHome_Impl, "create_ReceiverHome_Servant", create_ReceiverHome_Servant}, + {"Second_Receiver_Instance", "create_ReceiverHome_Impl", create_ReceiverHome_Impl, "create_ReceiverHome_Servant", create_ReceiverHome_Servant}, + {"Administrator_Instance", "create_AdministratorHome_Impl", create_AdministratorHome_Impl, "create_AdministratorHome_Servant", create_AdministratorHome_Servant} +}; + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl new file mode 100755 index 00000000000..e7e707f253d --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl @@ -0,0 +1,110 @@ +# $Id$ + +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +use Env (ACE_ROOT); +use lib "$ACE_ROOT/bin"; +use PerlACE::Run_Test; + +$emior= PerlACE::LocalFile ("em.ior"); +unlink $emior; +$plior= PerlACE::LocalFile ("pl.ior"); +unlink $plior; + +if (defined $ENV{'CIAO_ROOT'}) { + $CIAO_ROOT = $ENV{'CIAO_ROOT'}; +} +else { + $CIAO_ROOT = $ACE_ROOT/TAO/CIAO; +} + +$NA = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeApplication/NodeApplication"); +$NA_cmd = $NA->Executable (); + +$NA1 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/NodeManager", + "-ORBEndpoint iiop://localhost:11000 -s $NA_cmd"); + +$NA2 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/NodeManager", + "-ORBEndpoint iiop://localhost:22000 -s $NA_cmd"); + +$NA3 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/NodeManager/NodeManager", + "-ORBEndpoint iiop://localhost:33000 -s $NA_cmd"); + +$NA4 = new PerlACE::Process ("Messenger_StaticDAnCE", + "-ORBEndpoint iiop://:44000"); + +# Each Node Manager lauches a Node Application process. +open(STDIN, "<../descriptors/admin.dat"); +$Ret1 = $NA1->Spawn (); +if($Ret1 == -1) { + print STDERR "ERROR: Administrator returned <$Ret1>\n" +} + +$Ret2 = $NA2->Spawn (); +if($Ret2 == -1) { + print STDERR "ERROR: Receiver 1 returned <$Ret2>\n" +} + +$Ret3 = $NA3->Spawn (); +if($Ret3 == -1) { + print STDERR "ERROR: Receiver 2 returned <$Ret3>\n" +} + +$Ret4 = $NA4->Spawn (); +if($Ret4 == -1) { + print STDERR "ERROR: Messenger returned <$Ret4>\n" +} + +#Start an Execution Manager +$EM = new PerlACE::Process ("$CIAO_ROOT/DAnCE/ExecutionManager/Execution_Manager", "-o $emior -i ../descriptors/ApplicationNodeMap.dat"); + +$Ret5 = $EM->Spawn (); +if($Ret5 == -1) { + print STDERR "ERROR: Execution Manager returned <$Ret5>\n" +} + +if (PerlACE::waitforfile_timed ($emior, 5) == -1) { + print STDERR "ERROR: cannot find file <$emior>\n"; + $EM->Kill(); + unlink $emior; + exit 1; +} + +sleep(5); +#Start the plan launcher +$EX = new PerlACE::Process ("$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher", + "-p ../descriptors/Application-flattened.cdp ". + "-k file://$emior -o $plior"); + +#Stop the plan launcher +$EX2 = new PerlACE::Process ("$CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher", + "-k file://$emior -i file://$plior"); + +$Ret6 = $EX->Spawn (); +if($Ret6 == -1) { + print STDERR "ERROR: plan launcher returned <$Ret6>\n" +} + +sleep(10); + +$Ret7 = $EX2->Spawn (); +if($Ret7 == -1) { + print STDERR "ERROR: plan launcher (shutdown) returned <$Ret7>\n" +} + +sleep(5); +$EX2->Kill(); +$EX->Kill(); +$EM->Kill(); + +$NA1->Kill(); +$NA2->Kill(); +$NA3->Kill(); +$NA4->Kill(); + +unlink $emior; +unlink $plior; + +exit 0; diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.ccd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.ccd new file mode 100644 index 00000000000..23ba49bb84c --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.ccd @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentInterfaceDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Administrator Component</label> + <specificType>IDL:Administrator:1.0</specificType> + <supportedType>IDL:Administrator:1.0</supportedType> + <idlFile>Administrator.idl</idlFile> + + <port> + <name>runnables</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>true</exclusiveUser> + <optional>true</optional> + <provider>false</provider> + <supportedType>IDL:Runnable:1.0</supportedType> + <specificType>IDL:Runnable:1.0</specificType> + <kind>MultiplexReceptacle</kind> + </port> + + <port> + <name>content</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>true</exclusiveUser> + <optional>true</optional> + <provider>false</provider> + <supportedType>IDL:Publication:1.0</supportedType> + <specificType>IDL:Publication:1.0</specificType> + <kind>MultiplexReceptacle</kind> + </port> + + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This CCD describes the Administrator's interface</string> + </value> + </value> + </infoProperty> + +</Deployment:ComponentInterfaceDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cid b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cid new file mode 100644 index 00000000000..af9e9a4c677 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cid @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentImplementationDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Administrator Implementation</label> + <implements href="Administrator.ccd"/> + <monolithicImpl> + <primaryArtifact> + <name>Administrator_Stub</name> + <referencedArtifact href="Administrator_Stub.iad"/> + </primaryArtifact> + <primaryArtifact> + <name>Administrator_Svnt</name> + <referencedArtifact href="Administrator_Svnt.iad"/> + </primaryArtifact> + <primaryArtifact> + <name>Administrator_Exec</name> + <referencedArtifact href="Administrator_Exec.iad"/> + </primaryArtifact> + </monolithicImpl> + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Administrator.ior</string> + </value> + </value> + </configProperty> +</Deployment:ComponentImplementationDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cpd new file mode 100644 index 00000000000..972966462e6 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator.cpd @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentPackageDescription +xmlns:Deployment="http://www.omg.org/Deployment" +xmlns:xmi="http://www.omg.org/XMI" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + + <label>Administrator Component</label> + <realizes href="Administrator.ccd"/> + <implementation> + <name>AdministratorImpl</name> + <referencedImplementation href="Administrator.cid"/> + </implementation> + +</Deployment:ComponentPackageDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Exec.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Exec.iad new file mode 100644 index 00000000000..81b7a16da7a --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Exec.iad @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Administrator Executor Artifact</label> + <location>Administrator_exec</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Administrator_Stub</name> + <referencedArtifact href="Administrator_Stub.iad"/> + </dependsOn> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createAdministratorHome_Impl</string> + </value> + </value> + </execParameter> + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Administrator's executor library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Stub.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Stub.iad new file mode 100644 index 00000000000..931fc371710 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Stub.iad @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Administrator Stub Artifact</label> + <location>Administrator_stub</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Messenger_Stub</name> + <referencedArtifact href="Messenger_Stub.iad"/> + </dependsOn> + + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Administrator's stub library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Svnt.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Svnt.iad new file mode 100644 index 00000000000..6774a107ef0 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Administrator_Svnt.iad @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Administrator Servant Artifact</label> + <location>Administrator_svnt</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Administrator_Stub</name> + <referencedArtifact href="Administrator_Stub.iad"/> + </dependsOn> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createAdministratorHome_Servant</string> + </value> + </value> + </execParameter> + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Administrator's servant library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application-flattened.cdp b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application-flattened.cdp new file mode 100644 index 00000000000..d01ec12e2db --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application-flattened.cdp @@ -0,0 +1,255 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:deploymentPlan + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + + <label>Messenger Deployment Plan</label> + + <!-- realizes --> + + <!-- implementation* --> + + <implementation id="MessengerImpl"> <!-- from Messenger.cpd --> + <name>MessengerImpl</name> + <source></source> + <!-- from Messenger.cid --> + <artifact>Messenger_Stub</artifact> + <artifact>Messenger_Svnt</artifact> + <artifact>Messenger_Exec</artifact> + </implementation> + + <implementation id="ReceiverImpl"> <!-- from Receiver.cpd --> + <name>ReceiverImpl</name> + <source></source> + <artifact>Receiver_Stub</artifact> + <artifact>Receiver_Svnt</artifact> + <artifact>Receiver_Exec</artifact> + </implementation> + + <implementation id="AdministratorImpl"> <!-- from Administrator.cpd --> + <name>AdministratorImpl</name> + <source></source> + <artifact>Administrator_Stub</artifact> + <artifact>Administrator_Svnt</artifact> + <artifact>Administrator_Exec</artifact> + </implementation> + + <!-- instance* --> + + <instance id="Messenger_Instance_ID"> + <name>Messenger_Instance</name> + <node>Messenger_Node</node> + <source></source> + <implementation>MessengerImpl</implementation> + </instance> + <instance id="First_Receiver_Instance_ID"> + <name>First_Receiver_Instance</name> + <node>First_Receiver_Node</node> + <source></source> + <implementation>ReceiverImpl</implementation> + </instance> + <instance id="Second_Receiver_Instance_ID"> + <name>Second_Receiver_Instance</name> + <node>Second_Receiver_Node</node> + <source></source> + <implementation>ReceiverImpl</implementation> + </instance> + <instance id="Administrator_Instance_ID"> + <name>Administrator_Instance</name> + <node>Administrator_Node</node> + <source></source> + <implementation>AdministratorImpl</implementation> + </instance> + + <!-- connection* --> + + <connection> + <name>Messenger_to_First_Receiver_Publish</name> + <internalEndpoint> + <portName>message_publisher</portName> + <kind>EventPublisher</kind> + <instance>Messenger_Instance_ID</instance> + </internalEndpoint> + <internalEndpoint> + <portName>message_consumer</portName> + <kind>EventConsumer</kind> + <instance>First_Receiver_Instance_ID</instance> + </internalEndpoint> + </connection> + + <connection> + <name>Messenger_to_First_Receiver_History</name> + <internalEndpoint> + <portName>message_history</portName> + <kind>Facet</kind> + <instance>Messenger_Instance_ID</instance> + </internalEndpoint> + <internalEndpoint> + <portName>message_history</portName> + <kind>SimplexReceptacle</kind> + <instance>First_Receiver_Instance_ID</instance> + </internalEndpoint> + </connection> + + <connection> + <name>Messenger_to_Second_Receiver_Publish</name> + <internalEndpoint> + <portName>message_publisher</portName> + <kind>EventPublisher</kind> + <instance>Messenger_Instance_ID</instance> + </internalEndpoint> + <internalEndpoint> + <portName>message_consumer</portName> + <kind>EventConsumer</kind> + <instance>Second_Receiver_Instance_ID</instance> + </internalEndpoint> + </connection> + + <connection> + <name>Messenger_to_Second_Receiver_History</name> + <internalEndpoint> + <portName>message_history</portName> + <kind>Facet</kind> + <instance>Messenger_Instance_ID</instance> + </internalEndpoint> + <internalEndpoint> + <portName>message_history</portName> + <kind>SimplexReceptacle</kind> + <instance>Second_Receiver_Instance_ID</instance> + </internalEndpoint> + </connection> + + <connection> + <name>Messenger_to_Administrator_Control</name> + <internalEndpoint> + <portName>control</portName> + <kind>Facet</kind> + <instance>Messenger_Instance_ID</instance> + </internalEndpoint> + <internalEndpoint> + <portName>runnables</portName> + <kind>SimplexReceptacle</kind> + <instance>Administrator_Instance_ID</instance> + </internalEndpoint> + </connection> + + <connection> + <name>Messenger_to_Administrator_Content</name> + <internalEndpoint> + <portName>content</portName> + <kind>Facet</kind> + <instance>Messenger_Instance_ID</instance> + </internalEndpoint> + <internalEndpoint> + <portName>content</portName> + <kind>SimplexReceptacle</kind> + <instance>Administrator_Instance_ID</instance> + </internalEndpoint> + </connection> + + <!-- artifact* (exec, svnt) --> + + <artifact id="Messenger_Stub"> + <name>Messenger_Stub</name> + <source></source> + <node></node> + <location>Messenger_stub</location> + </artifact> + <artifact id="Messenger_Svnt"> + <name>Messenger_Svnt</name> + <source></source> + <node></node> + <location>Messenger_svnt</location> + <execParameter> + <name>entryPoint</name> + <value> + <type><kind>tk_string</kind></type> + <value><string>create_MessengerHome_Servant</string></value> + </value> + </execParameter> + </artifact> + <artifact id="Messenger_Exec"> + <name>Messenger_Exec</name> + <source></source> + <node></node> + <location>Messenger_exec</location> + <execParameter> + <name>entryPoint</name> + <value> + <type><kind>tk_string</kind></type> + <value><string>create_MessengerHome_Impl</string></value> + </value> + </execParameter> + </artifact> + + <artifact id="Receiver_Stub"> + <name>Receiver_Stub</name> + <source></source> + <node></node> + <location>Receiver_stub</location> + </artifact> + <artifact id="Receiver_Svnt"> + <name>Receiver_Svnt</name> + <source></source> + <node></node> + <location>Receiver_svnt</location> + <execParameter> + <name>entryPoint</name> + <value> + <type><kind>tk_string</kind></type> + <value><string>create_ReceiverHome_Servant</string></value> + </value> + </execParameter> + </artifact> + <artifact id="Receiver_Exec"> + <name>Receiver_Exec</name> + <source></source> + <node></node> + <location>Receiver_exec</location> + <execParameter> + <name>entryPoint</name> + <value> + <type><kind>tk_string</kind></type> + <value><string>create_ReceiverHome_Impl</string></value> + </value> + </execParameter> + </artifact> + + <artifact id="Administrator_Stub"> + <name>Administrator_Stub</name> + <source></source> + <node></node> + <location>Administrator_stub</location> + </artifact> + <artifact id="Administrator_Svnt"> + <name>Administrator_Svnt</name> + <source></source> + <node></node> + <location>Administrator_svnt</location> + <execParameter> + <name>entryPoint</name> + <value> + <type><kind>tk_string</kind></type> + <value><string>create_AdministratorHome_Servant</string></value> + </value> + </execParameter> + </artifact> + <artifact id="Administrator_Exec"> + <name>Administrator_Exec</name> + <source></source> + <node></node> + <location>Administrator_exec</location> + <execParameter> + <name>entryPoint</name> + <value> + <type><kind>tk_string</kind></type> + <value><string>create_AdministratorHome_Impl</string></value> + </value> + </execParameter> + </artifact> + + +</Deployment:deploymentPlan> + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.cdp b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.cdp new file mode 100644 index 00000000000..9e774373c2f --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.cdp @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:DeploymentPlan + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Deployment Plan</label> + <instance xmi:id="Messenger_Instance_ID"> + <name>Messenger_Instance</name> + <node>Messenger_Node</node> + </instance> + <instance xmi:id="First_Receiver_Instance_ID"> + <name>First_Receiver_Instance</name> + <node>First_Receiver_Node</node> + </instance> + <instance xmi:id="Second_Receiver_Instance_ID"> + <name>Second_Receiver_Instance</name> + <node>Second_Receiver_Node</node> + </instance> + <instance xmi:id="Administrator_Instance_ID"> + <name>Administrator_Instance</name> + <node>Administrator_Node</node> + </instance> +</Deployment:DeploymentPlan> + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.pcd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.pcd new file mode 100644 index 00000000000..70635a4850b --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Application.pcd @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:PackageConfiguration +xmlns:Deployment="http://www.omg.org/Deployment" +xmlns:xmi="http://www.omg.org/XMI" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Application Configuration</label> + <basePackage href="MessengerAssembly.cpd"/> + + <!-- CIAO does not yet pay attention to this --> + <configProperty> + <name>subject</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>My Subject</string> + </value> + </value> + </configProperty> +</Deployment:PackageConfiguration> + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/ApplicationNodeMap.dat b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/ApplicationNodeMap.dat new file mode 100644 index 00000000000..91fbbfd4d20 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/ApplicationNodeMap.dat @@ -0,0 +1,5 @@ +Administrator_Node corbaloc:iiop:localhost:11000/Administrator_Node.NodeManager +First_Receiver_Node corbaloc:iiop:localhost:22000/First_Receiver_Node.NodeManager +Second_Receiver_Node corbaloc:iiop:localhost:33000/Second_Receiver_Node.NodeManager +Messenger_Node corbaloc:iiop:localhost:44000/Messenger_Node.NodeManager + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Deployment.xsd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Deployment.xsd new file mode 100644 index 00000000000..ae9bc21965d --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Deployment.xsd @@ -0,0 +1,776 @@ +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:Deployment="http://www.omg.org/Deployment" + targetNamespace="http://www.omg.org/Deployment"> + + <xsd:import namespace="http://www.omg.org/XMI" schemaLocation="XMI.xsd" /> + + + <xsd:complexType name="Any"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="type" type="Deployment:DataType"/> + <xsd:element name="value" type="Deployment:DataValue"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Any" type="Deployment:Any"/> + <xsd:complexType name="DataType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="kind" type="Deployment:TCKind"/> + <xsd:element name="enum" type="Deployment:EnumType"/> + <xsd:element name="objref" type="Deployment:ObjrefType"/> + <xsd:element name="boundedString" type="Deployment:BoundedStringType"/> + <xsd:element name="fixed" type="Deployment:FixedType"/> + <xsd:element name="array" type="Deployment:ArrayType"/> + <xsd:element name="sequence" type="Deployment:SequenceType"/> + <xsd:element name="alias" type="Deployment:AliasType"/> + <xsd:element name="struct" type="Deployment:StructType"/> + <xsd:element name="value" type="Deployment:ValueType"/> + <xsd:element name="union" type="Deployment:UnionType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="DataType" type="Deployment:DataType"/> + <xsd:complexType name="DataValue"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="short" type="xsd:short"/> + <xsd:element name="long" type="xsd:int"/> + <xsd:element name="ushort" type="xsd:unsignedShort"/> + <xsd:element name="ulong" type="xsd:unsignedInt"/> + <xsd:element name="float" type="xsd:float"/> + <xsd:element name="double" type="xsd:double"/> + <xsd:element name="boolean" type="xsd:boolean"/> + <xsd:element name="octet" type="xsd:unsignedByte"/> + <xsd:element name="opaque" type="xsd:base64Binary"/> + <xsd:element name="objref" type="xsd:string"/> + <xsd:element name="enum" type="xsd:string"/> + <xsd:element name="string" type="xsd:string"/> + <xsd:element name="longlong" type="xsd:long"/> + <xsd:element name="ulonglong" type="xsd:unsignedLong"/> + <xsd:element name="longdouble" type="xsd:double"/> + <xsd:element name="fixed" type="xsd:string"/> + <xsd:element name="any" type="Deployment:Any"/> + <xsd:element name="typecode" type="Deployment:DataType"/> + <xsd:element name="element" type="Deployment:DataValue"/> + <xsd:element name="discriminator" type="Deployment:DataValue"/> + <xsd:element name="value" type="Deployment:DataValue"/> + <xsd:element name="boxedValue" type="Deployment:DataValue"/> + <xsd:element name="member" type="Deployment:NamedValue"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="DataValue" type="Deployment:DataValue"/> + + + <xsd:complexType name="EnumType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="member" type="xsd:string"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="EnumType" type="Deployment:EnumType"/> + <xsd:complexType name="ObjrefType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + + + <xsd:element name="ObjrefType" type="Deployment:ObjrefType"/> + <xsd:complexType name="BoundedStringType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="bound" type="xsd:string"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="BoundedStringType" type="Deployment:BoundedStringType"/> + <xsd:complexType name="FixedType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="digits" type="xsd:string"/> + <xsd:element name="scale" type="xsd:string"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="FixedType" type="Deployment:FixedType"/> + <xsd:complexType name="ArrayType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="length" type="xsd:string"/> + <xsd:element name="elementType" type="Deployment:DataType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ArrayType" type="Deployment:ArrayType"/> + <xsd:complexType name="SequenceType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="bound" type="xsd:string"/> + <xsd:element name="elementType" type="Deployment:DataType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="SequenceType" type="Deployment:SequenceType"/> + <xsd:complexType name="AliasType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="elementType" type="Deployment:DataType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="AliasType" type="Deployment:AliasType"/> + <xsd:complexType name="StructType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="member" type="Deployment:StructMemberType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="StructType" type="Deployment:StructType"/> + <xsd:complexType name="StructMemberType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="type" type="Deployment:DataType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="StructMemberType" type="Deployment:StructMemberType"/> + <xsd:complexType name="ValueType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="modifier" type="xsd:string"/> + <xsd:element name="baseType" type="Deployment:DataType"/> + <xsd:element name="member" type="Deployment:ValueMemberType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ValueType" type="Deployment:ValueType"/> + <xsd:complexType name="ValueMemberType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="visibility" type="xsd:string"/> + <xsd:element name="type" type="Deployment:DataType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ValueMemberType" type="Deployment:ValueMemberType"/> + <xsd:complexType name="UnionType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="default" type="Deployment:UnionMemberType"/> + <xsd:element name="discriminatorType" type="Deployment:DataType"/> + <xsd:element name="member" type="Deployment:UnionMemberType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="UnionType" type="Deployment:UnionType"/> + <xsd:complexType name="UnionMemberType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="type" type="Deployment:DataType"/> + <xsd:element name="label" type="Deployment:DataValue"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="UnionMemberType" type="Deployment:UnionMemberType"/> + <xsd:complexType name="NamedValue"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="value" type="Deployment:DataValue"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="NamedValue" type="Deployment:NamedValue"/> + <xsd:complexType name="Bridge"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="connect" type="Deployment:Interconnect"/> + <xsd:element name="resource" type="Deployment:Resource"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Bridge" type="Deployment:Bridge"/> + <xsd:complexType name="Interconnect"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="connection" type="Deployment:Bridge"/> + <xsd:element name="connect" type="Deployment:Node"/> + <xsd:element name="resource" type="Deployment:Resource"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Interconnect" type="Deployment:Interconnect"/> + <xsd:complexType name="Node"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="connection" type="Deployment:Interconnect"/> + <xsd:element name="sharedResource" type="Deployment:SharedResource"/> + <xsd:element name="resource" type="Deployment:Resource"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Node" type="Deployment:Node"/> + <xsd:complexType name="Resource"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Resource" type="Deployment:Resource"/> + <xsd:complexType name="SharedResource"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="node" type="Deployment:Node"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="SharedResource" type="Deployment:SharedResource"/> + <xsd:complexType name="Domain"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="sharedResource" type="Deployment:SharedResource"/> + <xsd:element name="node" type="Deployment:Node"/> + <xsd:element name="interconnect" type="Deployment:Interconnect"/> + <xsd:element name="bridge" type="Deployment:Bridge"/> + <xsd:element name="infoProperty" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Domain" type="Deployment:Domain"/> + <xsd:complexType name="PlanPropertyMapping"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="externalName" type="xsd:string"/> + <xsd:element name="delegatesTo" type="Deployment:PlanSubcomponentPropertyReference"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="PlanPropertyMapping" type="Deployment:PlanPropertyMapping"/> + <xsd:complexType name="PlanSubcomponentPropertyReference"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="propertyName" type="xsd:string"/> + <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="PlanSubcomponentPropertyReference" type="Deployment:PlanSubcomponentPropertyReference"/> + <xsd:complexType name="PlanSubcomponentPortEndpoint"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="portName" type="xsd:string"/> + <xsd:element name="provider" type="xsd:string"/> + <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/> + <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="PlanSubcomponentPortEndpoint" type="Deployment:PlanSubcomponentPortEndpoint"/> + <xsd:complexType name="PlanConnectionDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement"/> + <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint"/> + <xsd:element name="internalEndpoint" type="Deployment:PlanSubcomponentPortEndpoint"/> + <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint"/> + <xsd:element name="deployedResource" type="Deployment:ConnectionResourceDeploymentDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="PlanConnectionDescription" type="Deployment:PlanConnectionDescription"/> + <xsd:complexType name="InstanceDeploymentDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="node" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription"/> + <xsd:element name="configProperty" type="Deployment:Property"/> + <xsd:element name="deployedResource" type="Deployment:InstanceResourceDeploymentDescription"/> + <xsd:element name="deployedSharedResource" type="Deployment:InstanceResourceDeploymentDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="InstanceDeploymentDescription" type="Deployment:InstanceDeploymentDescription"/> + <xsd:complexType name="MonolithicDeploymentDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription"/> + <xsd:element name="execParameter" type="Deployment:Property"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="MonolithicDeploymentDescription" type="Deployment:MonolithicDeploymentDescription"/> + <xsd:complexType name="ArtifactDeploymentDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="location" type="xsd:string"/> + <xsd:element name="node" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="execParameter" type="Deployment:Property"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement"/> + <xsd:element name="deployedResource" type="Deployment:ResourceDeploymentDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ArtifactDeploymentDescription" type="Deployment:ArtifactDeploymentDescription"/> + + + <xsd:complexType name="DeploymentPlan"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription"/> + <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription"/> + <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/> + <xsd:element name="connection" type="Deployment:PlanConnectionDescription"/> + <xsd:element name="externalProperty" type="Deployment:PlanPropertyMapping"/> + <xsd:element name="dependsOn" type="Deployment:ImplementationDependency"/> + <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription"/> + <xsd:element name="infoProperty" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="DeploymentPlan" type="Deployment:DeploymentPlan"/> + + + <xsd:complexType name="ResourceDeploymentDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="requirementName" type="xsd:string"/> + <xsd:element name="resourceName" type="xsd:string"/> + <xsd:element name="resourceValue" type="Deployment:Any"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ResourceDeploymentDescription" type="Deployment:ResourceDeploymentDescription"/> + <xsd:complexType name="InstanceResourceDeploymentDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/> + <xsd:element name="requirementName" type="xsd:string"/> + <xsd:element name="resourceName" type="xsd:string"/> + <xsd:element name="resourceValue" type="Deployment:Any"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="InstanceResourceDeploymentDescription" type="Deployment:InstanceResourceDeploymentDescription"/> + <xsd:complexType name="ConnectionResourceDeploymentDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="targetName" type="xsd:string"/> + <xsd:element name="requirementName" type="xsd:string"/> + <xsd:element name="resourceName" type="xsd:string"/> + <xsd:element name="resourceValue" type="Deployment:Any"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ConnectionResourceDeploymentDescription" type="Deployment:ConnectionResourceDeploymentDescription"/> + <xsd:complexType name="Capability"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Capability" type="Deployment:Capability"/> + <xsd:complexType name="ComponentPropertyDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="type" type="Deployment:DataType"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ComponentPropertyDescription" type="Deployment:ComponentPropertyDescription"/> + <xsd:complexType name="ComponentPortDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="specificType" type="xsd:string"/> + <xsd:element name="supportedType" type="xsd:string"/> + <xsd:element name="provider" type="xsd:string"/> + <xsd:element name="exclusiveProvider" type="xsd:string"/> + <xsd:element name="exclusiveUser" type="xsd:string"/> + <xsd:element name="optional" type="xsd:string"/> + <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ComponentPortDescription" type="Deployment:ComponentPortDescription"/> + <xsd:complexType name="ComponentInterfaceDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="specificType" type="xsd:string"/> + <xsd:element name="supportedType" type="xsd:string"/> + <xsd:element name="idlFile" type="xsd:string"/> + <xsd:element name="configProperty" type="Deployment:Property"/> + <xsd:element name="port" type="Deployment:ComponentPortDescription"/> + <xsd:element name="property" type="Deployment:ComponentPropertyDescription"/> + <xsd:element name="infoProperty" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ComponentInterfaceDescription" type="Deployment:ComponentInterfaceDescription"/> + <xsd:complexType name="ImplementationArtifactDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="location" type="xsd:string"/> + <xsd:element name="execParameter" type="Deployment:Property"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement"/> + <xsd:element name="dependsOn" type="Deployment:NamedImplementationArtifact"/> + <xsd:element name="infoProperty" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ImplementationArtifactDescription" type="Deployment:ImplementationArtifactDescription"/> + <xsd:complexType name="MonolithicImplementationDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="execParameter" type="Deployment:Property"/> + <xsd:element name="primaryArtifact" type="Deployment:NamedImplementationArtifact"/> + <xsd:element name="deployRequirement" type="Deployment:ImplementationRequirement"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="MonolithicImplementationDescription" type="Deployment:MonolithicImplementationDescription"/> + <xsd:complexType name="AssemblyPropertyMapping"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="externalName" type="xsd:string"/> + <xsd:element name="delegatesTo" type="Deployment:SubcomponentPropertyReference"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="AssemblyPropertyMapping" type="Deployment:AssemblyPropertyMapping"/> + <xsd:complexType name="SubcomponentPropertyReference"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="propertyName" type="xsd:string"/> + <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="SubcomponentPropertyReference" type="Deployment:SubcomponentPropertyReference"/> + <xsd:complexType name="SubcomponentPortEndpoint"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="portName" type="xsd:string"/> + <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="SubcomponentPortEndpoint" type="Deployment:SubcomponentPortEndpoint"/> + <xsd:complexType name="AssemblyConnectionDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement"/> + <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint"/> + <xsd:element name="internalEndpoint" type="Deployment:SubcomponentPortEndpoint"/> + <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="AssemblyConnectionDescription" type="Deployment:AssemblyConnectionDescription"/> + <xsd:complexType name="SubcomponentInstantiationDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="package" type="Deployment:ComponentPackageDescription"/> + <xsd:element name="configProperty" type="Deployment:Property"/> + <xsd:element name="selectRequirement" type="Deployment:Requirement"/> + <xsd:element name="reference" type="Deployment:ComponentPackageReference"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="SubcomponentInstantiationDescription" type="Deployment:SubcomponentInstantiationDescription"/> + <xsd:complexType name="ComponentAssemblyDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/> + <xsd:element name="connection" type="Deployment:AssemblyConnectionDescription"/> + <xsd:element name="externalProperty" type="Deployment:AssemblyPropertyMapping"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ComponentAssemblyDescription" type="Deployment:ComponentAssemblyDescription"/> + <xsd:complexType name="ComponentImplementationDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="implements" type="Deployment:ComponentInterfaceDescription"/> + <xsd:element name="assemblyImpl" type="Deployment:ComponentAssemblyDescription"/> + <xsd:element name="monolithicImpl" type="Deployment:MonolithicImplementationDescription"/> + <xsd:element name="configProperty" type="Deployment:Property"/> + <xsd:element name="capability" type="Deployment:Capability"/> + <xsd:element name="dependsOn" type="Deployment:ImplementationDependency"/> + <xsd:element name="infoProperty" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ComponentImplementationDescription" type="Deployment:ComponentImplementationDescription"/> + <xsd:complexType name="ComponentPackageReference"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="requiredUUID" type="xsd:string"/> + <xsd:element name="requiredName" type="xsd:string"/> + <xsd:element name="requiredType" type="xsd:string"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ComponentPackageReference" type="Deployment:ComponentPackageReference"/> + <xsd:complexType name="ComponentPackageDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription"/> + <xsd:element name="configProperty" type="Deployment:Property"/> + <xsd:element name="implementation" type="Deployment:PackagedComponentImplementation"/> + <xsd:element name="infoProperty" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ComponentPackageDescription" type="Deployment:ComponentPackageDescription"/> + <xsd:complexType name="PackageConfiguration"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration"/> + <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription"/> + <xsd:element name="reference" type="Deployment:ComponentPackageReference"/> + <xsd:element name="selectRequirement" type="Deployment:Requirement"/> + <xsd:element name="configProperty" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="PackageConfiguration" type="Deployment:PackageConfiguration"/> + <xsd:complexType name="PackagedComponentImplementation"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="referencedImplementation" type="Deployment:ComponentImplementationDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="PackagedComponentImplementation" type="Deployment:PackagedComponentImplementation"/> + <xsd:complexType name="NamedImplementationArtifact"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="referencedArtifact" type="Deployment:ImplementationArtifactDescription"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="NamedImplementationArtifact" type="Deployment:NamedImplementationArtifact"/> + <xsd:complexType name="ImplementationRequirement"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/> + <xsd:element name="resourcePort" type="xsd:string"/> + <xsd:element name="componentPort" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="property" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ImplementationRequirement" type="Deployment:ImplementationRequirement"/> + <xsd:complexType name="RequirementSatisfier"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="RequirementSatisfier" type="Deployment:RequirementSatisfier"/> + <xsd:complexType name="SatisfierProperty"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="kind" type="Deployment:SatisfierPropertyKind"/> + <xsd:element name="value" type="Deployment:Any"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="SatisfierProperty" type="Deployment:SatisfierProperty"/> + <xsd:complexType name="Requirement"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="property" type="Deployment:Property"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Requirement" type="Deployment:Requirement"/> + <xsd:complexType name="Property"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="value" type="Deployment:Any"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="Property" type="Deployment:Property"/> + <xsd:complexType name="ExternalReferenceEndpoint"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="location" type="xsd:string"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ExternalReferenceEndpoint" type="Deployment:ExternalReferenceEndpoint"/> + <xsd:complexType name="ComponentExternalPortEndpoint"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="portName" type="xsd:string"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ComponentExternalPortEndpoint" type="Deployment:ComponentExternalPortEndpoint"/> + <xsd:complexType name="ImplementationDependency"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="requiredType" type="xsd:string"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="ImplementationDependency" type="Deployment:ImplementationDependency"/> + <xsd:complexType name="TopLevelPackageDescription"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="package" type="Deployment:PackageConfiguration"/> + </xsd:choice> + <xsd:attribute ref="xmi:id" use="optional"/> + <xsd:attributeGroup ref="xmi:ObjectAttribs"/> + </xsd:complexType> + <xsd:element name="TopLevelPackageDescription" type="Deployment:TopLevelPackageDescription"/> + <xsd:simpleType name="TCKind"> + <xsd:restriction base="xsd:string"> + <xsd:enumeration value="tk_null"/> + <xsd:enumeration value="tk_void"/> + <xsd:enumeration value="tk_short"/> + <xsd:enumeration value="tk_long"/> + <xsd:enumeration value="tk_ushort"/> + <xsd:enumeration value="tk_ulong"/> + <xsd:enumeration value="tk_float"/> + <xsd:enumeration value="tk_double"/> + <xsd:enumeration value="tk_boolean"/> + <xsd:enumeration value="tk_char"/> + <xsd:enumeration value="tk_octet"/> + <xsd:enumeration value="tk_any"/> + <xsd:enumeration value="tk_TypeCode"/> + <xsd:enumeration value="tk_Principal"/> + <xsd:enumeration value="tk_objref"/> + <xsd:enumeration value="tk_struct"/> + <xsd:enumeration value="tk_union"/> + <xsd:enumeration value="tk_enum"/> + <xsd:enumeration value="tk_string"/> + <xsd:enumeration value="tk_sequence"/> + <xsd:enumeration value="tk_array"/> + <xsd:enumeration value="tk_alias"/> + <xsd:enumeration value="tk_except"/> + <xsd:enumeration value="tk_longlong"/> + <xsd:enumeration value="tk_ulonglong"/> + <xsd:enumeration value="tk_longdouble"/> + <xsd:enumeration value="tk_wchar"/> + <xsd:enumeration value="tk_wstring"/> + <xsd:enumeration value="tk_wfixed"/> + <xsd:enumeration value="tk_value"/> + <xsd:enumeration value="tk_value_box"/> + <xsd:enumeration value="tk_native"/> + <xsd:enumeration value="tk_abstract_interface"/> + <xsd:enumeration value="tk_local_interface"/> + <xsd:enumeration value="tk_component"/> + <xsd:enumeration value="tk_home"/> + <xsd:enumeration value="tk_event"/> + </xsd:restriction> + </xsd:simpleType> + <xsd:simpleType name="ResourceUsageKind"> + <xsd:restriction base="xsd:string"> + <xsd:enumeration value="None"/> + <xsd:enumeration value="InstanceUsesResource"/> + <xsd:enumeration value="ResourceUsesInstance"/> + <xsd:enumeration value="PortUsesResource"/> + <xsd:enumeration value="ResourceUsesPort"/> + </xsd:restriction> + </xsd:simpleType> + <xsd:simpleType name="CCMComponentPortKind"> + <xsd:restriction base="xsd:string"> + <xsd:enumeration value="Facet"/> + <xsd:enumeration value="SimplexReceptacle"/> + <xsd:enumeration value="MultiplexReceptacle"/> + <xsd:enumeration value="EventEmitter"/> + <xsd:enumeration value="EventPublisher"/> + <xsd:enumeration value="EventConsumer"/> + </xsd:restriction> + </xsd:simpleType> + <xsd:simpleType name="SatisfierPropertyKind"> + <xsd:restriction base="xsd:string"> + <xsd:enumeration value="Quantity"/> + <xsd:enumeration value="Capacity"/> + <xsd:enumeration value="Minimum"/> + <xsd:enumeration value="Maximum"/> + <xsd:enumeration value="Attribute"/> + <xsd:enumeration value="Selection"/> + </xsd:restriction> + </xsd:simpleType> +</xsd:schema> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Domain.cdd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Domain.cdd new file mode 100644 index 00000000000..54a8c1f5a82 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Domain.cdd @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<Deployment:Domain + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> +<label>Messenger Application Domain</label> +<node> + <name>Messenger_Node</name> + <label>Messenger's Node</label> +</node> +<node> + <name>First_Receiver_Node</name> + <label>First Receiver's Node</label> +</node> +<node> + <name>Second_Receiver_Node</name> + <label>Second Receiver's Node</label> +</node> +<node> + <name>Administrator_Node</name> + <label>Administrator's Node</label> +</node> +</Deployment:Domain> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Libraries.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Libraries.iad new file mode 100644 index 00000000000..d861613c157 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Libraries.iad @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>ACE/TAO/CIAO Libraries</label> + <location>$ACE_ROOT/lib/ACE</location> + <location>$ACE_ROOT/lib/TAO</location> + <location>$ACE_ROOT/lib/CIAO_Client</location> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.ccd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.ccd new file mode 100644 index 00000000000..cf79d7fb9f7 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.ccd @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentInterfaceDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Component</label> + <specificType>IDL:Messenger:1.0</specificType> + <idlFile>Messenger.idl</idlFile> + + <property> + <name>subject</name> + <type> + <kind>tk_string</kind> + </type> + </property> + + <port> + <name>control</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>false</exclusiveUser> + <optional>true</optional> + <provider>true</provider> + <supportedType>IDL:Runnable:1.0</supportedType> + <specificType>IDL:Runnable:1.0</specificType> + <kind>Facet</kind> + </port> + + <port> + <name>content</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>false</exclusiveUser> + <optional>true</optional> + <provider>true</provider> + <supportedType>IDL:Publication:1.0</supportedType> + <specificType>IDL:Publication:1.0</specificType> + <kind>Facet</kind> + </port> + + <port> + <name>message_publisher</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>false</exclusiveUser> + <optional>true</optional> + <provider>false</provider> + <supportedType>IDL:Message:1.0</supportedType> + <specificType>IDL:Message:1.0</specificType> + <kind>EventPublisher</kind> + </port> + + <port> + <name>message_history</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>false</exclusiveUser> + <optional>true</optional> + <provider>true</provider> + <supportedType>IDL:History:1.0</supportedType> + <specificType>IDL:History:1.0</specificType> + <kind>Facet</kind> + </port> + + <!-- Default value for subject property, can be overridden. + CIAO does not process this (yet) + --> + <configProperty> + <name>subject</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Default Subject</string> + </value> + </value> + </configProperty> + + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This CCD describes the Messenger's interface</string> + </value> + </value> + </infoProperty> + +</Deployment:ComponentInterfaceDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cid b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cid new file mode 100644 index 00000000000..c4e934f1ee2 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cid @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentImplementationDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Implementation</label> + <implements href="Messenger.ccd"/> + <monolithicImpl> + <primaryArtifact> + <name>Messenger_Stub</name> + <referencedArtifact href="Messenger_Stub.iad"/> + </primaryArtifact> + <primaryArtifact> + <name>Messenger_Svnt</name> + <referencedArtifact href="Messenger_Svnt.iad"/> + </primaryArtifact> + <primaryArtifact> + <name>Messenger_Exec</name> + <referencedArtifact href="Messenger_Exec.iad"/> + </primaryArtifact> + </monolithicImpl> + + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Messenger.ior</string> + </value> + </value> + </configProperty> + +</Deployment:ComponentImplementationDescription> + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cpd new file mode 100644 index 00000000000..ee624b9bce5 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger.cpd @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentPackageDescription +xmlns:Deployment="http://www.omg.org/Deployment" +xmlns:xmi="http://www.omg.org/XMI" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + + <label>Messenger Component</label> + <realizes href="Messenger.ccd"/> + <implementation> + <name>MessengerImpl</name> + <referencedImplementation href="Messenger.cid"/> + </implementation> + +</Deployment:ComponentPackageDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.ccd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.ccd new file mode 100644 index 00000000000..c048d99133d --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.ccd @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentInterfaceDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Assembly</label> + + <property> + <name>subject</name> + <type> + <kind>tk_string</kind> + </type> + </property> + + <!-- Default value for subject property, can be overridden. + CIAO does not process this (yet) + --> + <configProperty> + <name>subject</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Default Subject</string> + </value> + </value> + </configProperty> + +</Deployment:ComponentInterfaceDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cid b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cid new file mode 100644 index 00000000000..bd0bf4e56ce --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cid @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentImplementationDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Assembly</label> + <implements href="MessengerAssembly.ccd"/> + <assemblyImpl> + <instance xmi:id="a_Messenger"> + <name>Messenger_Instance</name> + <package href="Messenger.cpd"/> + </instance> + <instance xmi:id="first_Receiver"> + <name>First_Receiver_Instance</name> + <package href="Receiver.cpd"/> + </instance> + <instance xmi:id="second_Receiver"> + <name>Second_Receiver_Instance</name> + <package href="Receiver.cpd"/> + </instance> + <instance xmi:id="a_Administrator"> + <name>Administrator_Instance</name> + <package href="Administrator.cpd"/> + </instance> + + <connection> + <name>Messenger_to_First_Receiver_Publish</name> + <internalEndpoint> + <portName>message_publisher</portName> + <instance xmi:idref="a_Messenger"/> + </internalEndpoint> + <internalEndpoint> + <portName>message_consumer</portName> + <instance xmi:idref="first_Receiver"/> + </internalEndpoint> + </connection> + <connection> + <name>Messenger_to_First_Receiver_History</name> + <internalEndpoint> + <portName>message_history</portName> + <instance xmi:idref="a_Messenger"/> + </internalEndpoint> + <internalEndpoint> + <portName>message_history</portName> + <instance xmi:idref="first_Receiver"/> + </internalEndpoint> + </connection> + + <connection> + <name>Messenger_to_Second_Receiver_Publisher</name> + <internalEndpoint> + <portName>message_publisher</portName> + <instance xmi:idref="a_Messenger"/> + </internalEndpoint> + <internalEndpoint> + <portName>message_consumer</portName> + <instance xmi:idref="second_Receiver"/> + </internalEndpoint> + </connection> + <connection> + <name>Messenger_to_Second_Receiver_History</name> + <internalEndpoint> + <portName>message_history</portName> + <instance xmi:idref="a_Messenger"/> + </internalEndpoint> + <internalEndpoint> + <portName>message_history</portName> + <instance xmi:idref="second_Receiver"/> + </internalEndpoint> + </connection> + + <connection> + <name>Messenger_to_Administrator_Control</name> + <internalEndpoint> + <portName>control</portName> + <instance xmi:idref="a_Messenger"/> + </internalEndpoint> + <internalEndpoint> + <portName>runnables</portName> + <instance xmi:idref="a_Administrator"/> + </internalEndpoint> + </connection> + <connection> + <name>Messenger_to_Administrator_Content</name> + <internalEndpoint> + <portName>content</portName> + <instance xmi:idref="a_Messenger"/> + </internalEndpoint> + <internalEndpoint> + <portName>content</portName> + <instance xmi:idref="a_Administrator"/> + </internalEndpoint> + </connection> + + <!-- + Not sure that externalName has to match. + Don't know if CIAO processes this yet. + --> + <externalProperty> + <name>Subject Mapping</name> + <externalName>subject</externalName> + <delegatesTo> + <propertyName>subject</propertyName> + <instance xmi:idref="a_Messenger"/> + </delegatesTo> + </externalProperty> + + </assemblyImpl> +</Deployment:ComponentImplementationDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cpd new file mode 100644 index 00000000000..a719ad571c9 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/MessengerAssembly.cpd @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentPackageDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Assembly Package</label> + <realizes href="MessengerAssembly.ccd"/> + <implementation> + <name>Messenger Application</name> + <referencedImplementation href="MessengerAssembly.cid"/> + </implementation> +</Deployment:ComponentPackageDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Exec.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Exec.iad new file mode 100644 index 00000000000..0b8cef2092c --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Exec.iad @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Executor Artifact</label> + <location>Messenger_exec</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Messenger_Stub</name> + <referencedArtifact href="Messenger_Stub.iad"/> + </dependsOn> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createMessengerHome_Impl</string> + </value> + </value> + </execParameter> + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Messenger's executor library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Stub.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Stub.iad new file mode 100644 index 00000000000..50447209f50 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Stub.iad @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Stub Artifact</label> + <location>Messenger_stub</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Messenger's stub library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Svnt.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Svnt.iad new file mode 100644 index 00000000000..29b83d63e53 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Messenger_Svnt.iad @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Messenger Servant Artifact</label> + <location>Messenger_svnt</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Messenger_Stub</name> + <referencedArtifact href="Messenger_Stub.iad"/> + </dependsOn> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createMessengerHome_Servant</string> + </value> + </value> + </execParameter> + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Messenger's servant library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/README_15a b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/README_15a new file mode 100644 index 00000000000..ac466837dc4 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/README_15a @@ -0,0 +1,5 @@ +Deployment has changed in CIAO 0.5a (part of TAO 1.5a), now we use the plan +launcher, which reads a single XML file called a flattened deployment plan. +In our example, that file is Application-flattened.cdp. All the other XML +files in this directory are here for reference and to correspond to the 1.4a +TAO Developer's Guide, but they are not actually used. diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.ccd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.ccd new file mode 100644 index 00000000000..3094ae368dc --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.ccd @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentInterfaceDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Receiver Component</label> + <specificType>IDL:Receiver:1.0</specificType> + <supportedType>IDL:Receiver:1.0</supportedType> + <idlFile>Receiver.idl</idlFile> + + <port> + <name>message_consumer</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>false</exclusiveUser> + <optional>false</optional> + <provider>true</provider> + <supportedType>IDL:Message:1.0</supportedType> + <specificType>IDL:Message:1.0</specificType> + <kind>EventConsumer</kind> + </port> + + <port> + <name>message_history</name> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>true</exclusiveUser> + <optional>true</optional> + <provider>false</provider> + <supportedType>IDL:History:1.0</supportedType> + <specificType>IDL:History:1.0</specificType> + <kind>SimplexReceptacle</kind> + </port> + + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This CCD describes the Receiver's interface</string> + </value> + </value> + </infoProperty> + +</Deployment:ComponentInterfaceDescription> + diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cid b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cid new file mode 100644 index 00000000000..c5c85d648da --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cid @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentImplementationDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Receiver Implementation</label> + <implements href="Receiver.ccd"/> + <monolithicImpl> + <primaryArtifact> + <name>Receiver_Stub</name> + <referencedArtifact href="Receiver_Stub.iad"/> + </primaryArtifact> + <primaryArtifact> + <name>Receiver_Svnt</name> + <referencedArtifact href="Receiver_Svnt.iad"/> + </primaryArtifact> + <primaryArtifact> + <name>Receiver_Exec</name> + <referencedArtifact href="Receiver_Exec.iad"/> + </primaryArtifact> + </monolithicImpl> + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Receiver.ior</string> + </value> + </value> + </configProperty> +</Deployment:ComponentImplementationDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cpd new file mode 100644 index 00000000000..8b8ff890fa2 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver.cpd @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ComponentPackageDescription xmlns:Deployment="http://www.omg.org/Deployment" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + + <label>Receiver Component</label> + <realizes href="Receiver.ccd"/> + <implementation> + <name>ReceiverImpl</name> + <referencedImplementation href="Receiver.cid"/> + </implementation> + +</Deployment:ComponentPackageDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Exec.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Exec.iad new file mode 100644 index 00000000000..adcee103c94 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Exec.iad @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Receiver Executor Artifact</label> + <location>Receiver_exec</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Receiver_Stub</name> + <referencedArtifact href="Receiver_Stub.iad"/> + </dependsOn> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createReceiverHome_Impl</string> + </value> + </value> + </execParameter> + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Receiver's executor library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Stub.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Stub.iad new file mode 100644 index 00000000000..63d7e37cc8e --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Stub.iad @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Receiver Stub Artifact</label> + <location>Receiver_stub</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Messenger_Stub</name> + <referencedArtifact href="Messenger_Stub.iad"/> + </dependsOn> + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Receiver's stub library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Svnt.iad b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Svnt.iad new file mode 100644 index 00000000000..8e3bf58d965 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/Receiver_Svnt.iad @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:ImplementationArtifactDescription + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Receiver Servant Artifact</label> + <location>Receiver_svnt</location> + <dependsOn> + <name>ACE/TAO/CIAO</name> + <referencedArtifact href="Libraries.iad"/> + </dependsOn> + <dependsOn> + <name>Receiver_Stub</name> + <referencedArtifact href="Receiver_Stub.iad"/> + </dependsOn> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createReceiverHome_Servant</string> + </value> + </value> + </execParameter> + <!-- infoProperty elements are optional, and are non-functional --> + <infoProperty> + <name>comment</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This IAD describes the Receiver's servant library</string> + </value> + </value> + </infoProperty> +</Deployment:ImplementationArtifactDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/XMI.xsd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/XMI.xsd new file mode 100644 index 00000000000..f4adac91934 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/XMI.xsd @@ -0,0 +1,35 @@ +<?xml version="1.0" ?> +<xsd:schema targetNamespace="http://www.omg.org/XMI" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation='http://www.w3.org/2001/XMLSchema XMLSchema.xsd'> + <xsd:attribute name="id" type="xsd:ID" /> + <xsd:attributeGroup name="IdentityAttribs"> + <xsd:attribute form="qualified" name="label" type="xsd:string" use="optional" /> + <xsd:attribute form="qualified" name="uuid" type="xsd:string" use="optional" /> + </xsd:attributeGroup> + <xsd:attributeGroup name="LinkAttribs"> + <xsd:attribute name="href" type="xsd:string" use="optional" /> + <xsd:attribute form="qualified" name="idref" type="xsd:IDREF" use="optional" /> + </xsd:attributeGroup> + <xsd:attributeGroup name="ObjectAttribs"> + <xsd:attributeGroup ref="xmi:IdentityAttribs" /> + <xsd:attributeGroup ref="xmi:LinkAttribs" /> + <xsd:attribute fixed="2.0" form="qualified" name="version" type="xsd:string" use="optional" /> + <xsd:attribute form="qualified" name="type" type="xsd:QName" use="optional" /> + </xsd:attributeGroup> + <xsd:complexType name="Extension"> + <xsd:choice maxOccurs="unbounded" minOccurs="0"> + <xsd:any processContents="lax" /> + </xsd:choice> + <xsd:attribute ref="xmi:id" /> + <xsd:attributeGroup ref="xmi:ObjectAttribs" /> + <xsd:attribute name="extender" type="xsd:string" use="optional" /> + <xsd:attribute name="extenderID" type="xsd:string" use="optional" /> + </xsd:complexType> + <xsd:element name="Extension" type="xmi:Extension" /> + <xsd:complexType name="Any"> + <xsd:choice maxOccurs="unbounded" minOccurs="0"> + <xsd:any processContents="skip" /> + </xsd:choice> + <xsd:anyAttribute processContents="skip" /> + </xsd:complexType> +</xsd:schema> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/admin.dat b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/admin.dat new file mode 100644 index 00000000000..f5815bb1f60 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/admin.dat @@ -0,0 +1,7 @@ +1 +3 +1 +4 +Changing the publication text! +2 +5 diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/package.tpd b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/package.tpd new file mode 100644 index 00000000000..f481b6bd789 --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/package.tpd @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:TopLevelPackageDescription +xmlns:Deployment="http://www.omg.org/Deployment" +xmlns:xmi="http://www.omg.org/XMI" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <package href="Application.pcd"/> +</Deployment:TopLevelPackageDescription> diff --git a/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl new file mode 100755 index 00000000000..77b1711b3be --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl @@ -0,0 +1,117 @@ +# $Id$ + +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +use Env (ACE_ROOT); +use lib "$ACE_ROOT/bin"; +use PerlACE::Run_Test; + +$emior= PerlACE::LocalFile ("em.ior"); +unlink $emior; +$plior= PerlACE::LocalFile ("pl.ior"); +unlink $plior; + +if (defined $ENV{'CIAO_ROOT'}) { + $CIAO_ROOT = $ENV{'CIAO_ROOT'}; +} +else { + $CIAO_ROOT = "$ACE_ROOT/TAO/CIAO"; +} + +if (defined $ENV{'DANCE_ROOT'}) { + $DANCE_ROOT = $ENV{'DANCE_ROOT'}; +} +else { + $DANCE_ROOT = "$ACE_ROOT/TAO/CIAO/DAnCE"; +} + + +$NA = new PerlACE::Process ("$CIAO_ROOT/bin/ciao_componentserver"); +$NA_cmd = $NA->Executable (); + +$NA1 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager", + "-ORBEndpoint iiop://localhost:11000 -s $NA_cmd -n Administrator_Node"); + +$NA2 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager", + "-ORBEndpoint iiop://localhost:22000 -s $NA_cmd -n First_Receiver_Node"); + +$NA3 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager", + "-ORBEndpoint iiop://localhost:33000 -s $NA_cmd -n Second_Receiver_Node"); + +$NA4 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager", + "-ORBEndpoint iiop://localhost:44000 -s $NA_cmd -n Messenger_Node"); + +# Each Node Manager lauches a Node Application process. +open(STDIN, "<admin.dat"); +$Ret1 = $NA1->Spawn (); +if($Ret1 == -1) { + print STDERR "ERROR: Administrator returned <$Ret1>\n" +} + +$Ret2 = $NA2->Spawn (); +if($Ret2 == -1) { + print STDERR "ERROR: Receiver 1 returned <$Ret2>\n" +} + +$Ret3 = $NA3->Spawn (); +if($Ret3 == -1) { + print STDERR "ERROR: Receiver 2 returned <$Ret3>\n" +} + +$Ret4 = $NA4->Spawn (); +if($Ret4 == -1) { + print STDERR "ERROR: Messenger returned <$Ret4>\n" +} + +#Start an Execution Manager +$EM = new PerlACE::Process ("$DANCE_ROOT/bin/dance_execution_manager", "-e$emior --node-map ApplicationNodeMap.dat"); + +$Ret5 = $EM->Spawn (); +if($Ret5 == -1) { + print STDERR "ERROR: Execution Manager returned <$Ret5>\n" +} + +if (PerlACE::waitforfile_timed ($emior, 5) == -1) { + print STDERR "ERROR: cannot find file <$emior>\n"; + $EM->Kill(); + unlink $emior; + exit 1; +} + +sleep(5); +#Start the plan launcher +$EX = new PerlACE::Process ("$DANCE_ROOT/bin/dance_plan_launcher", + "-x Application-flattened_Unhomed.cdp -k file://$emior "); + +#Stop the plan launcher +$EX2 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_plan_launcher", + "-k file://$emior -x Application-flattened_Unhomed.cdp"); + +$Ret6 = $EX->Spawn (); +if($Ret6 == -1) { + print STDERR "ERROR: plan launcher returned <$Ret6>\n" +} + +sleep(10); + +$Ret7 = $EX2->Spawn (); +if($Ret7 == -1) { + print STDERR "ERROR: plan launcher (shutdown) returned <$Ret7>\n" +} + +sleep(5); + +$NA1->Kill(); +$NA2->Kill(); +$NA3->Kill(); +$NA4->Kill(); +$EX->Kill(); +$EX2->Kill(); +$EM->Kill(); + +unlink $emior; +unlink $plior; + +exit 0; diff --git a/modules/CIAO/examples/DevGuideExamples/readme.txt b/modules/CIAO/examples/DevGuideExamples/readme.txt new file mode 100644 index 00000000000..f6efa4d084f --- /dev/null +++ b/modules/CIAO/examples/DevGuideExamples/readme.txt @@ -0,0 +1,12 @@ +"These examples were developed by and are included in this +distribution with the permission of Object Computing, Inc. (OCI) +for the purpose of illustrating the usage of certain features of +The ACE ORB (TAO) as described in OCI's TAO Developer's Guide. +They are provided as is with no warranty, expressed or implied. +Though the examples are believed to illustrate correct usage of +TAO, OCI does not actively maintain them in this distribution and +does not guarantee their accuracy or their suitability for any +particular use. OCI does provide additional distributions of TAO +and provides commercial support for TAO. Visit +http://www.theaceorb.com or contact sales@ociweb.com for more +information on OCI's business model with respect to TAO."
\ No newline at end of file diff --git a/modules/CIAO/examples/Display/Display_Base/Display_Base.idl b/modules/CIAO/examples/Display/Display_Base/Display_Base.idl new file mode 100644 index 00000000000..337d4101c2b --- /dev/null +++ b/modules/CIAO/examples/Display/Display_Base/Display_Base.idl @@ -0,0 +1,46 @@ +// $Id$ + +/** + * @file Display_Base.idl + * + * Definition of events, and common interfaces used in HUDisplay module. + * + * @author Nanbor Wang <nanbor@cs.wustl.edu> + */ + +#ifndef HUDISPLAY_IDL +#define HUDISPLAY_IDL + +#include <Components.idl> + +module HUDisplay +{ + /** + * @brief interface opmode defines the "operation mode" interface. + */ + interface opmode + { + void start (); + void stop (); + boolean active (); + }; + + /** + * @brief a timed event that happens at some fix rate. + */ + eventtype tick + { + // We could put a timestamp here if desired. + }; + + /** + * @brief interface position allows querying of a coordination. + */ + interface position + { + long posx (); + long posy (); + }; +}; + +#endif /* HUDISPLAY_IDL */ diff --git a/modules/CIAO/examples/Display/Display_Base/Display_Base.mpc b/modules/CIAO/examples/Display/Display_Base/Display_Base.mpc new file mode 100644 index 00000000000..c25a86c9ce1 --- /dev/null +++ b/modules/CIAO/examples/Display/Display_Base/Display_Base.mpc @@ -0,0 +1,79 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Display_Base" + +project(Display_Base_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=DISPLAY_BASE_STUB_Export \ + -Wb,stub_export_include=Display_Base_stub_export.h \ + -Wb,skel_export_macro=DISPLAY_BASE_SKEL_Export \ + -Wb,skel_export_include=Display_Base_skel_export.h + + IDL_Files { + Display_Base.idl + } +} + +project(Display_Base_lem_gen) : ciaoidldefaults { + after += Display_Base_idl_gen + custom_only = 1 + idlflags += -Wb,stub_export_macro=DISPLAY_BASE_STUB_Export \ + -Wb,stub_export_include=Display_Base_stub_export.h \ + + IDL_Files { + Display_BaseE.idl + } +} + +project(Display_Base_stub) : ccm_stub { + after += Display_Base_lem_gen + libout = ../lib + libpaths += ../lib + + sharedname = Display_Base_stub + dynamicflags = DISPLAY_BASE_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Display_BaseC.cpp + Display_BaseEC.cpp + } + + Header_Files { + Display_BaseC.h + Display_Base_stub_export.h + } + + Inline_Files { + Display_BaseC.inl + } +} + +project(Display_Base_skel) : ciao_executor { + after += Display_Base_stub + sharedname = Display_Base_skel + libs += Display_Base_stub + libout = ../lib + libpaths += ../lib + + dynamicflags = DISPLAY_BASE_SKEL_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Display_BaseS.cpp + } + + Header_Files { + Display_BaseS.h + Display_Base_skel_export.h + } + + Inline_Files { + Display_BaseS.inl + } +} + + diff --git a/modules/CIAO/examples/Display/GPS/GPS.idl b/modules/CIAO/examples/Display/GPS/GPS.idl new file mode 100644 index 00000000000..90896c6130d --- /dev/null +++ b/modules/CIAO/examples/Display/GPS/GPS.idl @@ -0,0 +1,30 @@ +// $Id$ + +/** + * @file GPS.idl + * + * Definition of the GPS component. + * + * @author Nanbor Wang <nanbor@cs.wustl.edu> + */ +#ifndef GPS_IDL +#define GPS_IDL + +#include "../Display_Base/Display_Base.idl" +#include "../Display_Base/Display_BaseE.idl" + +module HUDisplay +{ + component GPS + { + provides position MyLocation; + publishes tick Ready; + consumes tick Refresh; + }; + + home GPSHome manages GPS + { + }; +}; + +#endif /* GPS_IDL */ diff --git a/modules/CIAO/examples/Display/GPS/GPS.mpc b/modules/CIAO/examples/Display/GPS/GPS.mpc new file mode 100644 index 00000000000..9787c0792fe --- /dev/null +++ b/modules/CIAO/examples/Display/GPS/GPS.mpc @@ -0,0 +1,117 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -p Display_Base -u Display GPS" + +project(Display_GPS_idl_gen) : componentidldefaults { + after += Display_Base_idl_gen + custom_only = 1 + idlflags += \ + -Wb,stub_export_macro=GPS_STUB_Export \ + -Wb,stub_export_include=GPS_stub_export.h \ + -Wb,skel_export_macro=GPS_SVNT_Export \ + -Wb,skel_export_include=GPS_svnt_export.h \ + -Wb,exec_export_macro=GPS_EXEC_Export \ + -Wb,exec_export_include=GPS_exec_export.h \ + + IDL_Files { + GPS.idl + } +} + +project(Display_GPS_lem_gen) : ciaoidldefaults { + custom_only = 1 + after += Display_GPS_idl_gen + idlflags += -Wb,export_macro=GPS_EXEC_Export \ + -Wb,export_include=GPS_exec_export.h \ + -SS + + IDL_Files { + GPSE.idl + } +} + +project(Display_GPS_stub) : ccm_stub { + after += Display_GPS_idl_gen Display_Base_stub + libs += Display_Base_stub + libout = ../lib + libpaths += ../lib + + sharedname = GPS_stub + dynamicflags = GPS_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + GPSC.cpp + } + + Header_Files { + GPSC.h + GPS_stub_export.h + } + + Inline_Files { + GPSC.inl + } +} + +project(Display_GPS_exec) : ciao_executor { + after += Display_GPS_lem_gen Display_GPS_stub Display_Base_stub + sharedname = GPS_exec + libs += GPS_stub Display_Base_stub + libout = ../lib + libpaths += ../lib + + dynamicflags = GPS_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + GPSEC.cpp + GPS_exec.cpp + } + + Header_Files { + GPSEC.h + GPS_exec.h + GPS_exec_export.h + } + + Inline_Files { + GPSEC.inl + } +} + +project(Display_GPS_svnt) : ciao_servant { + after += Display_Base_skel Display_GPS_exec Display_Base_stub + sharedname = GPS_svnt + libs += GPS_exec \ + GPS_stub \ + Display_Base_skel \ + Display_Base_stub + libout = ../lib + libpaths += ../lib + + dynamicflags = GPS_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + GPSS.cpp + GPS_svnt.cpp + } + + Header_Files { + GPSS.h + GPS_svnt.h + GPS_svnt_export.h + } + + Inline_Files { + GPSS.inl + } +} + + diff --git a/modules/CIAO/examples/Display/GPS/GPSEI.idl b/modules/CIAO/examples/Display/GPS/GPSEI.idl new file mode 100644 index 00000000000..d7604931f58 --- /dev/null +++ b/modules/CIAO/examples/Display/GPS/GPSEI.idl @@ -0,0 +1,33 @@ +// $Id$ + +/** + * @file GPSEI.idl + * + * Definition of the GPS component implementation. + * + * @author Nanbor Wang <nanbor@cs.wustl.edu> + */ + +#ifndef GPSEI_IDL +#define GPSEI_IDL + +#include "GPSE.idl" + +module HUDisplay +{ + /** + * @interface GPS_Exec + * + * The actually GPS executor inherits from both CCM_GPS and + * CCM_position interfaces as a monolithic implementation. + */ + local interface GPS_Exec : + CCM_GPS, + CCM_position, + Components::SessionComponent + { + }; + +}; + +#endif /* GPSEI_IDL */ diff --git a/modules/CIAO/examples/Display/GPS/GPS_exec.cpp b/modules/CIAO/examples/Display/GPS/GPS_exec.cpp new file mode 100644 index 00000000000..af37d2709d6 --- /dev/null +++ b/modules/CIAO/examples/Display/GPS/GPS_exec.cpp @@ -0,0 +1,137 @@ + +// $Id$ + +#include "GPS_exec.h" + +#include "ace/OS_NS_time.h" + +#define DISPLACEMENT 256 + +// Operations from HUDisplay::position +CORBA::Long +MyImpl::Position_Impl::posx () +{ + return component_.posx(); +} + +CORBA::Long +MyImpl::Position_Impl::posy () +{ + return component_.posy(); +} + + +/// Default constructor. +MyImpl::GPS_exec_i::GPS_exec_i () +{ + ACE_OS::srand ((u_int) ACE_OS::time ()); + this->positionx_ = ACE_OS::rand (); + this->positiony_ = ACE_OS::rand (); +} + +/// Default destructor. +MyImpl::GPS_exec_i::~GPS_exec_i () +{ +} + +// Operations from HUDisplay::GPS + HUDisplay::CCM_position_ptr + MyImpl::GPS_exec_i::get_MyLocation () + { +// ACE_DEBUG ((LM_DEBUG, +// "GPS_exec::get_MyLocation called\n")); + return (new Position_Impl (*this)); + } + +void +MyImpl::GPS_exec_i::push_Refresh (HUDisplay::tick *) +{ +// ACE_DEBUG ((LM_DEBUG, +// ACE_TEXT ("GPS: Received Refresh Event\n"))); + + // Refresh position + this->positionx_ += ACE_OS::rand () % DISPLACEMENT - (DISPLACEMENT/2); + this->positiony_ += ACE_OS::rand () % DISPLACEMENT - (DISPLACEMENT/2); + + // Nitify others + HUDisplay::tick_var event = new OBV_HUDisplay::tick; + + this->context_->push_Ready (event); +} + +CORBA::Long +MyImpl::GPS_exec_i::posx () +{ + return this->positionx_; +} + +CORBA::Long +MyImpl::GPS_exec_i::posy () +{ + return this->positiony_; +} + + +// Operations from Components::SessionComponent +void +MyImpl::GPS_exec_i::set_session_context (Components::SessionContext_ptr ctx) +{ + ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_exec_i::set_session_context\n")); + + this->context_ = + HUDisplay::CCM_GPS_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + throw CORBA::INTERNAL (); + // Urm, we actually discard exceptions thown from this operation. +} + +void +MyImpl::GPS_exec_i::configuration_complete () +{ +} + +void +MyImpl::GPS_exec_i::ccm_activate () +{ + ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_exec_i::ccm_activate\n")); +} + +void +MyImpl::GPS_exec_i::ccm_passivate () +{ + ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_exec_i::ccm_passivate\n")); +} + +void +MyImpl::GPS_exec_i::ccm_remove () +{ + ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_exec_i::ccm_remove\n")); +} + +/// Default ctor. +MyImpl::GPSHome_exec_i::GPSHome_exec_i () +{ +} + +/// Default dtor. +MyImpl::GPSHome_exec_i::~GPSHome_exec_i () +{ +} + +// Explicit home operations. + +// Implicit home operations. + +::Components::EnterpriseComponent_ptr +MyImpl::GPSHome_exec_i::create () +{ + return new MyImpl::GPS_exec_i; +} + + +extern "C" GPS_EXEC_Export ::Components::HomeExecutorBase_ptr +createGPSHome_Impl (void) +{ + return new MyImpl::GPSHome_exec_i(); +} diff --git a/modules/CIAO/examples/Display/GPS/GPS_exec.h b/modules/CIAO/examples/Display/GPS/GPS_exec.h new file mode 100644 index 00000000000..f0ca86823b8 --- /dev/null +++ b/modules/CIAO/examples/Display/GPS/GPS_exec.h @@ -0,0 +1,111 @@ +/** + * @file GPS_exec.h + * $Id$ + * Header file for the GPS component implementation. + * + */ + +#ifndef GPS_EXEC_H +#define GPS_EXEC_H + +#include "GPS_exec_export.h" +#include "GPSEC.h" +#include "ace/OS_NS_time.h" +#include "tao/LocalObject.h" + +#define DISPLACEMENT 256 + +namespace MyImpl +{ + /** + * @class GPS_exec_i + * + * GPS executor implementation class. + */ + class GPS_EXEC_Export GPS_exec_i : + public virtual ::CIAO_HUDisplay_GPS_Impl::GPS_Exec, + public virtual ::CORBA::LocalObject + { + + public: + /// Default constructor. + GPS_exec_i (); + + /// Default destructor. + ~GPS_exec_i (); + + // Operations from HUDisplay::GPS + HUDisplay::CCM_position_ptr get_MyLocation (); + + void push_Refresh (HUDisplay::tick *); + + // Operations from HUDisplay::position + CORBA::Long posx (); + + CORBA::Long posy (); + + // Operations from Components::SessionComponent + void set_session_context (Components::SessionContext_ptr ctx); + + void configuration_complete (); + + void ccm_activate (); + + void ccm_passivate (); + + void ccm_remove (); + + protected: + // Component specific context + HUDisplay::CCM_GPS_Context_var context_; + + private: + CORBA::Long positionx_, positiony_; + }; + + + /** + * @class GPSHome_exec_i + * + * GPS home executor implementation class. + */ + class GPS_EXEC_Export GPSHome_exec_i : + public virtual HUDisplay::CCM_GPSHome, + public virtual ::CORBA::LocalObject + { + public: + /// Default ctor. + GPSHome_exec_i (); + + /// Default dtor. + ~GPSHome_exec_i (); + + // Implicit home operations + virtual ::Components::EnterpriseComponent_ptr create (); + }; + + + class Position_Impl : public virtual HUDisplay::CCM_position, + public virtual ::CORBA::LocalObject + { + public: + Position_Impl (GPS_exec_i& component) + : component_ (component) + { + } + + // Operations from HUDisplay::position + CORBA::Long posx (); + + CORBA::Long posy (); + + private: + GPS_exec_i& component_; + }; + +} + +extern "C" GPS_EXEC_Export ::Components::HomeExecutorBase_ptr +createGPSHome_Impl (void); + +#endif /* GPS_EXEC_H */ diff --git a/modules/CIAO/examples/Display/GPS/GPS_tracing_exec.cpp b/modules/CIAO/examples/Display/GPS/GPS_tracing_exec.cpp new file mode 100644 index 00000000000..9a989e12bdd --- /dev/null +++ b/modules/CIAO/examples/Display/GPS/GPS_tracing_exec.cpp @@ -0,0 +1,131 @@ +// $Id$ + +#include "GPS_tracing_exec.h" + +#include "ace/OS_NS_time.h" + +#define DISPLACEMENT 256 + +/// Default constructor. +MyImpl::GPS_tracing_exec_i::GPS_tracing_exec_i () : dx_(1), dy_(1) +{ + ACE_OS::srand ((u_int) ACE_OS::time ()); + + this->positionx_ = 20; + this->positiony_ = 25; +} + +/// Default destructor. +MyImpl::GPS_tracing_exec_i::~GPS_tracing_exec_i () +{ +} + +// Operations from HUDisplay::GPS + +HUDisplay::CCM_position_ptr +MyImpl::GPS_tracing_exec_i::get_MyLocation () +{ + return HUDisplay::CCM_position::_duplicate (this); +} + +void +MyImpl::GPS_tracing_exec_i::push_Refresh (HUDisplay::tick *) +{ + // Refresh position + if(this->positionx_ > 500) this->dx_ = -1; + if(this->positionx_ < 10) this->dx_ = 1; + if(this->positiony_ > 300) this->dy_ = -1; + if(this->positiony_ < 10) this->dy_ = 1; + + this->positionx_ += this->dx_; + this->positiony_ += this->dy_; + + // Nitify others + HUDisplay::tick_var event = new OBV_HUDisplay::tick; + + this->context_->push_Ready (event); +} + +// Operations from HUDisplay::position + +CORBA::Long +MyImpl::GPS_tracing_exec_i::posx () +{ + return this->positionx_; +} + +CORBA::Long +MyImpl::GPS_tracing_exec_i::posy () +{ + return this->positiony_; +} + +// Operations from Components::SessionComponent +void +MyImpl::GPS_tracing_exec_i::set_session_context ( + Components::SessionContext_ptr ctx) +{ + if (CIAO::debug_level () > 0) + ACE_DEBUG ((LM_DEBUG, + "MyImpl::GPS_tracing_exec_i::set_session_context\n")); + + this->context_ = + HUDisplay::CCM_GPS_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + throw CORBA::INTERNAL (); + // Urm, we actually discard exceptions thown from this operation. +} + +void +MyImpl::GPS_tracing_exec_i::configuraton_complete () +{ +} + +void +MyImpl::GPS_tracing_exec_i::ccm_activate () +{ + if (CIAO::debug_level () > 0) + ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_tracing_exec_i::ccm_activate\n")); +} + +void +MyImpl::GPS_tracing_exec_i::ccm_passivate () +{ + if (CIAO::debug_level () > 0) + ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_tracing_exec_i::ccm_passivate\n")); +} + +void +MyImpl::GPS_tracing_exec_i::ccm_remove () +{ + if (CIAO::debug_level () > 0) + ACE_DEBUG ((LM_DEBUG, "MyImpl::GPS_tracing_exec_i::ccm_remove\n")); +} + +/// Default ctor. +MyImpl::GPSHome_tracing_exec_i::GPSHome_tracing_exec_i () +{ +} + +/// Default dtor. +MyImpl::GPSHome_tracing_exec_i::~GPSHome_tracing_exec_i () +{ +} + +// Explicit home operations. + +// Implicit home operations. + +::Components::EnterpriseComponent_ptr +MyImpl::GPSHome_tracing_exec_i::create () +{ + return new MyImpl::GPS_tracing_exec_i; +} + + +extern "C" GPS_EXEC_Export ::Components::HomeExecutorBase_ptr +createGPSHome_Tracing_Impl (void) +{ + return new MyImpl::GPSHome_tracing_exec_i; +} diff --git a/modules/CIAO/examples/Display/GPS/GPS_tracing_exec.h b/modules/CIAO/examples/Display/GPS/GPS_tracing_exec.h new file mode 100644 index 00000000000..a03432cc42c --- /dev/null +++ b/modules/CIAO/examples/Display/GPS/GPS_tracing_exec.h @@ -0,0 +1,112 @@ +// $Id$ + +/** + * @file GPS_tracing_exec.h + * + * Header file for the actual GPS and GPSHome component + * implementations. + * + * @author Nanbor Wang <nanbor@cse.wustl.edu> + */ + +#ifndef GPS_TRACING_EXEC_H +#define GPS_TRACING_EXEC_H + +#include "GPSEIC.h" +#include "tao/LocalObject.h" + +namespace MyImpl +{ + /** + * @class GPS_tracing_exec_i + * + * RateGen executor implementation class. + */ + class GPS_EXEC_Export GPS_tracing_exec_i : + public virtual HUDisplay::GPS_Exec, + public virtual ::CORBA::LocalObject + { + public: + /// Default constructor. + GPS_tracing_exec_i (); + + /// Default destructor. + ~GPS_tracing_exec_i (); + + // Operations from HUDisplay::GPS + + virtual HUDisplay::CCM_position_ptr + get_MyLocation (); + + virtual void + push_Refresh (HUDisplay::tick *ev); + + // Operations from HUDisplay::position + + virtual CORBA::Long + posx (); + + virtual CORBA::Long + posy (); + + // Operations from Components::SessionComponent + + virtual void + set_session_context (Components::SessionContext_ptr ctx); + + virtual void + configuration_complete (); + + virtual void + ccm_activate (); + + virtual void + ccm_passivate (); + + virtual void + ccm_remove (); + protected: + /// Current GPS reading. + CORBA::Long positionx_; + CORBA::Long positiony_; + + /// Delta amounts to emulate the position shift of each reading. + int dx_; + int dy_; + + /// Copmponent specific context + HUDisplay::CCM_GPS_Context_var context_; + }; + + /** + * @class GPSHome_tracing_exec_i + * + * GPS home executor implementation class. + */ + class GPS_EXEC_Export GPSHome_tracing_exec_i : + public virtual HUDisplay::CCM_GPSHome, + public virtual ::CORBA::LocalObject + { + public: + /// Default ctor. + GPSHome_tracing_exec_i (); + + /// Default dtor. + ~GPSHome_tracing_exec_i (); + + // Explicit home operations. + + // Implicit home operations. + + virtual ::Components::EnterpriseComponent_ptr + create (); + }; + +} + +// Executor DLL entry point. CIAO's deployment and assembly framework +// invokes this function on the resulting DLL to get the home executor. +extern "C" GPS_EXEC_Export ::Components::HomeExecutorBase_ptr +createGPSHome_Tracing_Impl (void); + +#endif /* GPS_TRACING_EXEC_H */ diff --git a/modules/CIAO/examples/Display/NavDisplay/NavDisplay.idl b/modules/CIAO/examples/Display/NavDisplay/NavDisplay.idl new file mode 100644 index 00000000000..a786f7f9d06 --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplay/NavDisplay.idl @@ -0,0 +1,29 @@ +// $Id$ + +/** + * @file NavDisplay.idl + * + * Definition of the navigation display component. + * + * @author Nanbor Wang <nanbor@cs.wustl.edu> + */ + +#ifndef NAVDISPLAY_IDL +#define NAVDISPLAY_IDL + +#include "../Display_Base/Display_Base.idl" + +module HUDisplay +{ + component NavDisplay + { + consumes tick Refresh; + uses position GPSLocation; + }; + + home NavDisplayHome manages NavDisplay + { + }; +}; + +#endif /* NAVDISPLAY_IDL */ diff --git a/modules/CIAO/examples/Display/NavDisplay/NavDisplay.mpc b/modules/CIAO/examples/Display/NavDisplay/NavDisplay.mpc new file mode 100644 index 00000000000..dc22ce5db9f --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplay/NavDisplay.mpc @@ -0,0 +1,115 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -p Display_Base -u Display NavDisplay" + +project(Display_NavDisplay_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=NAVDISPLAY_STUB_Export \ + -Wb,stub_export_include=NavDisplay_stub_export.h \ + -Wb,skel_export_macro=NAVDISPLAY_SVNT_Export \ + -Wb,skel_export_include=NavDisplay_svnt_export.h \ + -Wb,exec_export_macro=NAVDISPLAY_EXEC_Export \ + -Wb,exec_export_include=NavDisplay_exec_export.h \ + + IDL_Files { + NavDisplay.idl + } +} + +project(Display_NavDisplay_lem_gen) : ciaoidldefaults { + custom_only = 1 + after += Display_NavDisplay_idl_gen + idlflags += -Wb,export_macro=NAVDISPLAY_EXEC_Export \ + -Wb,export_include=NavDisplay_exec_export.h \ + -SS + + IDL_Files { + NavDisplayE.idl + } +} + +project(Display_NavDisplay_stub) : ccm_stub { + after += Display_NavDisplay_idl_gen Display_Base_stub + libs += Display_Base_stub + libout = ../lib + libpaths += ../lib + + sharedname = NavDisplay_stub + dynamicflags = NAVDISPLAY_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + NavDisplayC.cpp + } + + Header_Files { + NavDisplayC.h + NavDisplay_stub_export.h + } + + Inline_Files { + NavDisplayC.inl + } +} + +project(Display_NavDisplay_exec) : ciao_executor { + after += Display_NavDisplay_lem_gen Display_NavDisplay_stub + sharedname = NavDisplay_exec + libs += NavDisplay_stub Display_Base_stub + libout = ../lib + libpaths += ../lib + + dynamicflags = NAVDISPLAY_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + NavDisplayEC.cpp + NavDisplay_exec.cpp + } + + Header_Files { + NavDisplayEC.h + NavDisplay_exec.h + NavDisplay_exec_export.h + } + + Inline_Files { + NavDisplayEC.inl + } +} + +project(Display_NavDisplay_svnt) : ciao_servant { + after += Display_Base_skel Display_NavDisplay_exec + sharedname = NavDisplay_svnt + libs += NavDisplay_exec \ + NavDisplay_stub \ + Display_Base_skel \ + Display_Base_stub + libout = ../lib + libpaths += ../lib + + dynamicflags = NAVDISPLAY_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + NavDisplayS.cpp + NavDisplay_svnt.cpp + } + + Header_Files { + NavDisplayS.h + NavDisplay_svnt.h + NavDisplay_svnt_export.h + } + + Inline_Files { + NavDisplayS.inl + } +} + + diff --git a/modules/CIAO/examples/Display/NavDisplay/NavDisplay_exec.cpp b/modules/CIAO/examples/Display/NavDisplay/NavDisplay_exec.cpp new file mode 100644 index 00000000000..40db3c816cc --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplay/NavDisplay_exec.cpp @@ -0,0 +1,105 @@ +// $Id$ + +#include "NavDisplay_exec.h" + +/// Default constructor. +MyImpl::NavDisplay_exec_impl::NavDisplay_exec_impl (void) +{ +} + +/// Default destructor. +MyImpl::NavDisplay_exec_impl::~NavDisplay_exec_impl (void) +{ +} + +// Operations from HUDisplay::NavDisplay + +void +MyImpl::NavDisplay_exec_impl::push_Refresh (HUDisplay::tick *ev) +{ + ACE_UNUSED_ARG (ev); + +// ACE_DEBUG ((LM_DEBUG, +// ACE_TEXT ("NAVDISPLAY: Received Refresh Event\n"))); + + // Refresh position + HUDisplay::position_var loc = + this->context_->get_connection_GPSLocation (); + + if (CORBA::is_nil (loc.in ())) + { + throw CORBA::BAD_INV_ORDER (); + } + + CORBA::Long x = loc->posx () % 500; + + CORBA::Long y = loc->posy () % 300; + + ACE_DEBUG ((LM_DEBUG, + "NAVDISPLAY: Current Location is: (%d, %d)\n", + x, + y)); +} + +// Operations from Components::SessionComponent +void +MyImpl::NavDisplay_exec_impl::set_session_context ( + Components::SessionContext_ptr ctx) +{ + ACE_DEBUG ((LM_DEBUG, + "MyImpl::NavDisplay_exec_impl::set_session_context\n")); + this->context_ = + HUDisplay::CCM_NavDisplay_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + { + throw CORBA::INTERNAL (); + } + // Urm, we actually discard exceptions thown from this operation. +} + +void +MyImpl::NavDisplay_exec_impl::configuration_complete (void) +{ +} + +void +MyImpl::NavDisplay_exec_impl::ccm_activate (void) +{ + ACE_DEBUG ((LM_DEBUG, + "MyImpl::NavDisplay_exec_impl::ccm_activate\n")); +} + +void +MyImpl::NavDisplay_exec_impl::ccm_remove (void) +{ + ACE_DEBUG ((LM_DEBUG, + "MyImpl::NavDisplay_exec_impl::ccm_remove\n")); +} + +/// Default ctor. +MyImpl::NavDisplayHome_exec_impl::NavDisplayHome_exec_impl (void) +{ +} + +/// Default dtor. +MyImpl::NavDisplayHome_exec_impl::~NavDisplayHome_exec_impl (void) +{ +} + +// Explicit home operations. + +// Implicit home operations. + +::Components::EnterpriseComponent_ptr +MyImpl::NavDisplayHome_exec_impl::create (void) +{ + return new MyImpl::NavDisplay_exec_impl; +} + + +extern "C" NAVDISPLAY_EXEC_Export ::Components::HomeExecutorBase_ptr +createNavDisplayHome_Impl (void) +{ + return new MyImpl::NavDisplayHome_exec_impl; +} diff --git a/modules/CIAO/examples/Display/NavDisplay/NavDisplay_exec.h b/modules/CIAO/examples/Display/NavDisplay/NavDisplay_exec.h new file mode 100644 index 00000000000..8c32f5dd0e4 --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplay/NavDisplay_exec.h @@ -0,0 +1,92 @@ +// $Id$ + +/** + * @file NavDisplay_exec.h + * + * Header file for the actual NavDisplay and NavDisplayHome component + * implementations. + * + * @author Nanbor Wang <nanbor@cse.wustl.edu> + */ + +#ifndef NAVDISPLAY_EXEC_H +#define NAVDISPLAY_EXEC_H + +#include "NavDisplayEC.h" +#include "NavDisplay_exec_export.h" +#include "tao/LocalObject.h" + +namespace MyImpl +{ + /** + * @class NavDisplay_exec_impl + * + * RateGen executor implementation class. + */ + class NAVDISPLAY_EXEC_Export NavDisplay_exec_impl + : public virtual ::CIAO_HUDisplay_NavDisplay_Impl::NavDisplay_Exec, + public virtual ::CORBA::LocalObject + { + public: + /// Default constructor. + NavDisplay_exec_impl (void); + + /// Default destructor. + ~NavDisplay_exec_impl (void); + + // Operations from HUDisplay::NavDisplay + + virtual void + push_Refresh (HUDisplay::tick *ev); + + // Operations from Components::SessionComponent + + virtual void + set_session_context (Components::SessionContext_ptr ctx); + + virtual void + configuration_complete (void); + + virtual void + ccm_activate (void); + + virtual void + ccm_passivate (void) {}; + + virtual void + ccm_remove (void); + protected: + /// Copmponent specific context + HUDisplay::CCM_NavDisplay_Context_var context_; + }; + + /** + * @class NavDisplayHome_exec_impl + * + * NavDisplay home executor implementation class. + */ + class NAVDISPLAY_EXEC_Export NavDisplayHome_exec_impl + : public virtual HUDisplay::CCM_NavDisplayHome, + public virtual ::CORBA::LocalObject + { + public: + /// Default ctor. + NavDisplayHome_exec_impl (void); + + /// Default dtor. + ~NavDisplayHome_exec_impl (void); + + // Explicit home operations. + + // Implicit home operations. + + virtual ::Components::EnterpriseComponent_ptr + create (void); + }; + +} + +extern "C" NAVDISPLAY_EXEC_Export ::Components::HomeExecutorBase_ptr +createNavDisplayHome_Impl (void); + +#endif /* NAVDISPLAY_EXEC_H */ diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.cpp new file mode 100644 index 00000000000..52cce23d000 --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.cpp @@ -0,0 +1,28 @@ +// $Id$ + +#include "AddNavUnitCmd.h" +#include "RootPanel.h" +#include "NavUnit.h" + + +AddNavUnitCmd::AddNavUnitCmd() +{ +} + + +AddNavUnitCmd * +AddNavUnitCmd::create(RootPanel *form, NavUnit *unit) +{ + AddNavUnitCmd *cmd = new AddNavUnitCmd(); + cmd->form_ = form; + cmd->unit_ = unit; + return cmd; +} + + +int +AddNavUnitCmd::execute(void * /* context */) +{ + this->form_->addUnit (this->unit_); + return 0; +} diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.h new file mode 100644 index 00000000000..6a3930196e7 --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/AddNavUnitCmd.h @@ -0,0 +1,27 @@ +// $Id$ + +#ifndef __ADDNAVUNITCMD_H +#define __ADDNAVUNITCMD_H + +#include "Command.h" + +class RootPanel; +class NavUnit; + +class AddNavUnitCmd : public CommandBase +{ +public: + static AddNavUnitCmd *create(RootPanel *form, NavUnit *unit); + +public: + virtual int execute(void *context = 0); + +protected: + AddNavUnitCmd(); + + RootPanel *form_; + NavUnit *unit_; +}; + + +#endif // __ADDNAVUNITCMD_H diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/Command.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/Command.h new file mode 100644 index 00000000000..2a259f4ec24 --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/Command.h @@ -0,0 +1,20 @@ +// $Id$ + +#ifndef __COMMAND_H +#define __COMMAND_H + +#include <Qt/qdatetime.h> + +class CommandBase +{ +public: + CommandBase() {timestamp_ = QTime::currentTime();} + virtual ~CommandBase() {} + +public: + virtual int execute(void *context = 0) = 0; + QTime timestamp_; +}; + + +#endif // __COMMAND_H diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/DetailView.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/DetailView.cpp new file mode 100644 index 00000000000..dccae6acd3d --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/DetailView.cpp @@ -0,0 +1,168 @@ +// $Id$ + +#include "DetailView.h" +#include <Qt/q3table.h> +#include <Qt/qlayout.h> +#include <Qt/qpushbutton.h> +#include <Qt/qtabwidget.h> +#include <Qt/qlabel.h> +#include <Qt/qlineedit.h> +#include <Qt/qspinbox.h> + +DetailView::DetailView(QWidget *parent, const char *name) +: QWidget(parent, name), current_unit(0) +{ + QGridLayout *grid = new QGridLayout(this, 8, 10); + + // Create a label containing a QMovie + separatorlabel = new QLabel(this, "label0" ); + + grid->addMultiCellWidget(separatorlabel, 0, 0, 0, 9); + + QLabel *sem_id_label = new QLabel("FDN:", this); + grid->addWidget(sem_id_label, 1, 0); + sem_id_val = new QLineEdit(this); + sem_id_val->setReadOnly(1); + grid->addMultiCellWidget(sem_id_val, 1, 1, 1, 7); + + QLabel *descr_label = new QLabel("Description:", this); + grid->addWidget(descr_label, 2, 0); + descr_edit = new QLineEdit(this); + grid->addMultiCellWidget(descr_edit, 2, 2, 1, 7); + + QLabel *x_label = new QLabel("X coordinate:", this); + grid->addWidget(x_label, 3, 0); + x_edit = new QSpinBox(this); + x_edit->setMinValue(0); + x_edit->setMaxValue(65535); + grid->addWidget(x_edit, 3, 1); + + QLabel *y_label = new QLabel("Y coordinate:", this); + grid->addWidget(y_label, 3, 3); + y_edit = new QSpinBox(this); + y_edit->setMinValue(0); + y_edit->setMaxValue(65535); + grid->addWidget(y_edit, 3, 4); + + QLabel *z_label = new QLabel("Z coordinate:", this); + grid->addWidget(z_label, 3, 6); + z_edit = new QSpinBox(this); + z_edit->setMinValue(0); + z_edit->setMaxValue(65535); + grid->addWidget(z_edit, 3, 7); + + // Create a label containing a QMovie + QString path_to_movie; + char *ace_root = ACE_OS::getenv("ACE_ROOT"); + if(ace_root) + { + path_to_movie += ace_root; + path_to_movie += "/TAO/CIAO/examples/handcrafted/Display/NavDisplayGUI_exec/trolltech.gif"; + } + else + { + path_to_movie = "../NavDisplayGUI_exec/trolltech.gif"; + } + movie = new QMovie(path_to_movie); + movielabel = new QLabel(this, "label1" ); +// movie->connectStatus(this, SLOT(movieStatus(int))); +// movie->connectUpdate(this, SLOT(movieUpdate(const QRect&))); + movielabel->setFrameStyle( QFrame::Box | QFrame::Plain ); + movielabel->setMovie(movie); + movielabel->setFixedSize( 128+movielabel->frameWidth()*2, + 64+movielabel->frameWidth()*2 ); + grid->addMultiCellWidget(new QLabel("", this), 1, 4, 8, 8); + grid->addMultiCellWidget(movielabel, 1, 4, 9, 9); + + + QPushButton *apply = new QPushButton("Apply", this); + apply->setDefault(1); + grid->addWidget(apply, 7, 9); + + // FUZZ: disable check_for_lack_ACE_OS + connect(apply, SIGNAL(clicked()), this, SLOT(apply())); + // FUZZ: enable check_for_lack_ACE_OS + + QTabWidget *tabs = new QTabWidget(this); + + + child_list = new Q3Table(0, 6, tabs); + child_list->setSelectionMode(Q3Table::Single); + child_list->horizontalHeader()->setLabel(0, "FDN"); + child_list->horizontalHeader()->setLabel(1, "Description"); + child_list->horizontalHeader()->setLabel(2, "X Coordinate"); + child_list->horizontalHeader()->setLabel(3, "Y Coordinate"); + child_list->horizontalHeader()->setLabel(4, "Z Coordinate"); + child_list->horizontalHeader()->setLabel(5, "Color"); + + parent_list = new Q3Table(0, 6, tabs); + parent_list->setSelectionMode(Q3Table::Single); + parent_list->horizontalHeader()->setLabel(0, "FDN"); + parent_list->horizontalHeader()->setLabel(1, "Description"); + parent_list->horizontalHeader()->setLabel(2, "X Coordinate"); + parent_list->horizontalHeader()->setLabel(3, "Y Coordinate"); + parent_list->horizontalHeader()->setLabel(4, "Z Coordinate"); + parent_list->horizontalHeader()->setLabel(5, "Color"); + + tabs->addTab(child_list, "Property set &1"); + tabs->addTab(parent_list, "Property set &2"); + + grid->addMultiCellWidget(new QLabel(this), 4, 4, 0, 9); + grid->addMultiCellWidget(tabs, 5, 5, 0, 9); +} + + +DetailView::~DetailView() +{ + delete movie; +} + + +void +DetailView::currentNode(NavUnit *unit) +{ + UnitLocation loc = unit->getLocation(); + descr_edit->setText(unit->getShortDescr()); + this->updateLocation(loc); +} + +void +DetailView::updateLocation(const UnitLocation &loc) +{ + x_edit->setValue(static_cast<int>(loc.x_)); + y_edit->setValue(static_cast<int>(loc.y_)); + z_edit->setValue(static_cast<int>(loc.z_)); +} + +void +DetailView::apply() +{ +} + + +void +DetailView::movieUpdate( const QRect& ) +{ + // Uncomment this to test animated icons on your window manager + //setIcon( movie.framePixmap() ); +} + + +void +DetailView::movieStatus( int s ) +{ +/* switch ( s ) + { + case QMovie::SourceEmpty: + case QMovie::UnrecognizedFormat: + { + QPixmap pm("tt-logo.png"); + movielabel->setPixmap(pm); + movielabel->setFixedSize(pm.size()); + } + break; + default: + if ( movielabel->movie() ) // for flicker-free animation: + movielabel->setBackgroundMode( Qt::NoBackground ); + }*/ +} diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/DetailView.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/DetailView.h new file mode 100644 index 00000000000..2f0cf44d69a --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/DetailView.h @@ -0,0 +1,49 @@ +// $Id$ + +#ifndef __DETAILVIEW_H +#define __DETAILVIEW_H + + +#include "NavUnit.h" +#include <Qt/qwidget.h> +#include <Qt/qmovie.h> +#include <Qt/q3table.h> + +class QLabel; +class QLineEdit; +class QSpinBox; + +class DetailView : public QWidget +{ + Q_OBJECT + +public: + DetailView(QWidget *parent, const char *name = 0); + virtual ~DetailView(); + +public slots: + void movieStatus(int); + void movieUpdate(const QRect&); + void currentNode(NavUnit *unit); + void updateLocation(const UnitLocation &loc); + void apply(); + +private: + QLineEdit *sem_id_val; + QLineEdit *descr_edit; + QSpinBox *x_edit; + QSpinBox *y_edit; + QSpinBox *z_edit; + Q3Table *child_list; + Q3Table *parent_list; + QLabel *movielabel; + QMovie *movie; + QLabel *separatorlabel; + QMovie separator; + + + NavUnit *current_unit; +}; + + +#endif // __DETAILVIEW_H diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/MapView.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/MapView.cpp new file mode 100644 index 00000000000..f1dfac65400 --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/MapView.cpp @@ -0,0 +1,40 @@ +// $Id$ + +#include "MapView.h" +#include <stdlib.h> + +#include "worldmap1.xpm" + +MapView::MapView( + Q3Canvas& c, + QWidget* parent, + const char* name, + Qt::WindowFlags f) + : + Q3CanvasView(&c, parent, name, f), + bg_pixmap_(worldmap1) +{ + viewport()->setBackgroundMode(Qt::NoBackground); + enableClipper(TRUE); + if(!bg_pixmap_.isNull()) + { + resizeContents(bg_pixmap_.width(), bg_pixmap_.height()); + } + else + resizeContents(100, 100); + + canvas()->setBackgroundPixmap(bg_pixmap_); +} + +void +MapView::clear() +{ + /* + QCanvasItemList list = canvas()->allItems(); + for(QCanvasItemList::Iterator it = list.begin(); it != list.end(); ++it) + { + if(*it) + delete *it; + } + */ +} diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/MapView.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/MapView.h new file mode 100644 index 00000000000..0e7ad045f8b --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/MapView.h @@ -0,0 +1,23 @@ +// $Id$ + +#ifndef __MAPVIEW_H +#define __MAPVIEW_H + +#include <Qt/q3canvas.h> +#include <Qt/qpixmap.h> + +class MapView : public Q3CanvasView +{ + Q_OBJECT + +public: + MapView(Q3Canvas&, QWidget* parent=0, const char* name=0, Qt::WindowFlags f=0); + void clear(); + +protected: + QPixmap bg_pixmap_; +}; + + + +#endif // __MAPVIEW_H diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc new file mode 100644 index 00000000000..811bf3bc45e --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI.mpc @@ -0,0 +1,89 @@ +// $Id$ + +project(Display_NavDisplayGUI_exec_moc) : ace_qt4, qt4_qt3support { + custom_only = 1 + MOC_Files { + DetailView.h + MapView.h + NodeItem.h + RootPanel.h + } +} + +project(Display_NavDisplayGUI_exec) : ciao_executor, ace_qt4, qt4_qt3support { + after += Display_NavDisplay_lem_gen \ + Display_NavDisplay_stub \ + Display_NavDisplayGUI_exec_moc + sharedname = NavDisplayGUI_exec + libs += NavDisplay_stub Display_Base_stub + dynamicflags = NAVDISPLAY_EXEC_BUILD_DLL QT_DLL + includes += ../NavDisplay + libout = ../lib + libpaths += ../lib + + IDL_Files { + } + + Source_Files { + AddNavUnitCmd.cpp + DetailView.cpp + MapView.cpp + NavUnit.cpp + NodeItem.cpp + QuitCmd.cpp + RootPanel.cpp + UpdatePositionCmd.cpp + Worker.cpp + ../NavDisplay/NavDisplayEC.cpp + NavDisplayGUI_exec.cpp + } + + Header_Files { + NavDisplayGUI_exec.h + NavDisplayGUI_exec_export.h + } + + MOC_Files { + } + + Source_Files { + DetailView_moc.cpp + MapView_moc.cpp + NodeItem_moc.cpp + RootPanel_moc.cpp + } +} + +project(Display_NavDisplayGUI_svnt) : ciao_servant, ace_qt4, qt4_qt3support { + after += Display_Base_skel Display_NavDisplayGUI_exec + sharedname = NavDisplayGUI_svnt + includes += ../NavDisplay + libs += NavDisplayGUI_exec \ + NavDisplay_stub \ + Display_Base_skel \ + Display_Base_stub + dynamicflags = NAVDISPLAY_SVNT_BUILD_DLL + libout = ../lib + libpaths += ../lib + + IDL_Files { + } + + MOC_Files { + } + + Source_Files { + ../NavDisplay/NavDisplayS.cpp + ../NavDisplay/NavDisplay_svnt.cpp + } + + Header_Files { + ../NavDisplay/NavDisplayS.h + ../NavDisplay/NavDisplay_svnt.h + ../NavDisplay/NavDisplay_svnt_export.h + } + + Inline_Files { + ../NavDisplay/NavDisplayS.inl + } +} diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp new file mode 100644 index 00000000000..9a67140671f --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.cpp @@ -0,0 +1,156 @@ +// $Id$ + +#include "NavDisplayGUI_exec.h" +#include <Qt/qapplication.h> +#include <Qt/qevent.h> + +#include "UpdatePositionCmd.h" +#include "QuitCmd.h" +#include "AddNavUnitCmd.h" +#include "Worker.h" + +static const char *argv[] = +{ + "NavDisplayGUI" +}; + +/// Default constructor. +MyImpl::NavDisplayGUI_exec_impl::NavDisplayGUI_exec_impl (void) + : unit_(1, "Model T3+"), loc_(50, 20, 0) +{ +} + +/// Default destructor. +MyImpl::NavDisplayGUI_exec_impl::~NavDisplayGUI_exec_impl (void) +{ +} + +// Operations from HUDisplay::NavDisplay + +void +MyImpl::NavDisplayGUI_exec_impl::push_Refresh ( + HUDisplay::tick * /* ev */) +{ + //ACE_DEBUG ((LM_DEBUG, "ENTER: MyImpl::NavDisplayGUI_exec_impl::push_Refresh()\n")); + + // Refresh position + HUDisplay::position_var loc = + this->context_->get_connection_GPSLocation (); + + CORBA::Long lx = loc->posx (); + + CORBA::Long ly = loc->posy (); + + mutex_.acquire (); + + loc_.x_ = lx % 500; + loc_.y_ = ly % 300; + + this->unit_.setLocation (loc_); + + mutex_.release (); + + //ACE_DEBUG ((LM_DEBUG, "DISPLAY: Current Location is: %d %d\n", int(attrs.x_), int(attrs.y_))); + + RootPanel *root_pane = worker_->getMainWindow (); + + if (root_pane != 0) + { + UpdatePositionCmd *cmd = UpdatePositionCmd::create ( + root_pane, + &(this->unit_)); + QCustomEvent *evt = new QCustomEvent (QEvent::User, cmd); + QApplication::postEvent (root_pane, evt); + } + + //ACE_DEBUG ((LM_DEBUG, "LEAVE: MyImpl::NavDisplayGUI_exec_impl::push_Refresh()\n")); +} + +// Operations from Components::SessionComponent +void +MyImpl::NavDisplayGUI_exec_impl::set_session_context (Components::SessionContext_ptr ctx) +{ + this->context_ = + HUDisplay::CCM_NavDisplay_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + { + throw CORBA::INTERNAL (); + } + // Urm, we actually discard exceptions thown from this operation. +} + +void +MyImpl::NavDisplayGUI_exec_impl::configuration_complete (void) +{ +} + +void +MyImpl::NavDisplayGUI_exec_impl::ccm_activate (void) +{ + worker_ = new Worker (sizeof (argv) / sizeof (argv[0]), + const_cast<char **> (argv)); + + if (worker_->activate (THR_NEW_LWP | THR_JOINABLE, 1) != 0) + { + ACE_DEBUG((LM_ERROR, + "Cannot activate client threads\n")); + throw Components::CCMException (); + } + + worker_->waitUntillInitialized (); + + AddNavUnitCmd *cmd = AddNavUnitCmd::create ( + worker_->getMainWindow(), + &(this->unit_)); + QCustomEvent *evt = new QCustomEvent (QEvent::User, cmd); + QApplication::postEvent (worker_->getMainWindow (), evt); +} + +void +MyImpl::NavDisplayGUI_exec_impl::ccm_passivate (void) +{ + RootPanel *target = worker_->getMainWindow (); + + if (target != 0) + { + QuitCmd *cmd = QuitCmd::create( target); + QCustomEvent *evt = new QCustomEvent (QEvent::User, cmd); + QApplication::postEvent (target, evt); + worker_->thr_mgr ()->wait (); + } + + delete worker_; +} + +void +MyImpl::NavDisplayGUI_exec_impl::ccm_remove (void) +{ +} + +/// Default ctor. +MyImpl::NavDisplayGUIHome_exec_impl::NavDisplayGUIHome_exec_impl (void) +{ +} + +/// Default dtor. +MyImpl::NavDisplayGUIHome_exec_impl::~NavDisplayGUIHome_exec_impl (void) +{ +} + +// Explicit home operations. + +// Implicit home operations. + +::Components::EnterpriseComponent_ptr +MyImpl::NavDisplayGUIHome_exec_impl::create (void) +{ + return new MyImpl::NavDisplayGUI_exec_impl; +} + + +extern "C" NAVDISPLAY_EXEC_Export ::Components::HomeExecutorBase_ptr +createNavDisplayHome_Impl (void) +{ + return new MyImpl::NavDisplayGUIHome_exec_impl; +} diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h new file mode 100644 index 00000000000..ce1a35f35eb --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavDisplayGUI_exec.h @@ -0,0 +1,102 @@ +// $Id$ + +/** + * @file NavDisplayGUI_exec.h + * + * Header file for the actual NavDisplay and NavDisplayHome component + * implementations. + * + * @author Nanbor Wang <nanbor@cse.wustl.edu> + */ + +#ifndef NAVDISPLAY_EXEC_H +#define NAVDISPLAY_EXEC_H + +#include "NavDisplayEC.h" +#include "NavDisplay_exec_export.h" +#include "ace/Synch.h" +#include "tao/LocalObject.h" +#include "NavUnit.h" + +class Worker; + +namespace MyImpl +{ + /** + * @class NavDisplayGUI_exec_impl + * + * RateGen executor implementation class. + */ + class NAVDISPLAY_EXEC_Export NavDisplayGUI_exec_impl + : public virtual ::CIAO_HUDisplay_NavDisplay_Impl::NavDisplay_Exec, + public virtual ::CORBA::LocalObject + { + public: + /// Default constructor. + NavDisplayGUI_exec_impl (void); + + /// Default destructor. + ~NavDisplayGUI_exec_impl (void); + + // Operations from HUDisplay::NavDisplay + + virtual void + push_Refresh (HUDisplay::tick *ev); + + // Operations from Components::SessionComponent + + virtual void + set_session_context (Components::SessionContext_ptr ctx); + + virtual void + configuration_complete (void); + + virtual void + ccm_activate (void); + + virtual void + ccm_passivate (void); + + virtual void + ccm_remove (void); + protected: + /// Copmponent specific context + HUDisplay::CCM_NavDisplay_Context_var context_; + Worker *worker_; + NavUnit unit_; + UnitLocation loc_; + TAO_SYNCH_MUTEX mutex_; + }; + + /** + * @class NavDisplayGUIHome_exec_impl + * + * NavDisplay home executor implementation class. + */ + class NAVDISPLAY_EXEC_Export NavDisplayGUIHome_exec_impl + : public virtual HUDisplay::CCM_NavDisplayHome, + public virtual ::CORBA::LocalObject + { + public: + /// Default ctor. + NavDisplayGUIHome_exec_impl (void); + + /// Default dtor. + ~NavDisplayGUIHome_exec_impl (void); + + // Explicit home operations. + + // Implicit home operations. + + virtual + ::Components::EnterpriseComponent_ptr + create (void); + }; + +} + +extern "C" NAVDISPLAY_EXEC_Export +::Components::HomeExecutorBase_ptr +createNavDisplayHome_Impl (void); + +#endif /* NAVDISPLAY_EXEC_H */ diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavUnit.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavUnit.cpp new file mode 100644 index 00000000000..809117728f6 --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavUnit.cpp @@ -0,0 +1,9 @@ +// $Id$ + +#include "NavUnit.h" + + +NavUnit::NavUnit(const UnitID &id, const char *short_descr) +: id_(id), short_descr_(short_descr) +{ +} diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavUnit.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavUnit.h new file mode 100644 index 00000000000..86dd2cccbd7 --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NavUnit.h @@ -0,0 +1,57 @@ +// $Id$ + +#ifndef __NAVUNIT_H +#define __NAVUNIT_H + +#include "ace/SString.h" + + +class UnitLocation +{ +public: + UnitLocation() {x_ = y_ = z_ = 0.0;} + UnitLocation( + double x, + double y, + double z) : + x_(x), y_(y), z_(z) {} + + UnitLocation(const UnitLocation &ul) { operator = (ul); } + +public: + UnitLocation & operator = (const UnitLocation &ul) + { + x_ = ul.x_; + y_ = ul.y_; + z_ = ul.z_; + return *this; + } + +public: + double x_, y_, z_; +}; + +typedef unsigned long UnitID; + +class NavUnit +{ +public: + NavUnit(const UnitID &id, const char *short_descr); + virtual ~NavUnit() {} + +public: + UnitID getID() const {return id_;} + + const char *getShortDescr() const {return short_descr_.c_str();} + void setShortDescr(const char *short_descr) {short_descr_ = short_descr;} + + UnitLocation getLocation() const {return loc_;} + void setLocation(const UnitLocation &loc) {loc_ = loc;} + +protected: + UnitID id_; + ACE_CString short_descr_; + UnitLocation loc_; +}; + +#endif // __NAVUNIT_H diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp new file mode 100644 index 00000000000..16199f13076 --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.cpp @@ -0,0 +1,64 @@ +// $Id$ + +#include "NodeItem.h" +#include <Qt/qbrush.h> + +QBrush *NodeItem::normal = new QBrush(Qt::red); +QBrush *NodeItem::highlighted = new QBrush(Qt::green); + + +NodeItem::NodeItem(Q3Canvas *canvas, NavUnit &unit) + : Q3CanvasEllipse(8, 8, canvas), + unit_(unit), + blink_timer(canvas), + is_selected_(0) +{ + setBrush(*normal); + setZ(128); +} + + +void NodeItem::moveBy(double dx, double dy, double /* dz */) +{ + Q3CanvasEllipse::moveBy (dx, dy); +} + + +void +NodeItem::timerDone() +{ + if(selected()) + { + if(brush() == *normal) + setBrush(*highlighted); + else + setBrush(*normal); + + canvas()->update(); + } +} + + +void +NodeItem::setSelected(bool yes) +{ + is_selected_ = yes; + + if(yes) + { + // FUZZ: disable check_for_lack_ACE_OS + connect(&blink_timer, SIGNAL(timeout()), + SLOT(timerDone())); + // FUZZ: enable check_for_lack_ACE_OS + + blink_timer.start(500); + } + else + { + blink_timer.stop(); + disconnect(SIGNAL(timeout()), this, + SLOT(timerDone())); + setBrush(*normal); + canvas()->update(); + } +} diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.h new file mode 100644 index 00000000000..b9e27a62256 --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/NodeItem.h @@ -0,0 +1,47 @@ +// $Id$ + +#ifndef __NODEITEM_H +#define __NODEITEM_H + +#include "NavUnit.h" +#include <Qt/q3canvas.h> +#include <Qt/qtimer.h> +#include <Qt/qbrush.h> +#include <Qt/qobject.h> + +class NodeItem: public QObject, + public Q3CanvasEllipse +{ + Q_OBJECT + +public: + NodeItem(Q3Canvas *canvas, NavUnit &unit); + + ~NodeItem() {} + + enum { + nodeRTTI = 1 + }; + + void moveBy(double dx, double dy, double dz); + + virtual int rtti() const {return nodeRTTI;} + + virtual void setSelected(bool yes); + virtual bool selected() const {return is_selected_;} + +public slots: + void timerDone(); + +private: + NavUnit &unit_; + QTimer blink_timer; + bool is_selected_; + + static QBrush *normal; + static QBrush *highlighted; +}; + + + +#endif // __NODEITEM_H diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/QuitCmd.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/QuitCmd.cpp new file mode 100644 index 00000000000..b967c5a7e8c --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/QuitCmd.cpp @@ -0,0 +1,25 @@ +// $Id$ + +#include "QuitCmd.h" +#include "RootPanel.h" + + +QuitCmd::QuitCmd() +{ +} + + +QuitCmd * +QuitCmd::create(RootPanel *form) +{ + QuitCmd *cmd = new QuitCmd (); + cmd->form_ = form; + return cmd; +} + + +int +QuitCmd::execute (void * /* context */) +{ + return form_->close (); +} diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/QuitCmd.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/QuitCmd.h new file mode 100644 index 00000000000..92b2b0110eb --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/QuitCmd.h @@ -0,0 +1,25 @@ +// $Id$ + +#ifndef __QUITCMD_H +#define __QUITCMD_H + +#include "Command.h" + +class RootPanel; + +class QuitCmd : public CommandBase +{ +public: + static QuitCmd *create(RootPanel *form); + +public: + virtual int execute(void *context = 0); + +protected: + QuitCmd(); + + RootPanel *form_; +}; + + +#endif // __QUITCMD_H diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/RootPanel.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/RootPanel.cpp new file mode 100644 index 00000000000..1b315816efd --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/RootPanel.cpp @@ -0,0 +1,88 @@ +// $Id$ + +#include "RootPanel.h" +#include <Qt/qmenubar.h> +#include <Qt/qapplication.h> +#include <Qt/qprogressdialog.h> +#include <Qt/qsplitter.h> +#include <stdlib.h> +#include "NodeItem.h" +#include "Command.h" + + +RootPanel::RootPanel(Q3Canvas &c, QWidget *parent, const char *name) +: QMainWindow(parent, name), canvas(c) +{ + QSplitter *s1 = new QSplitter( Qt::Vertical, this , "main" ); + navview = new MapView(canvas, s1); + s1->moveToFirst(navview); + + details = new DetailView(s1); + + QMenuBar* menu = menuBar(); + + Q3PopupMenu* file = new Q3PopupMenu; + //file->insertItem("&Fill canvas", this, SLOT(init()), CTRL+Key_F); + //file->insertItem("&Erase canvas", this, SLOT(clear()), CTRL+Key_E); + //file->insertItem("&New view", this, SLOT(newView()), CTRL+Key_N); + file->insertSeparator(); + file->insertItem("E&xit", qApp, SLOT(quit()), Qt::CTRL + Qt::Key_Q); + menu->insertItem("&File", file); + + setCentralWidget(s1); +} + + +RootPanel::~RootPanel() +{ + clear(); +} + + +void +RootPanel::addUnit(NavUnit *unit) +{ + NodeItem *el = new NodeItem(&canvas, *unit); + nodeMap.bind(unit->getID(), el); + UnitLocation loc = unit->getLocation(); + el->move(loc.x_, loc.y_); + el->show(); + this->details->currentNode(unit); +} + +void +RootPanel::updateUnit(NavUnit *unit) +{ + NodeItem *el = 0; + nodeMap.find(unit->getID(), el); + UnitLocation loc = unit->getLocation(); + el->move(loc.x_, loc.y_); + //canvas.update(); + + this->details->updateLocation(loc); +} + + +void +RootPanel::clear() +{ + navview->clear(); +} + +void +RootPanel::customEvent(QCustomEvent *e) +{ + CommandBase *cmd = (CommandBase*)(e->data()); + cmd->execute(); + delete cmd; +/* + int elapsed = time.restart(); + int fps = (elapsed == 0 ? 1000 : 1000 / elapsed); + + if(prev_fps != fps) + { + prev_fps = fps; + ups->setNum(prev_fps); + } +*/ +} diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/RootPanel.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/RootPanel.h new file mode 100644 index 00000000000..75a18d51fc3 --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/RootPanel.h @@ -0,0 +1,49 @@ +// $Id$ + +#ifndef __ROOTPANEL_H +#define __ROOTPANEL_H + +#define QT_GENUINE_STR + +#include "ace/Hash_Map_Manager.h" +#include "ace/Null_Mutex.h" +#include "MapView.h" +#include "DetailView.h" +#include <Qt/qmainwindow.h> +#include <Qt/qevent.h> +#include <Qt/q3popupmenu.h> + +class NodeItem; +class QMouseEvent; + +class RootPanel : public QMainWindow +{ + Q_OBJECT + +typedef ACE_Hash_Map_Manager_Ex<ACE_UINT64, + NodeItem*, + ACE_Hash<ACE_UINT64>, + ACE_Equal_To<ACE_UINT64>, + ACE_Null_Mutex> NodeItemMap; + +public: + RootPanel(Q3Canvas&, QWidget *parent = 0, const char *name = 0); + ~RootPanel(); + +public: + void addUnit(NavUnit* unit); + void updateUnit(NavUnit *unit); + +protected: + void clear(); + virtual void customEvent(QCustomEvent *e); + + Q3Canvas& canvas; + MapView *navview; + DetailView *details; + + Q3PopupMenu* options; + NodeItemMap nodeMap; +}; + +#endif // __ROOTPANEL_H diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.cpp new file mode 100644 index 00000000000..995d73fb937 --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.cpp @@ -0,0 +1,30 @@ +// $Id$ + +#include "RootPanel.h" +#include "UpdatePositionCmd.h" +#include <Qt/qlcdnumber.h> +#include "NavUnit.h" + + +UpdatePositionCmd::UpdatePositionCmd() +{ +} + + +UpdatePositionCmd * +UpdatePositionCmd::create( + RootPanel *form, NavUnit *unit) +{ + UpdatePositionCmd *cmd = new UpdatePositionCmd(); + cmd->form_ = form; + cmd->unit_ = unit; + return cmd; +} + + +int +UpdatePositionCmd::execute (void * /* context */) +{ + this->form_->updateUnit (this->unit_); + return 0; +} diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.h new file mode 100644 index 00000000000..6eaa62a7770 --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/UpdatePositionCmd.h @@ -0,0 +1,28 @@ +// $Id$ + +#ifndef __UPDATEPOSITIONCM_H +#define __UPDATEPOSITIONCM_H + +#include "Command.h" + +class RootPanel; +class NavUnit; + +class UpdatePositionCmd : public CommandBase +{ +public: + static UpdatePositionCmd *create( + RootPanel *form, NavUnit *unit); + +public: + virtual int execute(void *context = 0); + +protected: + UpdatePositionCmd(); + + RootPanel *form_; + NavUnit *unit_; +}; + + +#endif // __UPDATEPOSITIONCM_H diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/Worker.cpp b/modules/CIAO/examples/Display/NavDisplayGUI_exec/Worker.cpp new file mode 100644 index 00000000000..43b72a0a2aa --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/Worker.cpp @@ -0,0 +1,46 @@ +// $Id$ + +#include "Worker.h" +#include <Qt/qapplication.h> +#include <Qt/qmotifstyle.h> +#include <Qt/qcdestyle.h> +#include <Qt/qwindowsstyle.h> +#include <Qt/qdesktopwidget.h> + +int +Worker::svc (void) +{ + ACE_DEBUG((LM_DEBUG, "ENTER: Worker::svc()\n")); + + QApplication a(argc_, argv_); +// a.setStyle(new QPlatinumStyle); + Q3Canvas canvas(600, 387); + //QCanvas canvas(566, 679); + //QCanvas canvas(550, 723); + canvas.setAdvancePeriod(30); + RootPanel root_panel(canvas); + root_panel.resize(root_panel.sizeHint()); + + root_panel.resize(600, 650); + root_panel.setCaption("NavDisplay"); + + a.setMainWidget(&root_panel); + + QObject::connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()) ); + + if(QApplication::desktop()->width() > 550 + && QApplication::desktop()->height() > 366) + root_panel.show(); + else + root_panel.showMaximized(); + + main_wnd_ = &root_panel; + init_complete_.signal(); + + int retval = a.exec(); + + main_wnd_ = 0; + + ACE_DEBUG((LM_DEBUG, "LEAVE: Worker::svc()\n")); + return retval; +} diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/Worker.h b/modules/CIAO/examples/Display/NavDisplayGUI_exec/Worker.h new file mode 100644 index 00000000000..73aa649bd36 --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/Worker.h @@ -0,0 +1,35 @@ +// $Id$ + +#ifndef __WORKER_H +#define __WORKER_H + +#include "ace/Task.h" +#include "ace/Synch.h" +#include "tao/corba.h" +#include "RootPanel.h" + +class Worker : public ACE_Task_Base +{ +public: + Worker (int argc, char *argv[]) + : argc_(argc), argv_(argv) {} + // ctor + + virtual int svc (void); + // The thread entry point. + + void waitUntillInitialized() {init_complete_.wait();} + // blocks the calling thread until the GUI is initialized + + RootPanel* getMainWindow() const {return main_wnd_;} + // Returns the pointer to main application window + +private: + RootPanel *main_wnd_; + int argc_; + char **argv_; + + ACE_Manual_Event init_complete_; +}; + +#endif // __WORKER_H diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/trolltech.gif b/modules/CIAO/examples/Display/NavDisplayGUI_exec/trolltech.gif Binary files differnew file mode 100644 index 00000000000..f674369efc4 --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/trolltech.gif diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/worldmap1.gif b/modules/CIAO/examples/Display/NavDisplayGUI_exec/worldmap1.gif Binary files differnew file mode 100644 index 00000000000..99fe78a7673 --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/worldmap1.gif diff --git a/modules/CIAO/examples/Display/NavDisplayGUI_exec/worldmap1.xpm b/modules/CIAO/examples/Display/NavDisplayGUI_exec/worldmap1.xpm new file mode 100644 index 00000000000..736de06f25a --- /dev/null +++ b/modules/CIAO/examples/Display/NavDisplayGUI_exec/worldmap1.xpm @@ -0,0 +1,651 @@ +/* XPM */ +static const char *worldmap1[] = { +/* width height ncolors chars_per_pixel */ +"600 387 257 2", +/* colors */ +" c #59746B", +" . c #3A6592", +" X c #E7BEA4", +" o c #6774BB", +" O c #3E4CA0", +" + c #94D6F4", +" @ c #D5CFF2", +" # c #475642", +" $ c #444853", +" % c #22558E", +" & c #909FE3", +" * c #0A2A66", +" = c #ABBAE3", +" - c #0A3987", +" ; c #4385CC", +" : c #69686A", +" > c #508290", +" , c #E0D5C1", +" < c #0B2428", +" 1 c #57666C", +" 2 c #283C8A", +" 3 c #303428", +" 4 c #CEBCE1", +" 5 c #A89A8A", +" 6 c #E4E6D2", +" 7 c #EFDDD3", +" 8 c #1D1D47", +" 9 c #6669B3", +" 0 c #425AAA", +" q c #97856C", +" w c #6587E0", +" e c #5C3511", +" r c #82BDEF", +" t c #0A182A", +" y c #7A87B9", +" u c #0A2641", +" i c #C59964", +" p c #1B466C", +" a c #0B1417", +" s c #575A86", +" d c #C49D7A", +" f c #D2BCAC", +" g c #8E88B2", +" h c #314446", +" j c #FCF5D5", +" k c #96A79F", +" l c #956D45", +" z c #99BDE4", +" x c #475662", +" c c #45453F", +" v c #44588A", +" b c #565DA9", +" n c #95A8BF", +" m c #A7A3B3", +" M c #95B1E0", +" N c #6A5435", +" B c #150E27", +" V c #808F72", +" C c #0C1C49", +" Z c #EECAA6", +" A c #B49277", +" S c #7FA8E8", +" D c #8F888E", +" F c #3C210B", +" G c #081D66", +" H c #7C93DB", +" J c #576ABA", +" K c #E3E8F4", +" L c #3C75BD", +" P c #DCC7B5", +" I c #AEA595", +" U c #1A3649", +" Y c #D6CFDA", +" T c #767489", +" R c #191B27", +" E c #1B4557", +" W c #80A8C4", +" Q c #CEB5A7", +" ! c #A8A3D1", +" ~ c #3E2913", +" ^ c #4869B8", +" / c #182D7F", +" ( c #957E86", +" ) c #847768", +" _ c #845526", +" ` c #6D766F", +" ' c #655D85", +" ] c #BDA5AD", +" [ c #97B0B9", +" { c #2357A7", +" } c #C7C4B0", +" | c #AAB59A", +". c #B58A59", +".. c #31578D", +".X c #765D46", +".o c #865D2E", +".O c #C3C9E4", +".+ c #ADC7F6", +".@ c #5879BD", +".# c #AC7D46", +".$ c #998F72", +".% c #BEBABE", +".& c #C0A78B", +".* c #080C29", +".= c #253181", +".- c #7E9196", +".; c #7E9EE2", +".: c #FCE8C9", +".> c #A9AFDE", +"., c #959D9C", +".< c #5285A6", +".1 c #AEC6DC", +".2 c #A599AF", +".3 c #C2C6C8", +".4 c #6792DF", +".5 c #675B51", +".6 c #B99466", +".7 c #F5D7B8", +".8 c #302511", +".9 c #69728B", +".0 c #74698C", +".q c #8D94E0", +".w c #45496B", +".e c #0A0B10", +".r c #493319", +".t c #CEAB8B", +".y c #99C8F2", +".u c #453C36", +".i c #31544D", +".p c #6994A5", +".a c #1B2327", +".s c #2C4887", +".d c #0B344C", +".f c #B2A383", +".g c #81A7A2", +".h c #C1E4F8", +".j c #7C92BB", +".k c #58452E", +".l c #43644E", +".z c #997A5A", +".x c #6791C4", +".c c #956935", +".v c #2E4AA0", +".b c #79552A", +".n c #544D80", +".m c #23546A", +".M c #19273C", +".N c #182B66", +".B c #19489F", +".V c #945E2A", +".C c #5285C3", +".Z c #3E3D53", +".A c #C2B399", +".S c #AFC5C5", +".D c #3D3552", +".F c #436F72", +".G c #D9DAEB", +".H c #3D2927", +".J c #3B749F", +".K c #5A5440", +".L c #D0F4F9", +".P c #2C63AE", +".I c #A9865C", +".U c #9D7543", +".Y c #687C93", +".T c #B0D5F4", +".R c #A78F7B", +".E c #687CBE", +".W c #2A3B6A", +".Q c #AC7D55", +".! c #7674B8", +".~ c #150D10", +".^ c #684A26", +"./ c #AB936B", +".( c #E1C4A0", +".) c #1A376E", +"._ c #31566A", +".` c #281B12", +".' c #676788", +".] c #867C8C", +".[ c #7F9C9C", +".{ c #528FC9", +".} c #1B3226", +".| c #BFAFB0", +"X c #D5B694", +"X. c #ABAEBA", +"XX c #6B745A", +"Xo c #665148", +"XO c #A498C7", +"X+ c #6687A1", +"X@ c #B89B7E", +"X# c #C6D4C7", +"X$ c #F8ECEB", +"X% c #82AEB9", +"X& c #E4BC92", +"X* c #4A4329", +"X= c #1A3988", +"X- c #171718", +"X; c #BEBBDD", +"X: c #81B0E3", +"X> c #6586C1", +"X, c #2F3640", +"X< c #98BCBE", +"X1 c #251D29", +"X2 c #6A9CC9", +"X3 c #7C8471", +"X4 c #4A7599", +"X5 c #554C58", +"X6 c #3A67B1", +"X7 c #6C948C", +"X8 c #6A9EE0", +"X9 c #70644E", +"X0 c #93A8E4", +"Xq c #41646F", +"Xw c #949EBA", +"Xe c #2E4763", +"Xr c #7E9DC2", +"Xt c #513B1F", +"Xy c #BDB1DF", +"Xu c #D0A774", +"Xi c #3159A8", +"Xp c #587796", +"Xa c #3F3D77", +"Xs c #263065", +"Xd c #5D3D2E", +"Xf c #4A76BD", +"Xg c #896538", +"Xh c #C5D7ED", +"Xj c #5D3D1A", +"Xk c #8A7350", +"Xl c #575860", +"Xz c #764D22", +"Xx c #806B5A", +"Xc c #7E8690", +"Xv c #0B2B7F", +"Xb c #1A4687", +"Xn c #486893", +"Xm c #767DBD", +"XM c #556557", +"XN c #FAFAF9", +"XB c #688584", +"XV c #3F3431", +"XC c #7987D7", +"XZ c #D0E6F4", +"XA c #2B6394", +"XS c #E5F6F8", +"XD c #282B38", +"XF c #0B356E", +"XG c #586892", +"XH c #ADB9C1", +"XJ c #929296", +"XK c #787C8D", +"XL c #434B84", +"XP c #867CB2", +"XI c #2A2726", +"XU c #9293B7", +"XY c None", +/* pixels */ +"X+ MXr.9 1 x `X9 cX9 ) 3.uXIX1XIXI.` c.8.`X5.H.ZX1.a h.M <.M vXG v.M u u.m % .X4Xm g.9.9.aXM : `Xx m.9XJ.9 xXp.9.Y.@ yXw.wXl.9.9.jXK : 3XV ( D.0Xw.C ; ;Xf.;XG 3 8.YXr r z.x.@X0XHXc x 3.aXI.8XI.}.}X,.@ yX>.9.YXl.K.K.] ) m T.9.iXc M & yXnX+X7.[ .iX%.Y.;X0.>.+XwXl.9XKXIXI 3XVXV.kX5.k.k.k.u.H.DXV.K.u 3XVXV.u 3 3 c #X,XcXw., I kXc.% :.} R R t R R R R.a R.a R R.a RX-X-.a RX, RX-.a RX- R a.a.aX- a.aX- RXIX- RX,.aXD XH } 5XJXHXJX,.Y.-.YXr.- nXD.u.D.kXV.HXV ~XV.rXVXVXV.8.u ) )Xk ~XVXVXo.HXV #X5X3XJ D : `., D kXJ., )X9.k.k.k NX9.kXx.k.k.X.kXgXg N NXx N NXx.^ ).RXt NXxXxXtXx.X.kX*Xo.r.k.X.r.X ~ 3.H.uXI.H.H.H.r.rXx (.].RXo.0.k m (XaXd.DX5 ~.uX,.M c 3 3 3.8.HXIX1XI.H 3XV.8.K 3.MXIXI.8XI ~.`.8XIXIXIXDXD.aXD 3XIXVX*Xo.^.H.8XVXIXD.Z c.uXVXVXD.HX1X5 :.KXIXI 3 3 3XI.H 3.8.HXVXIXV x.jXpXq.j [.[ nXh.YXB.[XqXe.g.9XwXpXr.{ > >._ h.w x x.j.[Xp.-XH [ n.%XKXHXKX1XI c mX3.3 m k I V.Z., kXK 3.u cX,XVX,XD.M R 3.aX,.ZXIXDXDXD 3X,X, B R.a RXDXIX,Xl.ZX5X, $XDXD BX5 RX-.aX-.aX-X,.ZXD 3XD aXDXDX-X,XIXD.a.a R.K #.u : cXIXD B :XP $ $.Z x.w.MXDXDXD hXDX,XD.} $X,Xl.w $X,XD.Z.M TXJ.w $XU c.wXDXD RXD.Z.Z.w $XeXlXK.MXD U xX, h $Xl $ x cX, hXIX,.aXD.a.ZXl.Z.M $Xl.Z c.MXIXIXDX5.H.Z c h $ hX,X,.wX,X, h U h U.a.}X,X,XD.a.}", +"X+X+ y [.- : : 3X1 qXJ.5X1XDXIX1X1XVXJ.8XVXl.uXDX1.a RX,.} t.W.Y v 8.M t p %X6X:.EXsXa $.Z hXD $.M.Z : h UXcXw.pXr H.EX0 U 3.a.MX, UXD 3.8.KXDX, EXrXf.@.@ yXKX,Xc MXp.CX4Xn ^.E.WXK .- hXI 3XI.}.}Xn.E v.@Xr.jXcXJXV.$X.X5 $XwXJ h nXr J.jXGXe #.l .Y.E o.x M = =XUXH., cXl.K.K.K.5X9.5.K.kX*X5.Z.KX*.r.uXVXV 3 3 3 3 # DXc.-.]XJ `.,X..9X,.a R R R R RX- R R R R R R R.a R RXD.a R R R R R R R R R.aXI.a R.aX- R tX,XDX,Xc n.% |., D.-X, .-Xc n.,XwXIXDXV.kXVXVXVXVXV.8XV.rXVXtX*Xx.RXVX*.rXI.5.u.5 : c.5Xl #.u c c c :Xl.K.k.k.k.k.kXo q.zXkXt 5./Xt q./X9Xt.R.R.z.X.k./XxXd ) NXx.kXx.XXtXk 5.rX* qXk.K.r 3.H $XVXVXdX5.RX@ ( ] ] g ).2.5.2Xy g ! ( I.K 3.u 3.H 3.u ~ 3XI 3.` 3XI.8.8XV cXVXDXI 3.`XI.8XVXIX1XIX1XIXDXIX1 R.H.8.u.^Xo.`.HXI.HXI.HXI.HXVXV.uXD 3X5 D k DXlX5 xX5X, cX,.u cXV cXV $.Y 1XpXqXp.T xXq.[Xp.F.F <.9Xq h._Xq.m._XA.i.w h $.).-Xp.[.YXc xXD h h 3XlX,XI a c.u c.u $X,.ZX,XD 3 :.}XD.ZXl $X5X5.u $.M RXIX,X,XDXDXDXlXD cX,XDX-XD.a 8.aXDXDXD.aXDX,.a 3 cXl.aX1XI RX1X- RX,.a B 3 RX-XDX- hXI RXDXIX-.K.5 3 `X1XD $.9XD hXK.Z U $ $XDX,X, xXl x $X1 hXI.aX, $ $.ZX1.aXDX1 $XUXl $.Z.w t $.ZX,X,XDX,XD.'Xw.ZX, $ $ $X, RX,.Z $ x : 1X5XD hXDXD.M.Z hXDXD $ x c xXD.ZXD $X,XD hXD <XDX, $ UXeXlXDXDXDX, h.M.MX,X,XDXD", +" . MX+.Y.w.9 : c c.|.$ `.5.5 x :XI c.5.H.uXVX1XIXIX1 3 3 x h.ZXs s U C uXeX4.xX>X>Xr v._Xe v sXc.Y nXeXc.iXKXw.j.jX>.@ y.W.}XI 3XIXD.H.H ).H xXK.Y.pXGX+.Y $X,X, vX>.@.....s.@.EX>X0 J.Y x.M 3XlXl.M y.;.....E.-XwXc D ! DX;.3 D mXJ sXwXr.@XnX>.jXBX,.i._ 0.C M &.- mXc :XD.8XV.uXVX*.K.k c.k.K.uX*X9.K.K.K.K.KX5.K c.uXJ nXUX;XK., IX..,Xc c.a.a.M.a.a RX1X1X1X- RX-X-X- R RX- 3X- R.aX- t RX- R RX-X- RX- RX- RXDXDX,.-.>XwXHX. T D :XlXD h.j., nXwXJX,.uX5X*XV.H.H.r.u.u.r 3.r.HXx.kXV ~.rXVXVXoXIXIXV.HXX.]X3 DXJ.,XJ IXc.5.K.kXt.k.kXoXkXxXx.k.R qXt.R )Xx.^ qXx.R.k N.R q.k.$.X qXt.$ NX9X9 5 NX9.^XxX*.8XV.`.HXdX1.D A ]XyXyXOXO.0XO.2.> gXyXOXOXO ! mXJ.8XtXV ~ ~ 3XVXI.8.}X1 RXI.8X1.H $ 3.HXI 3XVXIXIXV.u 3 3XVXV.u c.u c c cXJX9 c.uX5XVX5XVX5.uXVX* 3.u.uXI c.K ` k.-.9 Xp Xq xXD.8XI.a.}.9X+XpXBXqXn n.FX4.p .X+Xe XpXpX+ >.<X4.F.F._ xXe t u.M U t.M tXD RXD aXl 3X1XDXIX1XVX5X3 : 3X,XDXIXIX,.aXIX,X, R.Z.u $X,X,.aX, 3X,.a.a R.ZX-.MXDX- RX,XD RX1.aX1XIXD c tX5X- R.a R R.aXI.a.aX1.a.aX1 R.a RX- hXD RXD.` aXI :.u :X-X1.aXD gX..'.9.w x s hXD.MXD.ZXD 3XD.a RXD 3XDX, $X,XIXDXDXl.ZX, $.ZXcXKXD h s $ $XD x.-.ZXl $.M $.Z xXD.aXDX,XDXD $XlXlX,.aXD.a $.M.M.a x $ 1X5 hX, $ $ $XD U.w x 1 1Xq 1Xq 1 U UXD.} $ xX,X, RXD", +"Xr vXeXe.M.Z 3 3XlXxX3Xl c #XlX1XDX1 ` 3XIX1XIXI R.~ 3.aX5 c CXD.w.N.MX,._Xn 2 0XiXn.@.EX>X>Xp.YX>.j [ 1.Y.jXpXnX4 0XiX>X>XB # aX,XDXI cX,.MXKX+.Y y.[ $.aXD $ 1XfX> %..Xi .X8X4.4 ^.@X>.w UXlXw.1.>.T M M H.jXr xX,XcX5XJ.0 cXlXx `.9XcXwXrXf 0Xe t.a.a.WXnXfX:.jXw.,Xc D 3XV 3XV ~XVXV.rXVXVXV.u.K.K # 3 ~.u.H.H.`XI :.% D m.wXw : x.3XHXlX,.}XD 3XDX, 3XD 3XDX,X,X, 3X,X,X,X, $XDXDX,XD 3XDXDXIXDXDXDX1.aXDXD R.aX,.Z.9XwX.XwX.XcXl.9 $X5 xX, $ $X, hXI.H.K.H ~.HXV.H.8 ~XV ~ ~XX ) ~X*XV.HXVXV.kXVXVXV 3.u #.5 :X5.K.K.5 :.K.kXd.u.k.k.^.5.kXo.r.^XtXt NXd N.r.^XjXdXt.^ NX9.r.^ N.kXt.^.k.^.^.kXj.kX*XV.`.HXdXo (Xo ' Q.2 ]XOXOXO.>XO.>.> !X; 4.>Xy.>XyXK $.u.u.kXt.u.KX* #.u # c # cX5.u.u c )X5 cXVXV c.u 3 3XVXVXV.H.H.H.8.KX5 : )X,XIXI.8.8XI.8.8 3X1 R.` 3.`XI 3XDXD x XpXnXqXnXqXnX+.Y $ c.M.M.}Xe.F >Xq WXrX+XqX:.FXB E 1X4._.FXBX+XpXBXq.iXe 1.d t < t.MXD <X-.a R 3 $ cX1.`XI c $.u x : ` :.ZX5X,.u $X, cX5 3XDXD $ c $XDX,XD.Z c D 1 $ $ c 1 $XJXJXl.ZXDXD.aX1.aXlXI.aX-.aXIX-.aX-.aXI RXI.a.a.aXI RXD RXD 3X- 3XI 3 3 : #.ZX, $X,.MXD 1X.X,.wX,Xl RXDXDXI.Z hXDXDXD.aX, :XlXI.Z 1.Z hX,Xl $ hX, mXlXl.MXJ.M c x.'.9 R U.Z.Z $ h.Z x.Z.aXDXD.MX1X,.ZXl.a.a RXDXDXD RX, c.Z $ hXD x U U.WX,.i._Xq.FXqXqXqX+ 1.WXDX5.'XK D $X1 R", +"Xp o._XG.MXDXDX5.5 ` )XI.5 3 3 3.Z.u c c.5 c c.uX5.K.K : ) `X1XD.N 1XMXe.}Xs.w..Xe ....m......Xf...@.j n HXn.s...s 0 0 ^X6.@.YXpXe._.pXe EXqXr...p yX+ 1 yXp.xXf ^.s.. %.mXA.x SXf wX+XG U hX,.9.E o.@XGX0Xr.jXpXDX,X5 RXlXD.8 3.} ) :.'XqX0.EXi ^ y $.MXs.@.<.CXw.-.'XcXc.8 3X*.u.uXV ~XVXV ~XV ~.K ) ).k ~XV 3.8XD.HXD `.%X..,.,Xl 1.3XJ s t tX-X- RX- RX- R.`X-X- a R RX- RXDXD RXI R.aXI R.aXD.aXIX,XDXDXIXDX,X, $X, $.9XcXw.- ' c '.Z.ZXlX.X.XJ : :.K.K )X5Xo.KXo.K.k.K.K.K.5.$X9.K.K.k.k.k.kX5X* c.kX5.K.5.K :.K :.5.5X9Xo.5.5Xo.XXo.5.XXo.X.5.X.X.XX9.XX9.X.XXx.XX9Xg.X.zX9.X.XX9XxX9X9XxXx.XXxX9.K.K.kX5Xx.7XO A 4 4 4X;.> ! g ! !.>.O.O !Xy ! =.>.> =Xc.' `XH.].K.8.u 3X*X*XIX-XIXI $ :.2 D IX1 3X1.aXIXDXIXIXI.8 ~.8 F cX9 c ` 1X, 3 RXI.H.8.H 3.~ 3 3 3.`XIXI.8 c # hX,XqXBXq..._Xq._XqXB > XB xX, t xX+X7X+Xn._ . WXp x < U x.YXpXp.p._XnX+XnXe.i._.}.M.} t.a.a.a.aX-XIX-.uX5X, 3 :XlXDXc cXIXD `XIXI 3 R.u.ZXlXK cX,XIX, 3Xl.Z $ 1.9 $XKXKXK $XKXl :.9X5 UXDX,X,X,XD $ $ RXI RX1XD.aXD RXD hXDXDXI $.Z xXV.Z c x $X,XI R 3.~XlXD RXDXIX,XDX,Xl.aXK s.w.9.Z R UXD.Z.Z.M 3.M $XJXHX,.MX,XDX,.ZX,.Z.a.MXD h $XcX.XD.M.9 : $.ZXD.M RX,.Z h $ x $X, hXD.aXDX,.ZX,XDXDXD.ZXDXD.M h h.a.Z 1 xXD.N.MXeXn._X+.[X+.[ [.yX< yXH.9XKXl.' $.ZXI", +" b._XsXG 8X,X5 $XJ.5 ) :XcX5 $ $.5 ` ` : :Xx $.kX5XX ).5 c.u.5X,XDXG.Y UXD t.a.9.W E p.m . %Xf %Xn H.j M o..X6 2.sXL.v %.sXiX6X4X>.<.x.<X2Xf.<.E.pXp.WX+ v ^ { { %Xb E.dXA %X>XiX6.@.M.a.9 yXq.EXp.@.s . H E UXD 3 cX1.5 cXD.}.aX,X,XDXc y MX>X>.E.+ y.Z 8X+Xf W = D.wXVXD.u.uXI ~XVXVXVXV.r 3XV.K.u.kXtX*.uXV.H.HXV.` 3.u :Xl.ZXDX,.9XHXJ.a.a R R.a R R R.`X- R.aX- R.a RX-.aX,X-.a RX- R.aX-.aX-X-X- aX-.aXDX- tX- h t t.M t.M 8.M 8 8X-.DX..2 cXDXIXIXVXVXo.r.u.H ~.u.uXVXt.KXxXV.k.r.rXVX*XVX* c.H.HXV.u.kX5.K.5.K.K.K.kXoX5Xo.k.k.K.kXoXo.K.^.kXo.K.kXo.kXo.^.k.^XoXd.kXo.XXo.k.k.kXoXdX5.kXtXo.uX* 3.`.H : ] ].R 4 ]XUXUXPXP gXmXU sXw =Xc.- .-Xw nXw.1 1.pXc.Y k 1 c.u 3.5 RXl ).,XJ m :.5.0.uXI.`XDXIXIXI 3.uXV.HXVXt.k.5 3X5 ` :.,X,XDXD.8XIX1XIX,XI.MXI.8 3XIXI 3 # h.i.M._.pXq E._.m._.m._Xq.FXpXB 1 h <XnXp.F._XeXq.lX4.9XD xXKXq._.F.<Xq E.- >.mXq._X,.a < <XD aX-XI aX1.a.K.u c T.K $XJ.5XKXIXMX1.a RXIXDXV 3X1 3X,X,XDX,X,X, $ : $ 1XDXI.aXD R.M RXD.a RX1.a.aXIX1.aXIXI R R.aX1XIXI 1X5 : IXKXJXcXJXJ.-XcXJ R cX1 RXIXIXD.aX5 c B RXDX-X1.a RXJ $ TXJ.wXl.Z.M.ZX, hXDXD $XZ :.MXD RXDXDXDXD.M $X,.a hX,X,Xl.}XDXwX,.MXlXcX, $.w.MXDXlX, xXlX,X,XDXD $ cXDX,XDXDXD hX, RX, x.aX, xXq._ E U v...<X+._ h nXr MX%.- s.Z 8XD.Z RXD 1", +"XnXsXG U.w $X,X5 )XV c c c.K ` c # R 3.5.K cX9XV ~.kX9X*.K.5XJXV U vX+XG $X5.0 c.M U < U < EXFX6X2 M.+.jXn 0._ u E < u.N p.m.sXi.sXnXbXA % {Xf.JXr vXG HXf % % %.) U.M u.)X6X6XbX> ..M h n yX>XAX:X8X2.xX+.M 3XIXVXV.`XVXD.MXeXp o.j.'.Z $.Z W.xXp.p x t vXG S.+ =XcXV c.uXIX*XV.rXVXVXV.u 3.r.u.K.KX9Xo.u ~ ~XV.8XV.H.8 3XIXI 3 hXlXwXw.9.a.a R R R R.`X-X- RX- RX-X- RX- R.aXIX-.aX- R RX- R R.a.a.aX1 3 a $X, xXJ h.a.M t h xX,XDXDX, DXJ.KXI.H 3XV.uXVX*.k.HXV.r.u.r.rXVXo ).k.uXVXVXV 3XVXV.H.u.8.H 3XV.k cXt.k c.k.k c.K.k.k.k.u.k.kXo.k.kX5.k.kXt.k.KXt.^Xd.X.z.^.XXkXxXo.^.X.kX5Xt.K.r.^X5.rXd.HXV.u m m ]Xy 4 4 !XyXU.9 9.jXPXG y.>X.Xc XXX3 |Xh = WXGXp W.-Xq.Y.[XhXwXh kX..Y : hXVXIXI.u.HXD RXIXIXV.K.K :X9.5XlX*.KXIXV 3Xc `Xc xXI.a 3 3 3 3XJ x.}X,X,.} 3 ` `.YXc xXp XG x x h.M.m.m._.i._.lXe >.<XpXq.FXn x 1 1._.l.-XD.' :.g.FXq.JXrXq M [ >.gX<Xe hXD.a t.} RXI.a.`.` R.].K.%X. D :XJ mXl c RXIX, $ R RXD c 3XD 3XD.a.aX,XD.aX5 RXD tXI t RX1.a R R RX1 RXDXD 3XDXD $ c c hXDXDXc : :XKXc.,XcXlX5X, $X5 $X,XDXl h R R.aXI.a : k 3X1.a R R.aX-XDXw ' xXcXl.Z.ZX, h $X, 1XwXHX,XDXD.M R R.M.a.aX,.w.a $ x 1XD.MX,.ZX, xXDXD xXwXD.Z.>X,Xe.Z.YX,.M.a 3 1XD $XD.a R.ZX,.aXD $X, h.w xXpXp._.F.FX4Xp.j U .j >._Xn x.M.M.Z.M.M.ZXU", +"XeXqXe.W.wX,X,.]XJ `X5 cX1 a.a.a.a.`XI.uX5 c.u.8.K.5 3XV.KX*.8 R.M.MXn y U.9.] 3XD h U h 1Xq.C.C.C.T.T MX0X+X+ h E 3.}.i u...W 0 O v.. % % {Xf.; H n HX> ^ {Xb.d u R.a C.W.).s..Xf 0 E x.EX6.P {XAXf.<X>X+XD 3 3.u.`.HXIXD x.E.@ JX>.wXJXJ.}X+.p ...Xe.MXqXLXC z !X.., 3 cXVXVXVXVXVXV.rXVXVXV.KXV.uXV.K.HXVXV.8.H.8 3X1 3.5X3 c ` m.-Xc R R R RX- RX- R R R.` R R RX-X- R.a.aXD R RX-.a RX-.a R RX-XD 1 ` a.9 ` $ s U h.a.}XG h.MXD.,XJXVXI.H.uXVXVXV.u.H.u.k.r.r.H.r.uXo.5.5Xo.5.u ~.uXV.H.rXVXV ~XV ~XVXt.u.kX5.k.k.k.kXdXt.k.k.k.kXo.k.kXt.u.k.k.k.kX5XtXo.k.^Xx qXd N.$.^ NXx I.kXd.k.kX5.u.HXVXVXx c ' ] Q !XyXU.> ! !.1.>XU g.jXw.j.> [ | k kXMXBXS nXpXp >.gX4._._ nXrX<.jX+X+ .YXM.MXIXI 3XVXIXIXIXI 3XM.uXVXI.} cXDX,XV.`XI 3Xl # $.MXD.MXD $.- .9.} xXB.Y.Y.9 1 x 1 .- xXeXe.a.M < U < h xXe._XqXn.J.pX4._ 1X,.i ._.9 1 :Xc [.T WX: n W W.[.TX%.,.Y h <.a.a R.aX-X1 RX- 3XI ) $ :XIX1X, :XIXD.aX1 3 :.aXV 3 RX1.}XDXD.aX1.aXDXDXIX, RXI BXDX,XDX,X,XD $ hX,X,XDX,XI R.aXDX,X-X1.aXIXD hXDXD.Z RX-.aX1.aXIXDX-XDX-XlXI.aX1.a R.3.ZXl cX1.aXIX-X1XD aXD T.ZXc.2 hX, $ $ $XK x $ xX,.ZXD.MXD R.M R RX,Xl.M x x.Z R.aX, $.Z.ZX,X,X,.a.wXcX,.Z.-.9 $ $., $XI.9 :XDXDX, RX,XD.M.ZXD 1.9 1._.FXp >X4.FXn.FXw._.[ W X4 Xe.w U.YXK.j.-", +" sXe.w xX,.ZX,XK `.3 D `.]Xl.ZXIX1X*X5.kX5.k.u.5.KXV.K.$.5.aXI R.a.M v.YXLXDX1X1Xs $ cXl 3 UXL.v L SX:.;X0.; g k.-.Y.-.[X,XK 9.!.0.! C U.s %Xf S S.xX6X6.s...W uXD tX1.D.M.W.sXi.4.C.4.C.JX6.P { {.P %._XK h R.k.8.HXIX1.Z.EXG J.E.E.a x.5X,.jX>Xi 0.d.W U._..X>XhXh m V : 3XV.uXV ~XV.u.8.rX*.kX* qXxXV.r.HXV.H.HXV.HXV.K |.,X. m n : $ t.a t R R R RX-X- RX- R RX- R R RX-X, RX- RXI a.a R.~X,XD.9 h.'XG.Z $ t.M $ 1.M 8XeXc xX, : :XIXVXV ~.u ~.u.rXV.H.K.kXVX5 NXx )X9.uXtXX.5X*.8.8XVXV 3XIXVXVXV 3.rXVX*.k.k.k.k.k.kXt.kXt.k.k.k.u.k.kX*.k.k.k.k.k.k.k c.k.^ q.R.kXk.zXx N ( )X9.kX*XV.r.H.8.H D 5 (Xx.2XyXO !.q &X0.> &.1 = =.OXhXw =., [ | V V.g kXpXnXpXnXp.F x EXe._XeXeXe..XqX4.YXq.}.MXD cXIX1XI.8.u.KX*.$ `X3XH kXc hXIXI 3X1.} $.} h.Y Xc.Y `.,._X+Xn._XqXq._XeXqXnX+XpXe h.M u.M.a tXI RXDX,Xe.F WX4 ...XeXe.i.M U._ 1Xw h $ $.[XqXpX4.<.p n [ [ [.[ x < R R R.aXD c R.` R.`X- :.`XD cXI.a $ RX1.aXDXIXI.a T.a.aX-XD.M 3 RX,X,X,X,X,XlX,X,XDXDXDXDXDX,XDXD RXDXD RXD.aX- R.Z cX, 3X,X1XDX- RX,.u h 3.a RXI.aXDX1.aXD $X, R.aX1X.XKXIX,XlX5XIXI RXI RXI.a.Z D 1.'XD.ZXH.9.Z.'X, x $ $ $X,.ZX,.MXD.MX,.Z.Z x.ZX, $.ZX, $.9.9X1.ZX,XD.a tXDX,.w hXD.'X..aXDXc.,.ZX,XDX1XD.M.a hX,.Y.9X+XqXp k z.T.[ M M zXZ.T.-X+ X+._Xq E._.[.YXG", +" xXG h hX5 UXI $X5 $Xw mXl.2 'Xc.KX5XV.u.u.K )X9.8.8.K : cXI RXI.aXlXD._ s U 8 xXKXDXIX1X1 R.=..XiX6XA.. vXaX1 R.}X,.} $.u :.n ( g.]XD.W .Xi ; S.J ;XAXb...) U.N tXDXDXD 8 C.. {X6Xf.P.P ..4 L LXi...@.E.W RX5.H.H.`XIX1 xXKX+ y v.MXI 3 3.} y S.C ^..Xe t E ..x.- Y.G., }XV 3.8 3.u.u.8X* 3 #.r.8.K.K ~XVXV.H.r.HXV.u ).,.%.,XMX..-.9.M R R R R RX- R.`X-X- RX-X- R.aX-.~.aXDX- R.a.eX- tXD 1 :XJ.w.MXD :Xw.9.a hXU.-.9.-.- n.9Xl h 3.uX*X9.5.5XxX9 :X9.5 (Xx.XXo.KX* ~.r.8.8.uXtXV 3.uXV.H.H.`.u 3XV ~XV ~.kX*.kXt.k.k.k.k.k.k.kXt.kX*.k.k.k.kX*.k.k.k.k.k.k.k.k.^ NXtXoXo.k.KXx.u.kXV.H ~XI.H.H.u ].| ].2 ! !.> &.>.+.+.EX0 =.> = nXhX; [XcX3X3 V X3 [XGXnX+._.i U u._ x.9 E._ p.i MX+ XnXp x.} hXD.}XI.8.u N.`.`XM.Y.Y.gXr 1.`X1XI.8XD 3 x XpXqXqXp W.-.YXq..._._XeXe EXeXpXq y._Xe 1.M R :.DXD RXDX, h.MXe ..m._.m._ x.FXe._ 1 x.} RXKXn x._Xe._XqXnXBXp XcXcX, hXD 3 R.a.5 RXIX1 $X1 3XlX-.ZXI RXI cX1X1XIX,XIXD c :XDX,X, 3X,.aXDXI.MXD RXDX,.aX,.a.a R.MXDXDXD cXD.aX,XDXIXD.a RXD $XDXI.,XJ x.aX-.a RXDX,XD aXD.a R 3.MXD $.Z aXIXH c 3XI.aXV #X5 $ 3 R R R.}XDXIX, $ hXU.Z.w nXD.Z ' $X, s $X,.wX,.DXD.M R 1 $ U.aXD $.'XKX.XK.YXl $.MXDX, 8 U $XD hXl $ xX5Xl.9X1X,XI.MXD.MX, h.YXp.p.-XcXq.[.1.3.[.pX+X4.M.} hXcX4XqXq._.mXnXqXp", +".Y $.W hX, $.MXDX, R $XlXD RXI RXVX* :Xx :XoXV.`.5X9.u RX1 cXD R.` D XBXcXpXGXGXc.wXD.8X1X1 8XL._ %.....M RX1X1.MX-XDXI.`.k.5.ZXV.} R U vXpX> L.J.J.P %XA ^X6 v 0.sXn.}._.j % {X6 ^XiXfX4X8 rXf ^ w.9.w UX,XDX1XIXI 3X1 hXDX,.a.aX,XIXIXDXG.EX>.@.@.; v E.m % %X+.Y.S.G m., 3XVXV 3.H.uXVXV.K.k ).KX*XV ~.H.8XIXI 3 3X.X..O.3.3.1XH 1 R R.a R.aX- R R R R RX-X-.aX- a R.aXDXI.a RX-.Z $X5 :XKX,.a.eXI R $ [XH 1XwXJ.,.9 $ c.MXIXI cX9.5X9.5.X.5.k.u.k.u.uXX.uXt.H.rXV 3.r.uXV.r 3 ~XV.r 3 3.8 3.u.r.HXVXVXVXt.k.k.k.k.k.k.k.k.k.kXt.k.k.k.K.k.k.k.kX*X*X*X*.k.k.KXt.k.K.k.^.kXo.5 ~.r.HXI.8.H.HX5 q.2X@ ( ] ! !Xm H.; z z bXr.>.EX0Xw [XK.Y `X3 c #XXX3Xw [.pXp._.s E <XD.M xXD hXc.MXeX+X%Xn x.9.9.9 1X,XI.a.k c.8 3 3 `X%.<X+.[.' #.8.aXDXM.- 1._._ EXcXpXM x._ x p U U.M U.W = [ n.Y n.'XcXr.9XJ.2XV.H.~XVXD.M 1 U...p.F.<.[Xp.g.[ x.jXB.Y._ E._XeXe.iXq xXeXD $X-X,XD cXI R RX1XD.5.uX, : :.u.u cXl c $ 3X1 3 RXD.a RX- R.a R.a R.a.a.a.a RXIX,XD R a.a R.a.aX,.ZXDX, $X,X,.Z $.uXI.aXD c tX.XJX5.aX-XI.aXIXD cXlXK cX, : :Xl :XJXKX- :XlXD.`.a R RXI 3X5XM.KXDXD RXD.a R.Z RXD.Z.9 RXK.w.Z m.Z.] TX, $.Z xXD 8 R.w.Z.M RXD.M.Z.Z.'XcXK gXK T 1 h $ $X,X,.M 3X5XlX, RXIX,X, RXDXD.M $.Y.<Xr.iXD R.aXDX,.,Xp >X+.}X, R c.pX+XAXq._._.<X+", +" x $ $ x $XD.a.ZXDXI.' RX,XD.a RX1.`XVXIXD.H.`.uXXXVX- 3 cX- aXI.8XV.KXc.iXsXe.j n hXIX-X-XI.u UXs E U.d 8 R R.HXI.ZX,.uXxX3., `.l 1 $ $Xe v.mXA %Xb.dXF..Xb.PXi %Xp.J.J.dXA.JX8 HX>X2.x.p.jX>XC HXL.N.a.a $XDXD.aXI.`.}XI.a 3.}X,.aXD $ gX+Xp.x.E.@.EXn._._XA.J.@ x $XwXhX. D 3XI.H 3X*XV.K ~.K.$X9XV.rXI.8.8 ~XVXl.2X.XU nXw n.3XU 1 R a RX-X-X-X- RX-.aX- RX- R R R aX-X,X- R.~XD $ `XlX, a RX1.} R a.u T 3XK : hXIX1 3XD c.KXXX9 c.kX*Xx.k ~Xt.8.rXV.rXo.8.H 3XVXV.r.u 3 ~.u.rXV ~ 3 ~XV.u ~X5 3XVXV.r.HX*.k.k.k.k.k.k.k.k.k.kX*X*.k.k.k.k.k.kX*.r.r.u.r.rXt.rXV.rXtX*.k.u.r.kXVXI.8XV.`X5.R.5Xo.k.2.R.2 !XU M o.v ^ H O s HXLXGXU.[ X3 : c h c 1 X7 W W.<._ v UXq #Xc.l $ kXq <.M.WXe._XeXq x.- XMX1X*.5.` 3XIXpX< +Xr.- ` 1XDXl `.-.Y.FXeXe EXp x $ $.Z U.} R < R.a.M tXq.WXG UX,Xe.Z.M.WXs.MX,.`X5.uXIX-Xl xX< zX<.y.1.SXh.Y.9.-.p.F.m._.M.M h hXe x $ hXD.Z x.a cX,.5.a.u 3 3 3 RX1 c.KXl B.`X1X1 3XDXI.aX-X-XD RXD R RX- R.a R R RXI RXD.aX,X, c.'.a tXD.aX,XDX,XD RXIX,X, h $ c cXDXI., :XKX-XD R.a R R.aXIXK VXKXl T :Xl :.5 3X1.aX-X-.aX1XIX, 3.a.5X, c :X5 R R RX1.ZX, RX- RX, $ $ 1X,XcXc 8.ZXl T $X,X, 8X,.w.aXD RXDXD.M tXD 1 hXK.9Xc.9XJ $ $XlXI.a :X,XIXDXDX, R.M.M.MX,XpX4.p x.MXVXIXVX1X,.-.gX+.} 3XIXIXB >X4._._Xq.pX<", +" x hXcXUXK x RXlXlXl xXIXD t R.aXI RX1.ZXIXIX1XV 5 #.uX1 R RXD R.`.` 3Xl < U.d.YXwXlX,.a.a $ < c h.M.}.}.M h.Z 3 3X1X1X1.aX* h.SXBX,.a R T.n y.) E u E.F.m.<.{Xf.xXfXA %XA.m.PX6Xp U.ZXw yXJ n 1 $.Z 3 #Xl cXD.u $ c.a 3 3XV 3XI.M.D x.j.jX>X+.d W.x v 0 v ..J wXp.E.jX.XhXHX.Xc `.HXV.H.u.k.kX*X*.k.rXV.H.8.u :.5 :XJXcXcXK.9XcXc.- R.MX- RX- R R RX-.aX- RX-.a R.~ aX1XD.Z.e.aXlX,XlXDX-X- RX1X-X-.8Xl # 3 c.aX* c c 3.u c.5 :XVX*.r.rXxXx.k.rXV 3XVXV.uX5 ~XV.rXV.8 3 ~ ~ 3.rXV 3 ~XVXVXV.rXI.K.H 3.rXV.rX*.k.k.k.k.k.k.k.kX*.k.k.k.k.kX5.k.k.u.rXVXV ~XV 3 ~XV.rXVXVXtXdXV ~X5.8.H.8.`.k :.`.H ~.|XyXy !.'XCXmXp b o.jXGXG b.s.s.YXw ` .lXIXI c 3 X7.g.x..Xe._ 1.p.- Xq.iX..[ 1 xXD.wXq._XeXn 1XK # c c 3.8 3 XG > E.MXD.} RXG.lXp $X4 E.M u U h.aX,XD.a RX1XI.a.`X-.a.a aXDXD RX1 R.a t.ZX,.MX1Xw T.~ : 1 $ nX.Xh.jX<X+Xc.wXe.-.pXq.FXq UXDXDX,.a.i $ $ R RXDXD R RX1 h.~.aX-X- aXI 3 :.HXX cXlX5 c cX1.eXD R.e.a R.a.a.a.a R R.a R.a.a R.aXD.Z : 1 R R R R.a.MX,XDX,XD.a.aXDXDXDXD $X,.3XJXDXI a R RXIX-XDX1XDXD $XD aXV RXI R # 3.Z 3XIXI $ c 3 c cX, 3Xl.a 3Xl :X5 cX,XlXD.ZX5 h 3 $X1 c.DXI aX1.w.ZXD.ZX,XDX,XD.Z tXD.a RXD R.M R R.MX-XDXDX,.Z $.a $X,.u.Z.uXDXD.Z.aXD RXD U.9.JX4.[XD RXI.`.8XDX, h [XlXIXIXI.p ..FX4.FXn.[.Y", +"Xl s hXw.'X,XD.,Xc TXD x ` cX, 3.aXDXDXD RX1X-.KX3X-XI RX-.a R RXDX1.u.u hXD x y XeXKXqXe.}.}.a U $X,XDXDXDX-X-X- R.a.a 3.a 1 $.3.M.a.a.] 8Xw tXD.a.e.h.x M.{X:X2X>X:.< %XAXnXrXwXl 1.'XcX5 cXI.aXI 3X-XI.HX1XDXI 3XI 3 3 3.Z.Z.Y.jX> yXC M._.F.p.1.+.+.xX0.;X>XnXGXp.TXc.O m DXJX5XVXVX5 3.5 qX*.u.HXV.8.u.K.K 3.,XH.j.9X+.Y.i sX, RX- R aXI R.aX- RX- RX-.a R.a.a R.a R c $ T ` x.eXI.aX-.a.a.` cXXXIXIXV 3XV c.8XV 3.K ).KXtXt.H.k.zXo.r 3.r ~XVXV.H cXV.rXV 3 ~XV.r.u.u.r 3.r ~XVXV.H.H.H.HX5.H.r 3.r.u c.k.kX*.k.k.k cXd.k.kXt.k.u.k.k c.k.rXV ~ ~ 3 ~ ~XV.8.r.r.`X* 3XV.8.K.8.8.8XV.uXV.uXdXV.RXy ! &XC.! yXmXGXeXH.WXaXeXG vXnXrX7 1 :.}.aX,.M # .gX+.pXqXp._Xp.[X+ 1Xq x.iXnXcXc.9X5Xp EXe._._Xq.9 h 3.8X1 3.9.9XnX+Xq R U < XGXe.i xXe <.a.MXDX,.a R RX- R.`X- R R R RX-.a.uXIX-.HXDX- h.ZX,XeX, `X, :XJX.XJ.,.,XB.1 [.-XcXr [X+.mXe.}.aX1X1 a $.YXc.9Xc T :Xc :XDX-.uXIXI RXIXI R #XV cX- c #X-XDX5.,XJX-.a.a R RX- R R R R.a R.aX-.MX-.M R.aXc $XI.M $XDXD RX-.a R R RXI.MXIXDXDXD cX,.a R.a.a.a R.aX- R aXIXD aX5XIXI RX1 RX-XVX-X5 $ 3XI.aX- RX-.aX1XIX1.}X1 R 3XD c :.5XI 3.`.aX1X,XIX,.ZXlX,.eXD.e RXD.Z.ZX,XD $.MXD R.MX,XDX,.a.aXD h.Z hXD.} cX1 $ xX,X1 cX,.DXDXD.a U.MXq.FXq.p xXI.H.`.8XI RXD 3 # R.H 3 .j WX<.jX% n.g", +".w h.ZX..ZX,XD n : 1X,XK m ` $.aXJ k x 8XD 1XDXJX*XIX1 RXI.Z $Xl $ <XIXV V ` 1.Z.'.'XGXp.JXA.s p.d.M.M.a R.MX1.a.aXIX- $.M.MXDX1XD R.a.aXqXc ! R.a U.M y S.;...xXn.M.L.+Xn.jX+ g KXh TX5X. x.2 ' )X1XI.H.]X9X1XIXIXI.}.8.}X1.w.YXf...P...@.EXnXq MX2.;Xr.jXrXw & y HX0.+ =XhXhX..| '.HX9.5Xd.K.k )XV.uXV.8X5.KXI.aX3Xw k = n.SXG hXD a R.a aX-X- R R RX-X- RX- R a R RX-X,Xc 1.uXDXI.MX- R RX1X-.K.|.`XVXVXIXVXVX*.u.8.k.XXd ~.rXVXx )Xd.u ~Xd.HXVXVXV 3X5.rXV.HXVXVXV 3.8 3XVXVXVXVXV.r.8.HXVXVXoXIXVXVXV.r.k.kX*XdX*.kX*.k.k c.k.u.k.k.k.kXd c.u.HXVXV ~XVXVXVXVXVXV.8.u.8XV.HX5.8XI.8.uXVXI.HXd ( ] ! g.> 9.v 0XG s `.wX,X,.M.WX6.EXw k .Z.aXI $ `XMX7.[X4XpXq._Xq.Y nXpX+XpXp._Xq p . >.< M._ p._XnXe 1 1 RXIXVXI.a h.YXq :Xq 1 v >.F p.m U h.a R 3 RX5XDX,X,XDXDXDX, 3 3XDX, cXlX,Xl.KX5 c c 3.a h.Z.M.a RXlX- $.-.> n = [.[.1 =X4 MX7._Xq <.a R R R 3.wXl 'XJ 1 $ ' ) BXD R cXD R.a RX-.` R #X5.`XlXIXIXI KXVXDX- RXD aXD.a R.aX-XI R R.aXI R R.a t D :XD.aXc.Z 1Xc $.MXDXD.a.a R.a.a.a R $XD.u.aXIX- R R.aX-.a.a R.~XIX1 c.e.aXIXD 3 $XM.u RXI RX- R.aX1.a.aX1X1 RX1XDX1XI RXI #.5.aXIX-XIXIX1.aX-XD c $XDXD RXD R.Z.w h.M s $X,.Z hX,X,.Z.aXDX,X,XD c cXD.aX-XIX-.aXD $ cX,.MX,X,.W $Xn.mXn.[.a R 3.`.`.H F.H R c c.MXe n.gXpXc n.} $", +" x.w $Xl x $.aXKXJ $X1XJ k :X- tX.XH RX, 8 mXI $XXXHX5 RXD ' : a R 3XI.8.K :XI.ZXPXs.NX=.s . .X4 JXqXLX,.M.aXDX, 3 3Xl.a a.a.HX,.H R 1X, u 8.M R.a.a C.mX=.P L .X> [XrXZXm.W s y.O nXl.Z ` 3 mXd TXIX1.u.2 :XDXDXIXIXI.8 3.M.Z.EX6 %Xi...4 yX>.xX>.@.;XwXwX5XD 'X0 WX0.j.jX. nXl.D 3.uX5.u.KXxX9.k.uXoX1X5 `X*.u # |.3X;.- y.g.i x.aX, 3.aXI RXI.aX1.a.a.a.a R R RX-X-.aXDXD R R tXDXI.* RX-.a T D.u.u.HXVXV.r.HX*.8Xd ).k ~.r.kXk.X.r.rXxXo.H 3.H 3.u.8XlXVXVXVXV 3XVXVXVXVXVXV.r.8.rXVXVXVXVXV.KXI.u ~XV.u.k.k.k.k.k.k.kX*.k.kX*Xd.k c.kX5.k.k.k.r.HXV.H.HXV.H ~XV.HXVXV.H.u.8.K.u.8XVXV.H.rXV.R.2XO !XC.+.EXm y.' TX5.KXI.M.W.W.W.sXnXrXc 1Xl.a.aX-XM XB.-.[ >.F._XqX7X+.9.[.pXpX+X4.F._ p._Xe._._XeXn.F.Y.Y 3.}Xl $ hX,.-XpXG.Y >XpX4._ x.W xX,XDXDXV 3 RXD.}.a.a.} cX,.aX-.aX, R RX5XI.`X- R.aXIX, h.aXI cXKX- c $ h._ x x.9Xe._Xq.FXnXq EXD.a R.aX1 RX,XDX, RX1X,.` x.aXIXDXDX,X-XI aXI.a.`X* :XI c c.aX1Xl.G cXD RX-X, RXD R.a RXDX1X-X, cXI.aXI RXD.M 3 sXl xXl xXl R.a R R RX1XDXI.aXD.a.ZX, hX1X1.a.aX-XIX-X-XI.a RX-XI.ZXI.u c cXI 3.u t R.a R RXD.aXI aXD RX- R R RX-XI RX-.u ) 3X1.aX1 3XIXIX- $ :.wX, RX1XIX,X, $.ZX, 1 $X, h.Z.wX, $XI.ZXD $.ZX,.ZX1XDX1 RX1XDXl.wX,.M.wXe x pXeXq.FXp.} 3 RX1XI.H.H.r $.u.K 1.}X+XGX<X+ XB.a", +".w $XK.9XlXDX1XI : RX, 3XI xXIX,X3 : T :.5.,.e 3X,XK B R.' hXw cX1.3 ] x.KX3XM D ` D.D 8 t u u UXeXG.Y.j.EXn.} U 3X3 #XX :XK $XlX5XDXGXe.... U t.} t E.mXb.PXA %.P ;XpXr U xX>X6X8.x :X,.HXD D.2 ).8.H $X. hX, h.iX,.a 3XD hXeXCX6 % %Xf ^X6 .XfX> ..O.+ TXV 3 $.>.j y.Y nX; TXIXVXV c.kXV.kX9 ).8.k.kXoXo.HXI.`XJ., 1X, U x $X,.}X1.a.aXI.aX1XIXDX-XDX,X,.aXDX, 3.Z.a.Z hX,XG.-XwX..-Xl : c.2.$ c.k c.kX*XVX*X*.u.5Xk.K.r.K.XXx.5XtXV :Xx.uXV.HXIXI 3.8.5 3XIXVXV.8.u.~.HXVXIXI.8 3XV.8.8.H.HXDX5.H.HXVXV.8.u.kX*.kX*XdX*.kXtX*Xd.uXdXd.k.k.u.kXVXV ~.HXI.H 3XV 3 ~ 3.HXV.HXI.8.uXV.8.HXIXdX5 D !XOXO H &XC.E.9 =X5X5.]XlX,XD.W.) 0Xn vXr.-.9XX h.8X, 1 k :Xc n.[XrXq.p.jXr.p >.j x 1 `.-.-.-X4XpXpXpXGXq.,.9 U.a xXcXc 1XeXpXq xXeXe E $Xe h t.a tX, RX- RX-XD R.M R R $ a.a.ZX, cXD RX1XIXD RX1XIX-XDX, 'XlXDX,X5XIX-X-X1X1.M U $ x.wXe xXe x $.a.a R.a R R $ c.9 :Xc.9XK TXJ TXcX5X, BX-XI R RX-.aXV.K.uXl.8X5XcXJX5 $XlX,Xl., : 1X5.9 ` TXKXJX. 3 R.aXI 3.u 1 : $ $.Z cX,X, RX- c $X,XD $X,Xl.ZX5Xc cX, R.`XIX-.`XIX-X-X1 R RX-XI 3XIX,.a.a R x.u RX,XD <.9.Z $XlXcX,.'X- R RX1 RXIX1X- R ` c :Xl $ T $ ` mXJ D.Z.a RX, BXD $.Z.MXe x xXDXeXD.ZX, $X,.Z $X, $.Z cX,XD.a RX1.' xXG.YX+.j..._.mXeX4Xc.WX, h c cX5 c.8.H.` R 3 $.Y.F._XB.J >X2", +" v xXc TXK ` ` ) T c.5.aXl cXM h.~XIXV ` :.K 3 R $Xl 8 R.Z.2 1XD R.|X5XV a.,.a 3 ` Y.DXD.D.- h U.W U.) 2.Y.W <.a hX9.`XVXIXIX1.~X5XD.W..Xb..._.m E U % % % L {XA %X>.x.sXe.@.P.P LX6X+ TXIXVXD.HXV.r cXI $ UX4.pXpX+XK.- n.j.x ; ....@ v vXe ^X4 ^X6 yXH cXV.u.uXK.jXK.jXKXKX, 3 3XV.KXV.rXtXt.XXx.XXo.u.r.H ~ 3 VXJXq xX, U < h RX- RX-.aX-X- RX- R RX- R R RX-X-.~ RX,.M t.,X+ $ n xXc.%XJ.5XVXV.u.r.uX*.u.k.uX9XxX*.kX9X9.$.5 N.5XxXxXV.0 )Xl $.u.K 3 :X5 :XVX5X5.ZXc 'X,X5 $.u.u.k.K.k cX5Xo.5 c.k.kX5.k.5.5.X.5 N.5.X.5.5Xo.X.X.5.k.5.X.5.XXoXo c.k c.k c.kX*.k.KX5.k cX*.KX9.KXV.5Xo.5 ( f @X; !X0 H yX> g s (.0 : 3 :XqXeXG.+Xh.EXw.- `X3 VXM $Xl.uXcXX k k nXqXpXqXq..Xn.p.Y $XDX,.iXM 1.9 .9Xp < h x.9Xq._.FXpXr._Xe E x.W U U t.M t.aX,X-.a R RXD.a a.aXDX,X1.aXI.Z R R R R R.ZXD a RXDX,XDXDX1 R.KXV c 3 : 3X-XI R.M U U.MXD UXD.M.MXDXI R R.aXD : 1XD T xX, T : $ 1 R.u.aXD.~.a.aX1 aXI $.KX5X5X1.HX1X1X, aXKXcXK m mXcX.XcXc 1 1XD.a aX- c 3.a RXDX,X,XDXD 3.Z cXl.9Xc T k.2Xw m 1 k $X5Xl :.8X-.uXV.~XIXVX,.u.Z 3.~ R RX5X- R.u $Xc TXKXK.ZXl.Y 1.'XD h.a R.a.aXIX-.e RXDX1X5X. TXKXHX. TXKXKX,X, R $X, R.a 8XD xXD.}.W x $.M.Z.aXD 8XlXDX,.ZX, sXl x x.'XGXcXH.j.O [X+.pX4._Xq.FXn.pX<X,.MXD.u :.u TX5XIX1XIX1 sX7Xq rX%XA.p", +" x $.wXl x 3XJ ) :.5 cX1.KXK :.KXl cX*.5 3.KXK # R R.a.M a.MX,XI.`X5XJXD 3 YX1 c 5 D.D B $X; 1.M u uXsXnXe C < $ : cXV.5.5.kX-X- # 1.YXn.C.P %.s.s...v 0.4Xi.v vX>XG.MXsXpXfXA.B {.BX6Xf.9X,.uXV.H.K cXDXqX0 M.; S.+.E M M.4X:.P %XqXq x.D.W.W uXi.sX> M c 3.rXIXK.O.9XcX,XD.u 3XV.k.kXV.r.k.KXxX*.r c.H.`XI.8X-.,X..9 1Xe hX,X, <X-X- RX-X- <X- R.aX- R RX-X,XDXIX- R c.a RXc xXKXK :Xc c 3XV 3XV ~XV.u.rXVX* ).KXV.r.u.8XXXtX9.K.5X*XI '.] D T cXDXD $ 3 $.wX5X,.D.Z.'XG.' gX, 3.8.8.r 3.r 3Xt.u.HXVXV.r.H.k.kX5.kX*Xt.kXo.kXt.k.k.kXdXt.k.k.k.u.uXV.r.H 3.HXV ~.HXV ~ 3.HXV.H.uXdXV.8.H.k ) 4 K @.q & o OXLXeXJ $XVX1XD UXG.sXe HXGXG.9.[.- VXMXMX*XX.}X* | VXc [.Y.-.p._ 1.iXcXq 1.Y h hXDX-XIX-XIXDX- h xX+X4._._Xe.mXn >X+._ $ < t t.a t.a R.aXDX, R R.aX,Xl xXIX5XlX-XD 3 $XIXI RXI R.aXD.u aXDX,XD RXDX1X1 # :.kX1.KXI R R.M.aX,.a R.M R aXD.aX, RX-XI R.aX- RXDX- R.ZX-X,XDX-XD 3X1 RX-X-XIX- 3.`.KX5 c 3X1XI RXD.u R R.a R RXDXl BXDXD c $XlX5 $XMXD RXI R $XDXD RX-.aXI $XlXlXl.9 3XD h $.Z 3X1XI.u D.KX9.5XXX5 cXIX-X-XIX5 3 BXI.u RX1 : $ h xX,.MXD R.a t.a R.MXI.a.aXDXD.,.%XIXD R.u 1.ZX,XD RXD.Z.a RXDX1X,XD R 3X,.Z.w.w h g.Y.9 : T.2X,XD xX,X,X,.w.1XcXHXBX< n.jXpXn.p =X+.[X4XpX+.-.YXc [ ` m.,XJ.%XX.K.H.`X1XD.aXJXp._X4 >.J", +" x $X, 3.a.5Xl.` R 3X1X1XM.u cXl cX5 c :X- ).uX1.u RX1 RXIX1X- RXI.uX- R R $X3 3.u :.uXI 'X.X,.M.M.d J.w.d 1.Z cX1.XXV.H cXV 3.u c $XpX:X8X8.@.J.. 0 0 S.qX>.EXm.Z.MXsXGXf.P.v % { L.PX6 y.ZXI.r.u c 3X,.9XG 0.@X>X>X> HX> ; {XA .Xp $ # R $.M U.) .X>.h.9 h.uXVX,.'XJ 1XI.uX1.uXV.5.8.r ) 5 ).r.r.8Xt.H.8.H.8 3X5.,X.XcXcXG h R R R.aX-X-.a RX-X- a.a R RXD #XlX- RX5 `XK : xXJ., ` # 3XV 3 ~XVXV.r 3.rX5 )X9.5XV ~XVXV.r.rXV.kX9XV.`.].R.'.2.w yXD.ZXK 'XK.'Xw.E.' o o v JXKXsXD.}.r 3 3.rXV.u c.H.HXV.r.r.u.k.kX*.k.k.k.k.k.kXt.k.k.k.KXoX*.k.kXtXVXV.8XV ~XVXV.H 3 ~XVXV.H.H.u.u.8XV.HXo 4XO gXy &XC J.s v h c ( 3.Z.M $ v v 9.E.q y y.,., VX3XM :.a.8.} # #XB [Xp._._ XK 1 $ hXq.Y a.uXIX1.HXIXI.} h.-._Xe._ p..Xe E._._ x._ t.a U < R R.a B.a $X- R.a.aXc.9 m 1 :.,XJ :XJXKX5 RX- R.a h R RX,XDX5 c RXI 3.8 :XX :XlXl R.a R <XDXD.a.aX-.a R.e 3.a RXIX- RX- hXI R.aX-.a R.u R R 3 3X-XI R RX-X-X-.8XX :.KX-XIX1 RX,XI.a RX- R a R.aX1 B.e R aXD R aXI R aXDX-.Z.a 3XD.a.a R.aX-.aXD R.M RXDXDX,XMX1X-XI : c.5XI 3XI.~.uXlXl ' ` `Xl.0 D s aX1XD RX, R.a.aXD.aXD.a.aXD R R RX1XcXNXJ RXDXD cX,XVXDXDXDX, RXD R.a R x c TX,.9X. :.M [XJXwX.Xc.'.wXD R $X,X, UXqXp >X+X+ >X+ XG.pXp.[.-.[X%Xh.T [XZX#.GX.X. )X1.HX1.8 3XI.`.H h.[ .p.T W", +".M.Z.MXDXD.a c 1 3X1.aXI.uXlXIX-XIXVX1 R 3 :.KXJ Y #.DXI 3 3 ` DXJXKXl.u.w.KX1.`.`X-X1XD.Z R.a.M.MXq x h xX,.ZX1X1 B.`.H.K 3 3.a.}.}XeX4.C rX8Xr.@X+X> v vXG $XDX,.wXnX>.P.B.. JX>.xXf.CXpXDXV.H.5XV.uX,XJ oX+.E.Y o.-Xw =.x . %..._ E .W U U t E pX8 W =XJX5 3.DXIX,.HXD.u.u ~X*.k.kXx.5.XXx ~XVXV 3.H.8XI.8 3 3XH.,.jXw 1 1 t R R RX-X-.a.aX- R R.* t.aXDXKX-X1.~.,.5 3 3.a.u.}.uXI 3XV 3.rXV.r.k.5XxX9.kXV.k.r.HXV ~ 3XV.H.8.u.H.]XJXUXP.!.'XUXa J.!Xm bXL 9 b 0 v b 2XG y.9.ZXI 3XV.r 3 ~X*.u.rXV ~XV.HXt.kX*Xd.k.k.kXt.kXt.kXdXtXtXd.k.kXd.u.uXt.H 3 ~XV.8.HXVXVXV ~ 3.HXV.u.kXVXIXVXx ] g g.>.qXC 9.sXs $ 1 c `X1XDX0 &X4.9 =.9Xl h 3X*XX.,X3XM #XI.a c `.gX+.i._.M 3 #.l.9.FX+.F.M.8.8.8XIXI.a.aX,.pXqXe.i._ < E._Xe._ h hX, t a R.M 3.aXIXDX,XD.aXI R $ R $.ZX,XD 3X1 3XI cXDXI.aX1 R 3XDX,XD.9.9X1 RX-X- 3.5.5 ) c.`.a tXI RX, R R RXIX-X-X, R.`.a.a.a hXI a RXI RX- R.} 3X1.aXI hXI 3X, RX1XIX- 3.KXl c RXI.aXIX,.aX1.M RXD R R a 8XDX1XDX-X-X-XD RX1 RXD.aX1 R R RX1X-.aX-XD R R R.a aX,X-X5XD.`XIXIX* ` ) 3.~ RXI.DXc D.' T :XK # cX1.e RXDXIXD R RXD R.e.a R tXD.aXDX-.3X.XNXDXV 1XD aX,X, RX1.ZXD R.a RXD c :.wXK.' :XGXD h.D.WX, s RXD.aXD.MXqXqXp.Y >XpX+.FX4X4X4XG n.-.} $ ` 1 1XcXHXcXJ., )Xl.H 3XI.H.8.`.`.HXIXI.9.F.YX4 >", +"XDXDX,.a.MX,.aX, :XDXD.u c 3 #.K cX5 3.uX-.K 3X9 : c q : m.$XX ` `.u.DX,X1 R.5X9X-X1.H cX- 8 u.MXGX+XM <.e #X5.u.`.H.HX5.8XI.a .a.d...PXf wX>X>XrXrXw.M.a.eXD 3XcXKX>X>X6X6Xp.EXeXpX>XrXrXc.u.kXV 3XV 3 hXlXG $.DX1.H.DXKXwXn ..m...d EXn.s pXq.m .XA...@.>.]XVXV.HXV.u 3.8XV ~.KXo.X.k ).k.r.r 3XV.HXV.HXIX1.}.uXw nXw nXw $ < R R RX-X-X- R R R tXDX1 1XD.e ` 1X9 | 3 3.uXV 3XV.rXV.kX*.k.KX9XxX9.kXtXV ~.u.KXV.8.u ~.u.H.8XI.H.8 $XoXa.M.! 9 y y s J v.W OXL OXe.vXn 2.s.sXGXcX,XI.8 3 ~ 3.kXV.rXV.H.u.r.u.k.kXt.k.kXt.kXt.k.k.kXtXt.k.k.u.k.k.kX*.r ~ ~XVXV.HXV.rXV ~XV.HXVXV.u.H.H.H.0XN @ 9 & H o vXL U $XDXI 3.Z.w.. M.j [Xl c.a 3.}.a 3 VXX., I h.MXJ .Y k WXq._ 1.a.` c xXeXqXp U.5XI : 1X,.M u.M h.- ._ Xp uXBXeXc UX,XlXlXcXl ` TXlXK :.M.u R.aXI t.aX-.a R R R.a R RXI.}XD.aX-.aX, t.ZXD RXDX1.aXIX-.`XV.K :XI.ZXI.a.a RXD 3 a.a R RXI 3X-X1X-X-XI.a.e 3.}X- R.a.~XDX,.~XDX-XIXIX,X1 3 3 3XV c c.u.KXDX1.aX1XIX,X- R RX- R RXD R R R R R RXDX- R.MXIX-XDXD RXD R.a.a R R R RXDXI.aXD a 3XD $.a.` RXV.u 3 :XIX1XD $XK x.aXD.eX5.ZXIXDX1 RX- RXDX, R R.aXD.aXD RX1.aXIXDXSXlXN.3 x RXI.a.aX,XI R $XDX1 R.a.aXD cXD.a RX, $.Z.MX,.DXl $Xl $.Z $XD h.9XpXqXqXp.pXr W.j n [ k.3 c 3.Z 3 x.iXJ k.]XlX1XI.`XI.`.8XVXV.`.`XIX-.9XqXq >Xr", +"Xl.a.aXD cXD cX,Xl.uX,X1 cXl.5 : ).K ).5XIXoXVXVXl )XJ ,.| D ( |.]X3Xl D T.H )XXXt.8 c R.a RXD.9.9 U t 3 c c.kX1X5X5.HX-X1 $ ` C.).sX=X6 JXf 0 M.'.' :XJXK T.] 1XK v =Xr.jXw y $.w.M nXG.<.j ` h.} 3.}.k 3 3XIXDXIXDX1XV.Z.9X>.@.. % %X4XA.v . p.... S.x.EX0Xc c.H.u 3XV ~.rXVX*Xk )XtX*XtX9XV.rXV.u.KX5XI.HXI.uX, kXHXUXwXw.iXDX- R.a RX-X-.aX- t R t.M.9XlXDXlX3.u c 3.r 3 ~ ~.rX*X9 NXxXx.K.rX*Xo.k NX9.kXd.K ~XV.uXVXI.HXIXI.8XIXD.DX,XPXw yXGX0XKX0.j &.j.s.Y.@.j.E.EX0.j s.>.ZX1 3XVXV.HX5XV.r.u.r.kXtX*.kX*.k.k.k.k.k.k.kXt.k.k.k.kXoX*Xt cXd.u.HXV ~.H.H.H ~.8.8.rXV.H.H.u.k.HXIX5 (Xy !Xm &.q.EXnXeX,.wX, R 3 RXe o 2 v.9.ZX1 3XI.a 3 V V 6.%XJ kXc |XH.,.[.[X2.[ :XlXIX,.i pXp 1X,XVXB 1Xp.9XM x E x.Y.YXw.S nXBXw.-XcXHXKXcXc.,.] $ `XJXcXI hX1.a R.M R.a.a.e.aXI R RXIX-.a.u.a RX,.MX,X,XDXD R R.aX1.a.aX-.KXl.HXIX-.a B.a RX,XI.aX-.aXDXIX-X1 RX1XI 3.a R aX-.a R.a RXIX,X- R R RXIX- RX1.~ 3 3 RXIXI cXl h.e.} 3 3X1XDX1.a RX1XDX, R R $XDXDX,.ZXl.ZXlXD 3XD R.a R.a R RX-XI R.a.a aXD.a R RX5X-.` 3XX ) :Xl.e 3.3XNX1XIXIX- aXIX1X-X-XIXI R.` 3 3 RXDXDX1.aXD.aXD.a :XN.O kXN $ RX-.aX1 3XDX, $ aX-X,.~ 3 R $X5X,XI.Z h xXl x $XD.w $.Z.a.M.MXeXqXp k W =.[X<.j.S gXcXJ 'XV.`.8.u hXI c c R 3.8 3.`.`XV 3.8XIXIX1XD $ X4._ . >", +"XlX5X5 cX, 3XD.a 3 TX,.u.5 ).8.8.` 3.5X*X*.u 3.H.5 ( TXd.H.`.H )XJ.5 : ' T.HX5X9XV 3X1 R RXeXq.YXp.MXIXc ).~X1XVXxXlX- 3.a U tXe.m.v ^.@.@ oXm.nX,.'.uXl : T 1.].- 1 MXHXH.YXJ h.YXc.9.[XH U.i 3 3.KXlXV.KXV 3XVXV.HXV.H c ` =XrX6.CX6X6.4 HX2X> 0 %.x.y.E.q.].HXIXV.8.8XV.u.r.X ).r.r.k N ~XtXV.u.k.2 DX5.5.K :XcX#XHXw [Xc $ R RX- RX-.a R t R R R R $ c.a.}XD 5 #.uXVXVXV.kX9 NXx.k.kXt.8 ~XtXtXkXxXxX9.k.5XoXVXx I.u c.8 :XV c.8 : g =XK.nXGXL =.T yX% [Xh._ [.O nXh &XUX0XK.]XDX1XV.H.H 3.k.r.uXtX*.kX*.k.k.k.k.k.k.k.k.k.kXt.k.k.k.^.k.k.kXd.k.k ~.r 3.r ~ 3 3XVXV.r.8 ~ ~ ~X5X5 DXyXU ! g & &.E vXGXlXGXD R.}.M.-.Y b JXCX5XDXIXI.8.}.8X3.,., .,.} $ 3X3 :XB kX+._.l : c.a.a E E xXp.M.a hXG.Y xXp XpXr XhXB x x.M xXD #.aXD R `.a R R RX1 3XDX, $ h R R R R aXD R a.`.a R RXDX,.aXDX- R $X,X,.a aX1 RX-XI.` R $.k.KX-XI R.a tXI.aX, B.aXI.aX- R RXI 3.}.aX- RXDX- R R.aX- RX,.a.a R R R RX1 3X,XIX1X1X-X-XIX5 $XMX1X-X,.aX-.a.aXI R k c sXcXDXJXcXKXc `Xc DX, RX, a R R.~.aX- RXI.e.a R R R RXDX1XI.u R 3.aXV.`X-XI.eXc KX,.aX-X1XDX- R.5 c R RX1XD RX,X,X1XI.aXIX1 RXD a.OXc aXD KXh c.a.aXD.a RXD 3XDXD.a.ZX,X, : cXl.ZXI.MXDX,XDX,X,.D h.ZX,X, < x xX+XGXe 1 1XK ' $XIXDX1.H.`.H.` R c cX1XIXIXI.8X1.8XVXI.H.r.8.8XI.a 1X+Xq._ .._", +" T 3X1X1X1X-XIXDX5XI.u.uXIXoX9X9.5.K 3.r 3 3.kXl.K.kX1XIX1Xo g (XM.u.u.ZX1.`X1.`X-XI.a.a.N xXGXGX,.a x )Xl.k.uXVXI 3.a.M <._ y.. vXn.j.jXL x UXD $XIXIXDX1X1XI.aXIX1X,X,X,.u 1.w.9 $.9 :.' x cX, 3 T D.H.u.HXVXV.HXV.r.H.u.Z =.T.T H z.;.TXrXh = J ^XiXf.;Xw m.K.8Xt.8 ~.r ~X* ).K ~.uXX )Xo ~.r c.K.K.].] ).]., D K.j.jXUXG t.a R RX-XI RX- R R tXD $.9XDXK mXJX5.K.H.H.kXkXxXoXt.X.kXx.k NXk.5.kXk.5Xo.k.kX9.uXI ( 5.2.| D.| q D.2Xc DX.Xc &XG s.9 oXG h vXB n : xXc hXKXwX..nX,X1.H 3.HXV 3Xo.H.rXV.rX*.kX*.k.kXt.k.kXtX*.kXd.kXtXt.k.k.K.k.kX*.k.uXtXV ~XV.r.r ~XV.HXVXV F 3XV.KXI (X$ !.' b.>X0XCXLXeXs.w 'XDXD.aXM y v 2 O T.HXIXIXI.`XM DXX .5 c.,.5 `XMXM.-XH.[Xq xXn.}.a.a.M $._., 1 $XD.a hXpXqXe ..FXnX4X+.Y 1 x.a.aX,X,X-.aX-XIX- RX1.aXVXDXIX, R.a.a R RX- R R R RX-XIXI.u 3 RX-.aXD h.Z 1 T cXDX,XI B RX1.u 3XlX- R.a.a aXD RX,X, R R R R.a a R RX-.a R.a R R R R RX-XD B.Z R R RX1.a RXD B.uXD 3 $ : TX..u.aXl hX-.u RXI a $Xc.ZXlXlXlX,XD.aXDX-.a R a RXl.%.3X-X- 1.Z.] h : $XlXl : :XD RXD R.uX1XI cX- h RXI R :XNXI.aX1 R.`XIXI :.8X5.u R.`XIXI.Z 3 RXlXlXl 1XlXJX. :.MX,X,XDXIXD.aXIX,.Z $X5X, $XD.aXI.a $ RXI.Z.ZX-XD.M $X,X,.D $ R RXeX,.iXnXcXe.}.MXVX1X1X1XI.8XI.`.8XI.8.8X1 3 cXI.8X1.8.H.HXVXV ~XVXV 3XI.a h.YXpXqXqXA", +"XD.a.a.a 1X-.DXc 1 RX,X1XlX5.K.5 3X* 3X*.u.K c.u.`.`XI.` :.5 $.8.~XIX1.HXIXI.`.`.K c t.ZXe v x U R #.ZX1XIX-X-.aX- a.M t.Y HXnXnXn y.j.jXcXc h VXlXV c :.Z.H 3 3X1 3 RXDX,.9XK.YXcX,X, 3XVXlXIXVXI.u.u.H.u.HX1.HXVXV.H.HXV cXc [Xp.@.E 0 o y XqXr.@X4XfX+Xw.].r.8XVXV ~ 3.r ).5 ~X*.rXt ~.8.K :X9XlXV ) : :X5XM 1.3 xX, 1.M.a.a.~.a R RX- R R R RXDXc.H 1 :.u.K c.kXVX9.5.u.r.kXxXo.rXkXxXx.XXx.k N.k.k.k.k.X.u.r.u c.5 c )X5XJ ) `.5.u T.'.O.O.9Xe v x v.9XL x.Z cX1.' DXJ.'X1XIXI.H.8XVXV.HX5 3 ~XV ~X*.uXt.k.kX*.k.kX*Xd.kX*XdX*.kXtX5.^.uXd.kXdX*XV.rXV ~ 3 ~.u.`.HXV F.u ~.H c.2 K @.q.'.9.> M.q b yXs C.W x.M.M <XG 2.v 0 s.` 3XI.`XM.$ `.5 : c h 3XMX5XMXc V V.1 Xq .W <.}.a h $.9 1.Y x.Z.} 1.YXeXe._ .._Xe._ h RXI RX- 3XV 3X1 RX-X-X- RXDXDX, 3XD t R R R R R.aX-X-X- R.aX,.aX-.aXD.MXD $XD R c R R 3.u 3 3.uX5.K.e `XlX, c 1 1XlXc :X,.aX-.a.a.aX-X- R aXI a.aX1.a R s RXD RX, R R RX1X1 3XlX3 TXJ :.' :.ZX,.aX- c $ 3XIX-XI cXDX5XI R.aXDX5 $ cXD t R $ $XNXcX. :X, T.,XJXlXKXc., xXKXcXD.aXDXDX1 x a.u RX-.u.~ R.5XS.ZXI.aX1.aXIXl :Xl ) cX3 cXI.aX1 c., D `XKXD $.e.a RX,XD.Z h $X, cX,.uX, $.a 3 R.aXIXDXIX,.DX,XDXD c.aXD R.DXDX,.ZXD.a.aX, 1._.pXp RXIX1.8.8.8.8XIXIXI.`X1.`X1.8XI.`.kXV.H.8.u.8 ~XV.8XI ~.8XI 3XD.}X+XnXqXn", +" UXs.W.Y U.MXq xXKX. n 1XJ.Y `XK `.KXK c.Z cXIX,XI RX1 ` D 3X1 RXIX-X-X-X1X-X- 3 hXDXeX, xXG u < h cX1X- R 8XI.a.}.a Xe v pXn.YXc.Z.ZXlXlXlXH V VXX.KX5 ) (XJ.]XIXDX,X, yXKXKXGX,.DXIXVX*.HXV.`.ZX, 3 3.H 3 3.K.u.8.rXV.H.DXlXw yXr ^.vXnX>XM UXpXr.h MX.X,.8.` 3 ~XVXV.r.K ).r.u ~XV ) ).u.kX9 )XJ.R.2.$ D 5 5 I.GXwXcXUX, RX-.aX-.~.a R R aXD a :.Z $Xc D.% c.KXoX9Xo.rXo.k.X.XXd.kXo.^.k.kXt.k.k.kXt.k.K.5XtXV.H.r.HXV.u.HX5 3 ~ 3.`.' T.O.OXm.'.! s vXaXL sX5Xd D.X.ZXI.`XI.HXI.HXVXV 3 ~.k.8.rXV ~XVXVX*XtXtXd.k c.kXdX*Xd.kXdX*.k.k.K.kX*X*XV.r ~ ~XV ~.r 3XV.rXVXV.H.H.8.8.|XJX.XO.'.q.+ & MX> b.9 v.Z.M 1 1.M.W.W 2XG.'.Z.HX-X*XX 5 kX3XJX, # :XD.uXD.5 1.-XH |X7 .[ E._.M $.} cXc EXe 1.Y.Y.9.YXp E UXq._ h $Xe.a R.` R.a.aX-XI 3XIXIX1XIX-XDX,X, c R.a.aXI.M R R.aXI R R.u 3 B.a RXD.a.Z hX,XI.a hX- RX1X1XIXI.uXlXl.u.9.,XK # T `Xc 1XD.a a R R a.a RX1XI.eX1XD.eXD.ZXcXlXD aXDXD.a R $XK.2XKX1X5X, R.H T.wXI R.a R 3.K $X1X-XD 3XD h $ c 3X,.a.a $ cX5 3X-XNXH.ZX,XJ $X,XD 3.a R RXIX, 3 RX-X1 RXDXI.Z.}.uXIX,XDXIX,XN 1.eXI.aXD.5 3 3.uXl `XV : : :XIXl TXc m m k m.9Xw : 1 $X,XlXDX1XDX, $X, RXDXD.Z R.aXD R cX-XD 3XD.ZXlX-XD 3.Z.H $X, tXD <Xq.FX4 .} R.` 3.`.8.`.`.8.a.8.a.HXI.8.~ ~XI.K.uXV.8.HXV ~ ~XV.r 3 ~ 3.`.a ._._", +" .Xn._ v._Xn.i.WXe._.YXe.Y.9.Y.-Xc 1X, 8 R.'Xl.Z a 3Xl #X, R RXD R RXDXD.u c c.e hX, <XeXG.dXe h cX3 R 8.Z RXl.}.M <._XL..Xn.YXpX, RXIX1X1XDX,.a.a 3XI.u.u.DXD.5 RXI.`X5 1XGXDX1XDXD 3Xl (.HX1X5X+ y.Y X,.a.}Xl h 3.u.HXV.H c n.Y.EX>Xi.. ..pXe UXD.'XyXlX-.u.8XV.8XV.rXV ).k.8.r.r.kX9X9X*X5.k.u.r.u.uX5XV c cXlXHXJXw.M R R.aX-XI.aX- a.aX- R.D 1X, )X. ]XXXV (.k.k.u.kXx.r.k.kXt N.k.k.k.k.k.KXtXo.k.kXoXo.u.8X* 3 3.u.8.u.8XVXVXIXI.u $Xl.w s.' y sXL.'.'.0 ( (.H.`XI 3.H 3XV ~XV.r.rXV ~.K 3XV.r 3 ~.rXV.rX* c.k.k.k.k.u.k c.kXtX*.k.k.uXtXV ~ ~ 3 ~XVXVXV.8 ~ 3XV.HX1.5XoX5 4XyXwXP y.> HX0 0 bXLXL sXD.MXw.>.YXsXs 9.E 'XV.8 3 ) 5 V.G kXcX. m 5X1X. ).,.% | |X#., [X+.F U.i.aX-XIX,XcXq p hXe._ E._ tX,.M <.aX, 3.e.aX-X-XI R.aX1 RXDX1 R RX-XIX-X,.a R.a.a.a.aX- RX1XI RXD 3 R.aX-XD RXDXDXl aX-X, R RX-.aX1.a.` #X3 `.a aXI.a R.eX- xX-.a.a.a.aXD a RX-.a R.aXI xXJXKX5X1 tXD cXlXl T.2 $X1 RXDX- R '.G.3X. tX-X1 R.aX1 # : $ c.Z.aXI R.MXD.aX,XD.a.a $X,.a.,XNXNXcXI 3 RXD R R.aX-.a.a.uX, R.aXDXD cX5 cXIX, R 3XD :.GXc.ZXDX-X1 c R R 3X1X,X3Xl `Xl.9 $XV 1XD $ ` $XlXc :XcXKXJ k.ZX,X,XD.eXDXDX1 RX,XDXIXD h : 1 $.Z.Z.9XJ T.9X1XDX, $XIXD <.a E.FX+Xp < 3 3.`.8.` ~.}.`.aXI.}X-.8X- 3.` 3.H.k.uXVXV ~ 3 ~.r 3 ~ ~.8X- 3 $.Y x._", +" %.......<XnXnX4XnXnXGX+ vX4X+Xp $Xs.M.M uXK.9.Y.YXc.-Xh $.}.M.MX, h.aX,X,XIX3 1X,.MXe s.W hXD.a #.eXI RXw.ZXc h._Xn.Y pXG y.MX,.aXI.8.HX1X5.HXD.}XI 3.`.H.8.HX1.H.8.HX1XI R 3.D.HX1 '.2.'X,X,X>X4X6.JX> >Xn . >.- h.}XV.8XV.u 3XM E.j .Xi %Xp.<.M cXD gXd.u.} 3.r 3.HXV.r ) ~XtXt.k.XX9 N.k.k.k.K.kXV.kXd.kXV.H 3 T Y.9 tX1 t a RX-X-.aX- R.a 1Xl.Z $ m.% (XI q.5X*.r.X ).5.k.k.kXtX*.k.k.k.k.k.kX*.k.KXtX9.KXt.HXV ~.HXVXVXVXV.8XV.8XI.8 3XIXDX1Xl.'.0XK.0.'XV.8.`XV.8.H.8XV.8XV ~XV.8XV ~XV.K ~XVXV ~XVXV ~XV.rX*.kX*.k.kXd.k.kX*.rXV.r.r.H ~XVXV ~XV ~.H 3 ~XVXVXV.H.HX5 (.|.2X$.GXy b &.q 9 y b.w.wX, tX,.MXG v.= 2 v.'.Z R 3.5XX., V ) | ) ` :XcXJ IXl.| 'XVX3 | D k.[.pX4._ x.a 3 : h xXeXe p._Xe h U.a $.a 3XI.~X- c.ZXIXI R.a.a RX-X-XIXDX- R.~.aX-XD R R R R.a.aX1.a RX-XDX- 3X,X1 RX-XDXD.Z 1 D h.u.aX- RX1 BX-X-.aXI.K ` :X1 RXDXI.a 3XD.a RXD R $ xXD RXDX1 3.] $Xc c R RXlXD `XcXc.ZXIXD 3XIXI 3.a.3XHXD $ R RXDX-X- R RX5 cXD RX1.a R.aXI R.a.a.aX1XDXDX5Xl $.,XNXD.ZX-.aX- RX-XIX-XDXc.9 T :XUXc T.,Xw :X-.uXDXD h R R RX, c $ :.Z.u cX,.uX1X, c $XlX-XD R $ R.u $ a.a.a.Z $.Z $ hXIX,X,X,XDXDXI 8XDXDX,X5XlXl $Xc m kXcXJ.,.9 3X-.D.uX, t.} RX,._ >Xr.}.M RXIX-.8.`XIXIXIXI.`.`.`.H.`.8.`XIXI.kX5.8.8.u.8.8.rXV ~.r.HX-.a 1 ._", +" % * pXp p pXpXsXe.WXpXe v vXp vXn xXGXG sXr v n.-Xp 1.YX+.[.YX+.Y t.M.a t $Xc.MX,Xe.Y oXeXD RX,XI `X-.Z $.9._Xw W z.jXr yXD hX1 3XI.H BXdX1XI.`.}XI.8X*.HXV.H.8 3.8 ~ ~ 3 cXV.`.`XDXcXKXD.M x.< { {XbXAXf.<Xf . >Xc h 3 3XV.` # c.a s o.<X>XfX> 1 3.HXdXd.r 3 3XV 3.r.8.r.KXt.k.k NXxXxXo.^.k.k.r.K cXd.u.kX* 3 3 cX..MXD aXDX- R R aX-.aXI.e aX5X5 4.% :XVX9 ).r.X ) NXt ~X*.k.k.K.k.K.k.k.k.k.k.kX*.kX*X9.u.rXt.8.u 3.u.8.H.8XV.r.uXVXV 3.8 3.HXIXl.`XVXV.8XI.HXV.H.8.u.u.8.u ~XVXV.H.rXVXV.k 3.H ~ 3.H.r 3 ~XV.r.uXdX*.u.r.u.rXV.H ~XVXV ~ 3.8.H ~XV ~XV.H ~XV.~ 3.HX5Xx (.2 ] ! @XLXm.+.E J O vXG y $ $.9.ZXe o.EXL y.a.D 3 c :.f.$X3XM ` RX- x.5XX.KXdXVX9 3 a c q }X3 k.pXqXpXMX-XI.8 $ a < u < U.a <.a.a.u.uX-XDXI.~XIX,X,.a R RX-.a RXVX,X-X1 R.a.a.a a.a R.a.a.a R.aXI $XVXD R RX, RXD RXDX1 1 m cX-X1 RXI R R.aXIX-X-X-X1 cX3 3X-XIX-X-X5XcXNXl 3 :XN $.a D :XK TXDXDXIX,X3XcXKXc h.uX-X,X- R 3XI.aXI 1XNXNX. 3 R.aX-X1 RX1 3X. $X5 $XKXl TXK.MXD.a.a.a 3X, 3XN.,.]XH aXD.Z.eXIX,.}XD.a.e.Z $ $.a.ZX, 3XIXI $X5XD $X5 $ $.ZX,XD R c.DXIXD RX1X,XD.aXI.a RXDXDXDXI hXDXl $X,XDX, 3X,XD RX5 3X5XlXJXcXc DXc.ZX,Xl ` D :.Z.ZX, T.M.aXD cX,X1 $XDXI.M < U._.iXrXcXIXD.HXVXl c 3 3XI.8X1.H.`.8.`XIXI.8.8XI.r c.u.8XV.r.8XV ~.8XVXI.aX,.Y 1", +"Xe.)XG.).M U.M.MX,.Z C t.M.M C.M._.1Xe E vXr v vXp yX+.pXp.EX+.E.-.W.WX, $ $.} U x.jXGXs t R # ` :XI c h < RXe 2...@.jXG U.a :.K cXD.K.k.r.H.rX5.H.HXV.HXV ~ 3 3.r 3.rXV.`.8X1.}XI 3.5X1X, U EX>.. ....s.sXiXiXAXfXr.9XIXI ~ 3.K.8.uXDXD.DXq.9XmXM.rXVXdX1 FXV 3XV ~XVXV.K.r N.k.k NXk.z N.^.k.k NXd.kXd.5.u.k.uXI cXHX5X1.M.eX-.aX-.a.a a t.a TX,.3.5.u.HX9.5.X.k.XXk.KX*.K.k.k.u.kX*.kX*.k.k.k.K.k.k.k.kX9.r 3.H.u ~.H.8 3X*.HXV.H ~.8.u ~XVXV 3XV cXI.u ~XVXV.H.u.HXVXI 3XV.8 3XV.H.HXVXVXV $XVXV 3 ~XV 3 ~XV.r.HXV.r.H.r.u.rXV ~.H.8XV.r 3.r.H 3.HXV 3.H.H.HX1XV.H )XJ.2.2.2.0 g.0 s.9X0.q J OXe.M 1 R.wXH.9XnXs o y vXD.uXI 3 DX3XMX3XM.}X, hXI.`XX ).$ ~X*XX )X*X* |XJ.-.pXq.m h.a.aX-XX cXI.a.}X-.e.aX-.} RXl RX- a RX1 R.a 3X, 3X1XDX-XDXI BXI.a.e BXI.} R.a R.a RX-.aXIX,.e.aXI.a $ c.wXl $ $XI 3XD.a R R R a R RX-.a.a.` 3X-.uXl cXIX1X- 3 3XNXlX1XDXNXlX-XI., c.a R a R.eXK : cXDXIXD 1.~XIX-.aX-.aX-.ZX5 mXNX..e R.a R RX1 BXK.%XJ TXc : $ $XD h RXD R.aX-X,XcX.XHX5 hXDXl x cXDXI $X, 3XIX,X,X,X,.Z.Z h 3 3 hXI RXV $ 1XlXl $.wXc RXIX,XDX-X, $ R.aXD.a aXI RXD.Z.ZXD cX5XDXD $ R.a.aX,.a T 1XJXcXcXcXlX5X,XDXDXD x RXD RXDXD RXD B 3 c 3 3.a.a.a.}Xp E [ vXc.uXl.0Xx TXlXD.8.r.r F.H.`XI.8.H.8 3.`.`.kX*.HXVXV.8.r.H.H c.5Xl h.j ", +".)XnXe UX, RX5 $X, R R.a.a RXD.M hXS.Y u U.) UXeXpX+.YXLXe.s.s.s.E.Y.YXw.[Xq 1Xq.Y &Xe.s $.w.9 :.M U t h x._.@.@XC.j...MX,X1.X : 3XI.k ) F.`.5.uXx.`.HXx.K.8 3 #X9.u.8.u cX*.a 3X1.u.8 3.a.MXpX4.....).sXnX4 v 0 O.@.j.M 3.aX*XVXt ~.HXV 3 3.MXl c DXd.r.H.u 3XVXV.H.HXt ).k.k.k.kXj.k.^.kXt NXt.k.^.k.k.k.k.k.rXVXDX.X..Y.a t.a RX- R R R R.a : c : '.HX9Xo )XoXkX9.k.k.k.kX*.k.K c.k.k.K.kX*.k.k.k.k.K.^.k 3.r.rXI.r 3.rXV.H 3.H ~XV ~.u ~ 3XV ~ c.u.rXV.H.H.HXV.8XVXVX*XV 3XV.H.rXI.HXVXVXV.kXVXVXVXV.HXI ~.uX*XV.8 3.H.H.u.H.H ~ 3.rXV.u.H.8XV.H.H.H.H.H.HXIXIX5Xl.2 ] m.2.> @ g.w s &.>XC 0XL.sX,XDXDXJ =.wXL.EXG 9.aX1 3XV 3 VX3XMXM 3.a.u.}.8.aXVXXX9.8.`X9.K.f q 5X3.gXB._XeX, <.8.`.5X5.5.8.~.aXI RX-X-X, h.aXI R.a R R R R.aXDX,X5XD R c R a R R 3 $ c c.aX- R 3.uXDXI.a.ZXIX-X1.,XN.3 K.G 3XD c c R.a RX-X1XD 3.eXIX-X- R.`X- 3 c.5 3.`X1XMXNXJ.u $XN DXJXcX5 c $.uXl.KXH $ 3 cX, 3 3 3XIX-X-X-X-XI a D kXD D k R 3X, 3 RXIX, cXlXK.ZXl.' :.'.Z $ R.a.aX-XDXDX-XIXD.Z cX,.uXlX, cX, 3 c x 3 R.M R B R R R RXDXI cXD.eXK.9XK T TXlXlXlXDX1 $X,X,X,XD RXD RXD.aX, RX,X,.ZX,.ZXlXD $ RXDXD $ RX1.ZXD.Z.Z.eX1 8X-XDX,.Z $.Z R 8XDX1XD RXIX1XD $XI.a.a.aX,._ v [ R.0.] g ).Z 3.H ~.H.H.r.H.8.uXV.8.8XV.8XV 3X-.u.K.HX* :X9XX.$.] `.3 :.,.Z", +"XrXG UX, h c.} R R.M <.M.aXDX1.~.% m.O t._.M h ` x.KX5 cXD B.M tXD xXhXc.WXG.jXnXp v._.9XrX.Xc.YXG.@ v._.s %.s vX+.W R.M.a.aXV.HXIXI `X5.8.8.5.K.uXVXVX9X5.8XV.5 #X*.8.u ).K 3.`.HXdX1X1X, >Xp 0.m.s h < h.M.N.s O o y.WXDXI.u ~ 3.r ~XV 3 3 cXD.5.2.H.H ~XV.rXV.r.H.r ) ).k.k.K.^.k.K.k.k.^Xt.k.k.k.kXd.kX5Xo.uXI c DXH.9XD.M R RX- < R < t.}.u R ~.k.kX9.r qXX.k.k.k.k.k.k.k.k c.k.k.k.k.k.k.k.kX*.k.kXo.K.r.uXt.8Xo.kXVXV ~.H.rXVXVXV ~XVXV ~XVX*Xd.HXV.rXV.r.uXd.u.k c.r 3 ~XVXV ).5X5.HXV :.HXVXI.8XI.uXI., ) ` DXK.$ $.$ ) 3XV.8XV.H.uXV.8XV 3.rXV.8.8.8.HXo ].|.2 mXw g !X.XPX,XP g &.q J.s.W U 3 R.ZXs.s.W b.9XDXIXD 3 3.} c., :.K 3 3.KXI c ~XVX9.8.`.8X-.KXx V., |XpX+XqXeXMX-XI ~XX.k.KXV.~.`.a.~.a R.u.aX, a.a R R R R R R.a R., :X5.- :XK :.'XJXcX.XKXJX, hXI.a.} 3X1 3X,X1X-X5XNX, $XN.ZXD hXl hXD aXD.a R 3 R.aX1X-.` R.a.`XIXVXM.K `XVXN.2X, cXNXJ 3 c $.a 3X1X- R 3.5X, RX-X-.a R.u R.a.`X-.}.~XX 7 KXHXD.a R.9XK.9XK.9XcXw TX.Xw TXlXKX1XD $.Z $ c h $X,X,.Z.aXD.a.a.aX, R RXI.a RXI.uX1 RX-.a RX-.aXI.a.a 3X, RXl 3 $ RX,.uXDXl R 3X,X,X,X,X-X1.aX1.MXDX,.aX,.ZX, $ $Xl R $ RXDX5XD.aXDXDXV $XDXD.a R.MXDXl.ZX5.`X1XDX1XDXIX-X1.aX-.a.a a.}X,XqXqXK.MXDX,X5.`.`.H.H.H.H F ~XV ~.8XV ~ 3 3 3.8.K.5 ) :.|.|.5.] 5 D qXl c.5XD 3", +"Xn.M h.}X- R RX1.a.M.a.a.a R.D TX$.GXNXl.M $Xw x c cXoX5.K : $ c.aX-.SXN $.NXhXpXe E.W.W.YXG.Z.MXeXq p % ... ..jXG $ $X, h 3XV.H.8XV.u.8.`.`XI.` 3.HXIXV.`XV.8 #.uXIX-.k c cX1.HXd B.HXlXpXr . % v U <.a :Xl.M.w.s.vXp.pXc.- :.` 3.H 3.rXV 3XI.u.DX5.8X* 3XV ~.8.H.u.k )X9.k.k.kX*.k.k.^.k.K.k.k.k.k.k.^.5.k.K.k.u.u :.%XJ $ a.} R.a t < t.aX,X-X5 5.kXx.rXV.5.5.k.k.k.u.k.k.k.k.k.k.k.k.k.k.k.k.kXd.^.HXx.k ~.H.rX*X9Xx.H ~ c ~ 3XV.H ~ 3 ~.HXV ~X5XV.rXVXt.u.k.k.u.k.kXt.uXV ~XV ~ :.K.$ D 5 DXJ 5 ) D I ,.% :XlXJ $ `X3.Z : ) c ~ 3.8.uXV.8XVXV.HXV.H.HXV.r ( ] ] ! m !.! sXGXc s.ZXK 9XO & o.B 2.M RX1XD C.N._Xn ' R.`.8 3 c.a $ V ` :.KX-.KXxXM.rXX.rX9XX 3.8.rXX V.[.SXq $ hX-.a.K.`.K.uXV cXI.`X1XIX- R 3XI 3XI R R.aX- RX1.aX-.aXKXcXJ m $ :XcXlX5 :XK $ $X-.a RX- R.aXI R.~ RX1 $XNXJX.X..MXD :.- $X,XD.aX-.a.aX-X1.~.a RX-.~.aX-.a 3.a.uXl Y 6 3X,X$XJX-X-.a.uX- RXIX1X1 R 3 cXlX,XIX-XI.~X-.a.`X-XIX-X- RX-XIX1.M $Xl x h $XlX,Xl 1XlXlXDX,X,XDXDXD R.aX- RXI.a.aXI RX-XDX-X- c a RX-.a 3 RX, $.u RXI R.` aX- R.aXIX, aXIXD.u `XD 3.a :XIX,.ZX,X,Xl.ZX, cXlXlX5 n $Xc h $ $.Z xXD R.a x.ZXD RXDX,XD.ZX1.a.a R UX,X,.D.ZX,.u.D $X,.ZX,.aXI.a.a.a.MX, 1._.- UXDXIXIX5.H.` ~.r.`.u.H.8 ~XV ~XV ~ 3 ~XV )XJ IXJ.2 D.5 'Xt 3XV 3XV.8 3.H", +"Xs U t.a 3 $.ZX,X,X, 3.} RXIX, ` : x.3.1.Y xXD 8 RX1.`.8XIX- 3XI.aXD.% tXh K.hXs u.a U U.M.a < R R C *XbXb . y.9XN :XI 3.H.`.8 3X1XV.`X1.8.8 3XV.K c.H 3XVXIX* 3 #.uX5XdXV c 3.5 cXo.uX,X+.x.@ O.M.M R RXI.u.M t u...s.sXr $XD 3 : :.`.`XV 3XV 3XoXV.HXV.8.uXV.r ~.kXxXx.k.k.k.k.k N.k.k.k.k.k.k.k.k.k.kXx ).&.% 5.| k I.3 Y mX. Y.3 KXw h <XDXHXxXx.5.kXxXx.K c.k.k.k.k.k.u.k.kXdX*XdX*XdX*.kX*.k.kX*.k.kXV.rX9Xx )Xt.`X*.H.8 ~XV ~XV ~XVXV.uXt.k.5.k cXdX*.k.k.k.k.k.u.kXd.u ~.HXV.8XV 3.H cXV.HXI.H.u.`.5XV ` :XcXK ).u 3XVXVXV 3 ~.` 3XI.`.8.8XI.8.u.H.8Xo ] ] ! ] gXK T =Xc.Z.w.9 s TXm.>.q w 0Xa.'XUXD.M.w o v.9XIXVX-X- VX3Xl V.%XMXX.kXX ).5.uXXX* 3.$.KXXX3 # [.-.9 `X,X, 3.5XVX1X1X-X-XIX* 3X5.e RXIXDXl RXIX,X-XI R R.a.e RXDX-.a.a BX-X,XI.eX- R.aX-X,X1 RX-X- R.aX-X-XI RXI.a 3XNXl $XNXJ a.aXDX,.u c.a RX1 R RXI.a.~.aXDXI.aX-X- RX-X-.a.~XKXDX-X- t a 3 a.ZXD 3XD 3X,XI.u 3.u.} 3X5 ` cXDX1Xl c 3XIX- aX-.a a R R.MX-.a R R a R.aX,XIXD $X,X1 RX1.aXDXD.a RX- R aX-XD a RXI.e 3.M c 3XD.Z c RX1XDXDX-.aXI.aXI R R R.u.a c $ 3.aX1.M RXD $XlXD.-.9XlXVX,.ZX,X5.aX1X,.Z.a.Z h.Z $.ZXD.ZX, xX1XDXD c.9Xl :Xl g xXJXK k D TXD RX1 RX,.aXD x.a.a RX,.M._ .X7 x.a.}.8.`.u.`XI 3XV.8.u ~ ~ ~.8.8.8.8.8 3 3.rXVXIXV.Z.5 ( TXJ ) I I.] 5Xc", +".M.M.aX, c.a RXD.a R RX- aXIX1.aX, h.MX, 1Xe.*.M R RX-.e R 3 3.a 3.$XS :.'XSXH R <.MXD.aX- RXIXDX,XD.W.sXn H x.SXw YX-X1.`.`XI.` 3 3XI.8 R 3 3XVXDX$ Y.3 )XIXI.`X- B.8X1XD.HX3.K qXX s U.j HXpXn : '.D.DX,.u.i h U.m.. vXr.M.a c `.D.H.`.8XVX- TXx.8.rXVXI 3 3.H.u.5.R.k.k.kXo.k.k.kXt.k.k.kXo.k.k.k.^.k.k.k.kXoX9.kXV c IXH.2.%.,X. nXK $.MXD `.u ).kXxXgXx.k.kX*Xd.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.uXtXt.k.r.k ).8XV.HXV ~ ~.k.H ~ 3XVXV.r.uXt c.kX9X*.k.k.uXd c.k.k.kXd.k c.rXV.8.u.H.u ~XI.k.u 3XV.8 3.8XlXI c.u 3.Z 3.Z.H.H FXI.HX1.H.` 3.8X1.`XI.H.8XV.u.r ]Xy ]Xy gXU = [.Z $.u.9.Z y.n.qX0.q 0 vXa R RXs.WXe.E.ZXI.~ 3XI : :X3 ,X# } IXM `.$XX.K ) I., 5XXXX.[.,XJ .9 1.uXV 3.u.k 3 R h c 3Xl ) :.KXIX-.~X,X-X- 3 R.aX- R R.aX-X- R aX1 3 h cX, 3 hXIXIX,XD.a R R R.aX1.aXI a RX- R :X$X.X, `.%.YX1XIXD x.MX,X,.aX- R RX1.a.a.a R.aXD 3XI hX,X,.uX3X5 cX, c 3XD 3 cXIX-XDX1.aX- R.a aX- RX- R :XIXI.K.uXl :X1 c R.eXI a.a a R R R R.a.a R B h RX1 c $XI R.aX-XI.aXI.aXI RX- R.aXD aX5.M.uX,X-XIX- R cX1XI cX-XI.e RXDXDXDX1 RXD :.u.Z RXDX-XD RX,X,X5Xl.Z : $ x :X, RX,.M.wXe.Z t.9 $Xl.wXD.Z.ZX5XDXD.D : T :.' 1 :.ZX,XDXD.aX,X,.M.M RXDX,.M.a $X,X,XJ U._XqX+XM.aX- 3.8 3.u.` 3 ~ 3.8 ~ ~XV ~XV ~XV ~XV ~ 3XIXV 3.k.2 IXJ 5 (.0X9 :XV.k", +".a.aXDX, RXD R RX1X1 RX-.8.a aXD h.M hXG E t.M C R R.MXIXI.aXI 3 3XJ.,Xl :XKXw B.a $ R.aX, ' 3 3.HXD.sX>Xp.EXwXSX#XSX, 3XI.HXIXI.uXIXI.}.`.8XIXI.` 6 :.DXN.5 3.aXI 3XI.`.kX5 3 3 3X,X, oX4X>.j v.aX-.`X1X1 x c U.iXp.;X0X>.Z c.u.Z $.u c c $XK.2XK.8XV 3 3 3.u.H.kX9 )Xd.k.kXt.k.k.k.k.^.k.k.kXt.^Xt.k.kXt.K.kX9X5.kXlXVX5.uXIX, : 4X. m.9 : T $ ( ~ NXkX5X9.kX*.kX*XdX*.k.k.k.k.k.kX*.k.k.k.k.kX*.k.uX*X*.5.rX9.u.r.H.r.uXV.H.rXV.r.r.uX*.k.k.k.kX9.r.k.kX*.k.kXd c.k.k.u.r.r.H.u ~.8XVXV.HX5.8.u.` 3.H.u.8XIXV 3XVX,.HX,XV.HXVXV.`.`.8XIXVX1.8XI.8XIXV.8XVX9.2 ]Xy !XOXU s x x h.ZXK :XG g.jX0.E 0 2.N T.a x.W.=.n.9 UXIX1XI 3X,XI D.,.%.%.% } I D.KXXXX ) DXXX3.gXpX+ yXpXc `.u ~XV 3X5.u.a a.a 3.uXD B $X1X1 3 : 3 3XD a R R RX- R.aX-XI hX1.aX-XI.a.~ R.} R 3X, RX- RX-X-X-X-XI 3.ZXI $XD cXDXI RX-.} TXcXl.w $ $ $Xl cX,X,X,X, 3XDXDXD.M.aX-XDX-.aX5 hX1X- aXI a.a.a 3XI aX- R.aX- t RX- <.a.aXDXl $Xl #.Z.5XI 3.~ 3 RX-X-XI RX- R.aXI aX1XI B.u.a.eXI ` 3X1.aXD R.a R.aX,X,XDXD 3.Z R 3.Z :.~XI RX1.uXD c 3 :.aXl $X,XcXc ` D DXH mXI cXIX,.e.M RX,.a U RXDX, $ RXl.M.MX, $X,X,XD.ZXG c xXD R h.Z $ RXD $.ZXI R.*X,XDXD.MXD.M R hX, R.M.aXD R $XK $.SXD x...FX+XeXI.8X-.8.a 3 c.a 3 ~.`.8.`.8XV.8.r.8.H.8.H ~XV ~XV.k.u.5.kXl.kXI.H.8XVXV", +" 3 3 c.a.M RX, 8 R R.`X-X- aXD h.M.MXn.w u.M R < R.a aXD 3X-.`XV RXl c ' : T $X1XD R.a.e c 3 RX-.~ R u p %X8.LXc.YXN.5X1XIX-.a c 3.aXI.`.}XIXIXIXI K : 3XH I.~ 3XIX1X1Xd.D.uXIXDXDXeXpXp J.sXSXw.H `XlXIXDXD t U p p...EXpX1X- ~XIX1.`.HX, s.E.9XJ.uXVXI 3X,XdX5.XX@XxXxXx.X.XXxX9.X.X.5Xo.^.X N.5.^Xo.^Xo.^XtXx.k.k cXd.u.u 3XIXV $.3XcX.XJX.X9XoXo ).^ N.X.rXo.k.k.k.k.k.k.kX*.k.k.k.k.k.k.kX*.rXV ~Xx ) F ) ~.H ~XV.k.k.k.rX*.kXtX*.k.k.k.kX*.K NX*.k.k.k.k.k.k.uXd.kXtXV ~XV.HXV.u.u.8XV.KXV.8 3.H.k.5.uXVXVX5XD 3 3XV.uXo.`X1.8X5XIX1.H.`XIXI.8XI.H.H.u.kXy ] g gXK.' $XDX,.Z TXGXO.9Xw.qXC.WXa CX,.' tXsXsXLXG.ZX,.DXJ )XV.uX3 I., V VX. | VXH }XJ I.,XJXc.- 1X+ .wXc xXM.uX*XI.K.u c.aX-X1X-X-.` 3X5X,.~XI 3 RXD aX-X- R.a a R 3X,.a.a R.a R R.}XD.a cXD.ZXD 3X,X,X,.u.ZXlX, 3.u h.u.Z.5X,XD.uX-.9XcXD $X,X,X5 h.} cX,.a t.a.a R t R.a.a.a RXD $.a 3.a R.aX-X- tX- 3 hXI R aX-.a x xXl.u.Z cXK.KXlX5.KX* R.8X-.e.` R RX- aX, 3 :Xl.Z 3 $ c $ cXl 1.]Xl 1X-X1.aXIX, $X-XDX, 3 R RX, RX-XIXI RX-X1.~XK `.K D mXJX- c.' TXc :Xl T hXIX,X, RXDX, a.MXDXD.aXD.Z RXD.'XD.a.Z $.MXDXDX,X,.wX, x.ZXDXDXlXl.DXDXI $XDXD.ZX,X, R.M <.M.a xXD.M.a.a.Y.ZXw.Z sX,.MXnX4.- h.aXI.8.8.8XI.} cXI.8.`.8 ~.`.8.8.8XV.r.H ~ ~ ~.H.8.8.r 3XV.8.k #.r 3XV ~", +"., TX-.a R t.M R RX1X1XI.a 3 1 x.d.s._.M t t.a < a h $.aX-XIX-XI :XD :X. :.Z.`X1X5XI.H cXIX- RXIXI R.M UXf.J 0.j.w.] T 3XI.a 3 3 RXIXI.`XIXIX- 3 3X$XVX- K.K 3 R.a.a.8XVXVXVX1XGXKXp.@Xn %Xr =XZX- 3XIX, h t.)Xe..Xn HX+.Z.M 3.`.8 ~ c 3Xe.j H.@Xc.M.}XIXIX1.H.HXd (.r.k.k N.k.k.^ N N.^ N N N.X NX9.X.XXx.5Xx )XxXxXxXX.XX9.5.k.u.5.%XH Y.3 5Xl.5Xx ).^XxXoX5.kX5.^.k.k.k.k.kXt.kXt.kXt.k.kXtXtXV.8XVX9 5X5.8 ~Xt ~X*.k.u.k.k.k.k.k.kXt.k.k.kXt NXo.k.k.k.k.kXt.k.k.k.uXV.r.H ~XI.r.5.5 c.8.KXIXVXVXVX9XJ I ( mXJ I.] D.2.u (XxXI : ).8.H 3X1XI.`.`.`XV.H.8X5X@XOXPXOXO.'.w.-XJ.wXw !XPXK sXmXw 9.EXs C.a.MXDXLXs.sXUXG 1X1 :.2 fX..% } Y , } V `X3 }XS 5XM 3X1X, R.M .Y X7 1.iX. m., :X-X. '.5.,Xl T T T m.3X3 T.$ T IXl hXD 3X,X5Xl cX, 3 3X, 3X, 3XDXIXIXDXDXD c RX1.a R R 3X-X1 aX1X-X-X-X-.K R RX-.a RX, $.9.'XcXl :Xc : ` c R R R.a R R.a B.a.a #X-.}X-.aX- R.`XIX-X- RXI 3.}.a.e.M 1 T x D.,X5 `XJXJX- 3 `XV R 3XI.~ 3 3 cXIXIXl : m `XJXJ.,.2 ` TXKXV $ 'XM.DX5X,X1.ZXlXlX5Xl :XJXD R R.Z RX1XDX-X3 ) m 3 #.uXD aXD RX1XV c.u RXD.a xX,.M R.MXD.a RXDX, 3X,X, 1.MX, x.ZXD.Z U RXD.ZXlXD.ZXDXD.wXJ 1 R RXD $ RXD.M.MX, R.a tXlXKXcXc ` sXJ hX, R 8XDXeXGXqX+Xl R.H # )XI.`.` c.u.`.H.`.8X-.` ~.` ~.H.H ~XV.r.rXV.r.8 ~.r.r 3 NX* ~ 3 ~", +" `XKXK n XK $X-.aXIX-X-X1 U :Xn.jXrXc.M R.a < cXKXX h.a RX-.` RX- $XJ ' BXIX1 T.k 3.H.8X-.` RX-X-.aXD E.. %.P o 8X-XIX-XI.}.uXIXIXI.` 3.`.8XIX1 :XN I m.].H RXI.8.a.8.8X*X1 : TXn .Xb...sXS.-XN $.a.a t.a u.W....Xf.x M.Z 3.`.8 3 3 R 1.@.@.C ^Xr.a.}.8XIX1.H.HXxXx.k.k.k.X.KXx NXk.zX9.zXx.kX9.^Xk.X.k.X.^XkX9.kX*.k.k.kX*.k.rXV.u.K.5 I.] )X9 5.XXoXx.z.5.XX9X9.XX9X9.XX9X9XxXxX9XxX9X9Xx.5.5Xo.5.5.5.5Xt.K.K.uXoXoXo NXo.KXo.KXo.K.^.K.K.^XoX9XoXo.k.k.kXo.k.k.K.k.u.rXV.rXV.k.KX* qXV.rX5.H.HXV.8X9 :.5.].K :.] :X5XxXDXoX9XV IXlX1XI.H.`X1X1.HXI.`.rXVXV.2.2XyXO.' x 1.jXw.OX;.GX; @.O.qX0 o v.' U.MXDXDXsXGXm v xXl.0Xl.2.%XxX5X3 ) k.%., |., k ` h c $X5Xl.wXl h.iX%X7.T.SXHXH mXJ.u.0.] DXJ m.0XcXKXJ m.2X# DXM.%XI RX-X-XI 3X-X- RX- RX- RX- RX- R.aX- R a $X- RX1XI.aX1 3 R RX-XI RX1 3XXX-.`X1X-X1XDX,.Z RXcXcXJ 1 cXK hX-.a.a R R.aX- RXI a.5X- 3.5 RX1 R.~X-XIX-X-X- RXDXI.aX- x c.9XlXlX,X5XK 3.`XIX-Xl.5 3XI.uX1XIX- R R 3X,.u.aXIXIX1XIX5XIXIXI a c ` :XJXJ.2.,.2XJ kXlXK :X,.MX1XIX,.` RXIXIXMXX.5 #XIXI R RXDXD $X,.a RXD.aXDXl.aXD.a.aXD.M h xX1 $.aXl : x 1 1 1Xl.'XcXc.w x $XD.ZX, $ TXJ.2 $XcXl 1.ZXl c sXl s a.9XJ x.3.9 :.W $.wX, UXD xXn vXK UX, ` cX3X- 3XI.`XV c.8X1.8XIXV `.8XI.8.r.H ~.8.r.8.r.r ~ 3 ~ 3 ~.K.k ~ N", +".5.ZXI $.wXq h.aXIXI.~XIX,.9.w EXwXLXn.M.aX- R 3.a.a aXI a R 3XV : 1 : 3 RXVX5.5X-.uXXX-.`.aX-.aX1 c < C..XbXnXGXDX1 3.8X- c.H FX1.8XI.` 3.` 3.8.HXI.D.`XI.`XIX1 3.`XI.u ~.` c.- JXbXi p WXB.w YXcX-.M.a <.N...s.4.; M.p.YXD.HX1XI.} $Xw.J.@X6 w M.iX-.}XI.` F.H.z.k.^ NXt.XXg.$Xg q qXk./Xg N.f.^XkXk q N.$.$.RXo.^.k.k.k.k.k.kX*.rXMXkXX.KX*Xx ).K.^.k N.k.kXd.k.kX*XtXt.uXt.k.u.kXt.k.kX*Xt ~X9XX.kX*.r.uXVXtX*.k.KXo.KXoXo.^XoXoXoXo NXo.5.5.zXo.5.5.X.X.5.5.X.kXo.k.k.K.5.5XxX9.5.5.k.KX9.K.KX5.KX5Xo.K c.K c $.u.Z.u.u.k.u.k '.5.u c $.u.u.u.u c.uX5.k cXx 4X;Xy y g.YX.XcXy ! 4.O K K.GX0XmXL.9 h $ xX,.MXa.w.W.w xXc :.HX5 cXo.u 3.u 3 V #.}.M.}.Z x $XDXI.H.a .Y.FXB.p.j.Y 1 $ $X1XD BXDXD.aXD RX1X1XI R cX-Xl., c.M 3.Z 3 RX1 RX-X-.a R R R R a R.M R R RX,XDXDX,XIXD 3 RX,XI t.aX- R.K c R R R RX,Xl 8Xl 3.MXD.MXI aX- 3.uXD R RX1X1 R RX1X- cX,.aXX 3 cXVXI R.`X1X- RX-XI a.a.a.a.} R.~.aX-.a cX1 RX-X-X-XI cXI.`X-X-X1X-X- R R.` R RX- R R 3X-X1XD.u RXD T 3.uX,X,XD 3 R.ZX, $.Z.u.a RXIXDX1.aX1.u : 3 : 3XI RXDXIX5.uXI.aX-XD RXD.} x.a.a R $X,X. T.9.,XcXKXJ.'XK.9XKXcXK.- x $.ZXl UX1XDX, R x D.9Xc 'XJXl.9.9XKXK 1.Z 1 $XlXl TXlXl x.ZX,X, x.[.YX0XH.Y x.M $ c cXIXIXI R cX, RX1XI.8 c D.H 3.8XV ~ ~.8.r.8 N.rXx N ~ ).r.K NX9", +"XJ.0 x xXe.} a.a.} 3 $ hX,.MX+ yX+.M.-XDXD.aX-X-XIXD cX-X1 3X5 3 $Xc.}X-XDXI.8X-.u.5X*.KXX aXI 3.u BXD._ p...EXe RXD.8 RXVXVXI.`.HX1.8.KXX ~XI.` 3.kXI.8 $.H 3.`.` 3.`.u.` 3XI.w.;.@ %Xn.gXe RXc.O.Z RXI U.M v JXf.;X>XGX+ $ R R $.Y.[ >X6.B ;.P.x h.} 3X1XI.HXV.U.kXt.k.^Xk.X.^Xk qXg qXx qXg.z q.zXx qXx.zX@.z.K.^.k.k.k.^.k.k.kX*.k.r 3X*.rX*.X.k.k.XXo.k.^.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.kX9.r.5X9 3 ~.u.u.r.u.k.k.kXd.k.k.k.k.kXd.k.uXd.k.u.X.uXdXd.uXt.H.H.8.r.`XV ~.8X9 ).k.uXVXV 3 ~ c.8 3XI.5.u.H.uXIX1.` RXD 3.8XI.`.8X-.H.8X-.`XIX1.`XI.`XI.`.H 3.H.5.2.2XU.9 g s.DXG gXP 4XyX; = @.>.O y n 1Xc TXK .Y n.1.>X..2.DX1.k.`.H cXI 3 3.a.a $Xc.3.- K [Xw.% mXcXc.-.FXeXp E.i.M h.a R R R.a RX1.a RXI R.DX- c.8 a R c 3XD R.a R R R R R R R a.a R.a RX- RX1X1XD.uXD B R a 3XIXIXDX-XI.a.a 3 # 3X1X1X1XDXw $X, sX,.a 3X, c 3X-.a.Z.uX1 R RX1X-.aX1.5.~ 3.K : 3.5X5.KX- 3XV 3.`X-X-XIX-X-XDXDXDX- RX1X1XDX- RXIXIX-.` cXV.uX,.uX,.uX1X-X-.a RXI c 3.Z `XI RX-XDXVX-X,XDXI R.~.a R R.aXI RX, $.D RX,X1XI.u DXl.K c.a RXIXDX- T cXD BXIXIXI.M.a.ZXDXD hX5 1 : V.]XM.ZXl 1 $.'XDX, x.ZX,.a RX,X, xX1XDX,.a B.M.u.wXl x.9 $XqXlXKX5X5XD.u c $ cX..9XJ.9Xw.[., nX..1 [.jXrXB.YXK V RXIXXXc `Xw XM xX, ` 3XH.uXI 3XV.8XV.rX* )Xt ).K.kX9 ).`XoX9", +" c.'.0XcXK $.} <.u.a R.e C.M M nXK.Y.3XJ :X5 : $XV.].}X- R.u 3 3 ` h R.aX- 3 :XKX3.K :X- 3 cX,.aX1 a._.s % .Xp u UXDXD.M.u 3X1.HXI.`.`.5XX 3.8XV )XVXI.`.5X9XI.8XIX1 cXV.8.8.}.}.s.@ %.m t <XI R RX1XDXDX, U._.sXpXn._ . W.+XG.9X>X>.j..Xb.P L.4 =.wX1XI.a.8.8.kX9.k.k.k.k.k.k.k.k.k.kXt.^X*.^.k.k.^.k.k.^.5X9.^.k.K.k.k.k.k.k.k.k.kX*.r.rX*X*.k.k.k.kXx.k.k.k.k.k.k.kX*Xt.k.k.kX*Xd.k.k.u.kXt q.u.k.K.H.r.uXt.kX*.k.kXdX*Xd.kXt.kXdX*.kXd cXd.k.X c.k.u.r.u FXV.rXV.r.r.u.r c ).u.rXV.r ~.u.k.HXVX5 ).$XJ 5.] `.] : cXc cXV.u.uXI 3.8X1 3.8XIXIXI.`X1.8 3.8.H.5.%.|XyXPXc o x g.'XPXUXO.2Xw.G.>.q.>XH VX3Xl 1 !X.Xw yXUX.XJX1.HXVXI.KXxXIX- 3XIXMXcX#Xh n n M.G.3.3.GXh nXp.W .WX, < cXDXD a R < a R R B.~.~ :X3 $ R.`X-.u aX-X-X- RX1.a RX-X-X-XD R a $ $ h RXD RXI $ 3X-XIX-XD 3 RX, R.a RX-X1.5.uX- RX-.ZXl.Z R xXDXD R aX-XI 3 R aX1X, 3XI RX-X1X- #.5 c.u.5 $ 3XV.5.u ( c :XI.`X1X-X-XIX-XI 3 B R.aX- 3XDXDX-.eXI RX-XI #.` RX-X- cXI aX1.`.ZX1 RX1 R cXV RXIXIXI $XIX-.a RX1 R R.a RXDXDXDX,.ZX1 3XIXI cXJ 5XJ.] )Xc D.2 m `XVXI tXD.a.a RX, h $ c $XcX5X,Xl RXD 3 x $ hXlXDXDX,XDXDXD $X,XD $X,X-X,XJXD $ 1XcXc.9 $.w.W $ $ $.Z `Xl : :XcXJXcXK.9Xl $ h UXK ._._ .Xq .9X3 $.a kXp.FXrXwXH.[.9.-.S k.9XIXIXI ~.8.k.$.rX9.k.k.r.H.r ~X*", +"XD a.a.MXD.a a c.} < < u U.wXqXe # : : c.K '.uXlXJXJX5.` R.u.- `.Y.a.a RX5.' c.u.~ 3X-X1 R aX-.a.a.M.)...x.;XpXnXpXpX+.wXD.MX1.`.`XIX1.u.u.` ~.uXVX5.8XI.KXI.8.8XI.H `XI 3.8.a.a...@..Xe < R tX1XV.D 3XD.M R U.WXn._X> n HXhX0X0 w M MX4.C w.{.@Xw xXIXV 3.8 3.XXX.^.k.k.k.k.k.k.k.^ N.X NXg N.^.k.k.^.k.^XxXt.K.^.k.k.k.k.k.^.k.kX*.r.k.^.k.k.k.k.k.kXxXt.k.k.k.k.k.k.k.k.kX*.k.k.kX*XVXdXkXo.5.k.HX*.r.kX*.kX5.kX*XdX*Xd.k.k.kXt.kXd.k.kXd.k.KX9Xd.r.rXV.rXI.rXV ~XV.5.k.H.r ~XVXV.8 ~ 3XV.k 3.H 3 ( :X5 ) : ` 1Xl $ :Xl : D.8XIXIX-.` 3XIX-.`XI.`XIXIXV.H.HX5 ).].> !.!XU !XPXU ] !.] ' ! !Xw v 1 c.K.aX1.M x v.WXa s.2 $X1.`.uXV.`.K 3.5 D.] k.-Xw.1 y.Y.pXc., 1XcXL.WXe.W U U R 3XD., ` 1 1.' : 1 ' ` T `.% c.K 3 RX- 3 R.a.a.` R.~X-X- R.a.a R R aXcXJ $ ` DX. mXKX1.a RX- RXIX-XI RXI RXIX1.~ ` :.%., $X, 3.w : $ hX-XI.a RXI c cXIX1X,XV 3X-XD.u c.e.u 3.u c.5 `.K c c c.k 3XIX- R RX-.~X- RXIXIX- R.a 3 RX-.a RX- RX1 R $XV.aXIX-.ZXIXD.Z R.eXD aX1 $X,XIX1 R RX-Xl.H RX1 R.aX1X- RX1 R RXD c.DXD TXI c D } }.$XKXX $ c cX,.Z.aXIX,X,.M.aX, $ :.aX5Xl.KXKXcXl.-Xl.Z 3XDX, $.ZX,.aXDXD RX-.a.Z $XD R 1XK.9.YXGXcXs U U.MXsXDXDXl :XlXl cX, $X,.Z $ UX, h h x U.m._._._._X7.-XB UX7X+.J.pXh.[.,.[ xXc 1 VX, 3XI.r.8 ~ ~XV.H.8.8.rXV ~.H", +"Xl $X1X1.a R h 3 <.a t.M.W v.W h.].5 c c R RX-.`X-X5X1X- RXM.a x xX-X, $.wXIXD.~XI.~X1XI.a.eXD a a hXpXf.4.4.@ ^ ^XAX6.x o $.}.}XI.`.8.8.` 3.8X1 3.~.8XI.8XI.8.a.8.5 $X1XVX*.a.}XnX4.sXn x : $.Z 3 R B RX1 R t h xXq.) E v.@Xp.E.@ M.;X>X2 r S S.>XKXVX1 3 3 c.rX9.X.^.k.^Xo.^.k.kXt.^./ N./.X.k./.k.^.k N N.k.k.k.k.k.k.k.k.k.k.k.kXt.k.kXt.k.k.k.K.k.5Xt.k.K.k.k.k.k.k.k.k.k.kX*.k.r.r.KXkX9 ~XVXt.K.k.k.kX*.k.k.k.k.k.k.k.k.k.k.k.kXtX*X*Xt.kXoXVXV ~ ~XV ~.H ~.k.5 ~ q 3 ~.u ~.rXVXVXVXt c.HXV.uXI.HXI.`X1 R c.aX-X- R k cXI.`.8.a.`XIXIXIXI R.8X1.`XI 3.8 3Xx.2 ! gXP.'Xm.0XO.0.D.D.uXcXPXL s $ 3 :.5 $Xa.W 9 y 9 'X5XVXI 3.8.KX5.u.HXI.% m.3.GXHXH.1.T.+Xr.hXM.iXp.w.W C.MXIX- :.] 1 :.Y xXw 1.9XD T $XK : c.u c.~ R c.e.~ R.aX-X-XI.aX- a a.aX-X, $ x.aXl 3X-X1 3.a.~XDX-.a.a R R R RX1 R $ D D mXl.%XcXJ k.2 `XDXD R R R RX-XI c 3 RXI 3XJ `XV RX1XI R R.uXIXMX5 3.u c # cXIX-X-XIX-.a RX- 3X1X-.aX-XDXI R RXl x.~ R R.~ $ T R.~X- 3 $X-X1 hX1XD R.e TX5 RX-X1X1.eXl :XIXDXIX,X, :X, :.9 TXJ.-.3 m D RX- c c c )X1X1X1X-X1.uXDXI.aXD R.a RXlXlXl c.5 T :X5 cXlXlX,.DXDX,X,XD $ $X-X-XDXDX, cX,.ZX,X, h.M.M a < t.M.M.M UXDXD.} c `XD.aXDXD.Z s x $ h.} R.M.} u U.mXqXq.YXpXcXB.YX4.FX4X7XwX%Xr k E.Y .Y `.}XIXVXV.8 ~.8 ~XV ~XV.8.8.r", +"XI.KX,XDX1XI c.e.a.a tXs sXe.M.a.5.5.K B.5 1XlXDXV.~.`X1Xl U $.9XD $ $X,XD.aX1 R.~ T #X1XD.ZXD $ $ h p.).@...sXi.B.BXf LXp.pX,.Z 3.`XIXIXI.8.a.`.8XIXIX-XIXIXI ~XI.KXI.5 c 3 3.aXp o.. y x cXI a a.aXIX- R.aXDX,X,.} C u.WXe.sXe.).Y.W CXF .XfX4.E gX5.8 3.8 #XV NX9.k.k.k.k.k.k N.k.X qXk qXkXx.I.X.kXtXxXj.K.k.k.K.k.k.k.k.k.k.k.kXt.k.k.k N.k.k.k N.K.k.k.k.k.k.k.k.k.k.k.k.k.r.k ~ q.r.5 ~.r.r.K.^.KXt.kXt.kXt.kXt.kXt.kXtXt.k.k.k.k.k.k.kXo.K.r.rXVXV ~X*.8 )X*Xx.K.8X* ~ 3 ~.8XV ~.H.u.u.H.HXI.H.8XI 3XD 3X1 1 x 1 1XMXIXI.aXI.`.aXI 3XI.`XIXIXI.`XI.H.H.H.K DXO 9Xm.'XK m (XD.u.uXI.5.!XL s.9.5.HXd :.' b H &.q.DXD.HXIXVXIXoX9.5.` ).%.%X.XUXw.+X0 W W.y W.g Xp.WXe.aX1.ZX1X5X5 $ t t.* h $ R a a RX-X-.`XV # cXI R 3 R RX-X- R.aX-X-X-XIX-XI a.aX-.e RXIX,XI R.u RXDX-XI RXI.a R R RX1 3 `XDX1Xl.e #X,XD xXI $X1X-XDX-.a RXD.a a 3 h c :XlX5., ` :XJXJ., mXc cXVX-.`X-.` 3.k #XD RX- RX1X-X- R R R R RX, tXI $XlXK :.2Xc 5.3XJXJX1 R mX, :XJ 1XK.]., D.,.2XI.a.` $Xc.3 TXJXH.,X. 1XcXKXK 1Xc.Z.ZX5X5X1XI.u.5X5XIX9 3.`X1X1 R.u RXDX,X,XIX, cX5 c.u #.5X, 3.5XMX5 $XM $X,XD.a RX,.Z.aX1.ZXDX,X- hXD.M $X,.M.M.M U.Z._._.w h UX,.}XM $.aXDX1X1.wXD.a.aXD.} a.M.M.M uXe._XG xXqXp.FX4.m._Xp MX<.Y >.F U.p.F .-.a R 3XV.8.r 3.r.8.8.r ~.u", +"X- 3.u.uXV.uX-.a R t.N x._ C.a R.K.XX-.5.u 3X,.u :XV.`XlXl $X+.p 1 )Xl 3 3 RX- c : :.,X. D ` T $ h.ZXeX+.s.s.sXb.s.P.J % %Xp 'Xc $X5 c.`XI.`.` 3X1X1.` 3.`.8.}.`Xx.KXl : #X5.u.'Xw.; vXa.M RX-XI.a.a < R.a.aXDXD.Z R.M t.M.M u.M.M.Z C.W.m.JXb.@XwXU.DX1.` 3XV.HXo.5.r.k.k.kXd.kXd.K.k N.K.X.kXg.K N.k.kX9.k.K.k.k.k.k.k.k.k.k.k.k.k.kXo.kXd.k.k.k.kXX.k.kX*.k.kX*.kX*.kX*.k.k.k NXtX*XxX9 ~.r.u.k.XXt.k.k.k.k.k.k.k.k.k.k.k.k.kX*.kX*.k.k.kX*Xo.r ~ 3 ~ ~ ~.5 3Xk )X*XV.rXV.8.r ~XVXV ~.u.kXd 3.HX1XIXI.8.0 )X- x `.9 ` 1 `XIXI.8XIXI.8XIXIXI.`XIXI.`X1X1XI.HXI.HXa g !XP g.2.9XDXI.u.u 3X5.> 9.9Xs BX1.H $.Z.W 2Xa TX,.`.H R 3 3 : 3.8XI :.2.5 RX, x.9X2X>.jX>XnX>XrX4.F h.W a.uX1.H c cX-X-.} a <X- RXDX- R.`.a.` 3 3 c 3 cXI $ 3X-X-X-X-X-.a a.aX- a.a.a.a.aX- 3 cXD.u.aXIX- R a B R.aX, $ $ $.2 :.a RX-.aX-X-.a.u.}XDXD RXIX- R t R R.aXI 3 `XMXl.,.Z.9.D $X,X,X5XD hX-X-.aX-X- aX-.u c RX- R RX-X- RX-.a a.}XD aX, $.9 $ $ $.D :X1 c R.Z.]XJ.9Xl : xXl.w.9 D.u cX1X-Xc.5 cXlXD.ZXDXI.ZX- RX,X- aXDX,.w 3XDX1X1.5XlX9XV.5 3X1X-X1.ZXDX1XDXD R 3.Z # $Xl.] ( )Xl T mXK ).9 $ 3XDXD.uX,X, RXIX, cX, R.a $ c U.a.a.W x._XnXG.F vXq._ h E h h.aXD U 8X,XlX,.ZXD RXIX,.a.M R U.Z x._XGXnXqXq._Xr.YXq.p M W >X4.i > 1.YX3X-.8.8XV ~ ~ ~.kX9.r ).k", +" #X3 #.5X5.HX1.a R.M._ y U.a RX-.k.`.` 3 a R.K #.kX9XlXD._ sXn uXDXV 3 R.uXIX, 3X-XX c $.K 'X9XcXKXwXKXc.j u * v ..@XF p.. .XwXG :.2 `.`.}XIXIX1X1.8XI.a.aXIXI.uX* D :XJ.,XcXKXw.+Xr.;XKXK T #X- <.a.a R.a R.ZX1XD B R.M.a t.}.M.a $.M.WX4 -.PX4.E yXDXV.8 c.H.8.u.XX*.k.k.k.k.^.k.k.k.k.^.kXo.k.^Xt.k.X N.k.k.kX*.k.k.k.k.k.k.k.k.k.kXt.k.^.k.k.k.k.XX*.k.^X*.k.k.k.k.k.k.k.k.k.rXo.K.k ~ ~.k.kXtX9.k.k.k.k.k.kXt.kXt.k.kXt.k.kXt.k.kXd.kX*Xt.kXV ~.r.rX*.u q.X.K.8XV.r.8 ~XV.8 3XV.H.r.u.KX*.HXD.HXI.` :X3.ZXDXK .-Xc 1.a.}.aXI.8X-XI.8 3XIX1.a.`X1.8.8.`X1.HXIXVXD.' g T x.H 3XV 3.u.8 R TXPXa.=.D 8.K.K.WXG o.s gX1.8.H :.5X1 ) )X1XI.uXVXD.ZXD CX+.YX>X8.CX>.<X>Xr._ hX, a 3 R.`.8XI.`.a.a.a.a.a <X-XD.`X- R.`X-.`X-XIXl x cX5 # $X5 #.uX-.a.aX-.a R R R RXIX1 R.a c D 1.Z $ : 1.,XJXJ.,XKX. Y.5 aXIXIX-.a.aX- RXD $.a TX1.M.a.a.a.aX- RX-X-.aX1 $X5X1.M RXD.a h 3X,XI.aX-.aX-.a R a.u hX-X- RX1X-X- R R R RX,.a t a R RX1X-X- $X1XIX, RX- R R RX1 R R.aX,.H.ZX- cX1 :.aX1XIXIXI RX,XD.a.MXD UXDXDX,XD.DX,.H 3.5XI.5X*XVX5X1X1X-.u RXDXDXD.M.aX, $.u.K )XXXlXl :.5 x.Z $ $XDXDXI xX,XI.aXD h.uXD R R.M hXD hXe.iXe._XnXqXn ..mXq._.i.l $ $.ZX,.w.ZXl.ZX,X,.u.D R.a RXD h.W.WXe xXe.MXq xXeXqXq._.pX%X4 >.p.Y.F.YXMX-XI ~.r ~.kXo.X.k 5X9", +"X,X..,X1X. 5.a k <Xe yXL t R R.]., 3.0 R s xXXXV.~.8 R.a.W v.W.M.a cX-X-X1X1X1X- cXDX1X-X1.`.`.K c.a.}XeXe.W v v v u CXs.s.@.;.j.WXD ~ ~X-.8.8.`.8X1XI.a.}XI.`.$XJ., ).}.8 3 $XH yXGXGXG.,., :X- RXI R 8 tXV.a c 8X1X1X1X-.a tXD R h vXnXb.P L.x yX.XV 3.H c.` 3.rXXXt.kX5Xd.kXd.k.k.k.k.k.k.^.k.k.k.kX9.kX*.K.k.^.k.k.k.k.k.k.k.k.k.k.k.k.k.k.kXt.X.5Xt.k.kXt.^.k.kXt.k.k.rX*.K.k.rX9.rXVX*.kXt.k.X.k.k.kX*Xt.k.k.kXdX*XtXdX*Xt.kX*.kXt.k.k.H.K ~ ~.u.8X9 ~.5.KXV.r 3.H.H.H.8.H ~.H 3.u.k.5XV.8XI.H.HX5Xx.5XI `XpXp.jX%Xe $ h c 3X1.8X1X1XIXI.8.`.8.` 3.8.`.HX1XIX1.HXI.HXI.8 3X1 3X1.5 cXI.uXPXL.=Xs C 3.}.}.).=XLXK.a 3 $ TX1XI $X, 3 R s.9XKXDXD.a v.@.@ L w.4.{.;X>...m U <.}XI.aX1XV B.u.K R.a.aX-X-.` RX-.`X-X-.a R.a.aXDX-X- 3.u 3XD :.aX-.`.aX- R R.aXD RXl $XlX-X.X.XJXJ.,X5X.Xl : $ : :XI.aXIX- R.aX-X-.a.MX-X,X,X. x.,.w.-.a 1XK.l T ).' :X. T.,.]XKXw :Xw h a $ R R.a tX- <X-.a # R.a RX-X-X1.` B.`X-XD 3.a R R.a RX1 B 3XD.`X,X,XD R R R.aXDXIX1XIXDX,XIXIX1X5.K.a R 3XDXIX,X,.aXIXDXD.DXD.DX,.Z R.u B.uXI 3 : 3.KXV.8X1X1.u RXDXDXD RXD c c cX*.K hXD.Z xX5X, $X,XD.ZX,X5 RXI.aX,XD.Z R.a a.a.} hXeXe..Xn.@.x.x H.<.J ..F._._.FXBXq.M U 3X,.M $XD.ZX, x xXD 8 tXs $X,XD $X,.Z $ R h x 1 v.F z.[XpXB.p X4 >.l.a.8 ~.r.rXx.^.u.kX*", +" $.2XJX- T.i :.1.Y.EXe <.M R 8 5 m.5X;X,X; x m.5.K.5XD U._ v.*XwXlXK $.] 3.] ` D.KX,XIXVX-XI.H cXD.}.iXe vXn.W.NX, CXD.MXn . . S MXJ T cXM hX1.8.` F.} aXIXIX5.%.|XlXIXIX,.aXK yXG sXp x $X1.KX1X1.a R RX1 h.a.u R BX1 R RXD.}.a.a $.W.@ %.CX>.+.+X. :X5.5XlXIXI 3.KX*.kXdXo.k.^.k.k.^.k.k.k.k.k.kX*.KX9.k.k.k.k.k.k.k.k.^.k.k.k.kX*.k.k.k.k.k.k.kX9.kX*.k.k.k.kX*.k.kX*.k.k.rXx qXtXt.r.kXd.k.k.K.5Xt.k.kXd.kXt.kXt.kXt.kXt.kXd.k.u.kX*.uXt.H.K.rXVX*.XX9X9.r ~ ~ 3.H 3.HXI.8.H.8.rXtX*.u.5.r 3.HXI.`.5.k.$Xl `XpX+ WXr > 1 :.5.8X-X1 3 3XIXI 3XI 3.`XVXV.HXVXV.H ~.8.8.8XI ~ 3.~ ' mX5XDXV.0XL.=.= 8 < E.M.=.=XaXGXDXI.0 'XDX1.KXDXD U.YXGXGXc U UX+ ^.@Xf.C L 0 LX> . E h.}.}.M R.DXD.8.u q.} tX-.aX1 R.`X-X-.~X1X1 a R.e h.~X-.a.e.a a c.K.a.a.~.u c.u :.5 kXKXlXJ a :.ZXlX1.a R.KXD.~ 3 cXI RXIX-.a.a.a R h : c R.a.ZXD tXUXc.O 1.3XKXcXc :Xl `.2 :XcXl.Y.iXeXH 1 `.M.a.a ` R <.aX- a.u.a aXI RX1X- BX- RXI.e.}.a RX1 RX1X-X1 c 3 aXI 3.uX3 x cX1X1XDX,X,XI $ : $X3XMXl 3XI.~X,.ZXI h R.M.Z.Z.DX,X,X,X,XD.aX,X-.` R.5 # 3.5XI.`.`XI.D R.a.M.MX,.Z.KXV.KXVX5X, $ x.wX,X-X,XD.Z 3 xXD.a.aXDXI 8.a.a.a.a RXpXp.xXr.x.@.@ ^.P.C.4X2X2.x.<X4..X+.-.Y xXcXl.'XwXJXcXcXlXDXD t.a.Z.ZXD.Z $ $ c.uX,X,.WX,XeXG.pXp.[XeX+ >X4XBXcXIXI.8.r.`Xd.8.8XV", +" R $ $ $ $XD sXe n.YXe UXD $X- : ` :XJX..2Xc.OXlXM.a.a yXG.N tXJXH.| DXc 7 5 IX. ' ` mXK 6 x kXD.Z.W vXp.. U t h.a.a.} hXsXe vX>X>X0.9.9.iXc.aXI.HXI 3 RXDXIXo (XlX1XD.M.}X+Xp b.sXe.* #XIXXX5X- RX- R.M.} 3.a hX1XI R R.a aX-.a.} x.W ^ %..X2 y =XJ D 5 mXJXM.}.r.K.5.k.k.k.k.k.k.k.k.k.k.k.kXd.kXt.5 N.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.kX*.k.k.k.kX9.k.k.kXt.k.kX*.^X*.kXt.r.5 ~X9X*.rXt.k.k.k.kXo.^.kXt.kXt.k.k.k.kXt.k.kXt.kXt.kXt.k.u.rXV.r.kXI.r q.5.k.u 3.r 3 ~ 3 ~.8.8.H.H ~.u.k.k.k.5.uXV.u c.u qXMXXXHXHX+ W.p.pXnXp XB cXIX-.`XIXIX1X1XX.k.K :X9 :Xo :X5.5X9X- 3.8XI 3Xl.]Xw kXl cXIXDXGXL 2 2 h t uXa 2 OXKXK 3 `.KXVX-.]X- kXG =.+.j.j.1XGXS = S M H.4.{X:X> ^ . E E.} h.MXDX-X,.u.KX5X-XDXIX-X- cXVXl.u.eX-X1X-X-X,XD a RXIX-.aX-XMX1 3XHXc :.]XK :Xl.u h $ a.aX,XD $ R R RX-XIXI.u R R.a.~X1X-X-X-X- a.a tX- hX,.M $ $X,XDXD.a.MXI.a RX1.}.a a < a UXq.FXnXq h hXe hXD.a.aX- #X5.8X-.a a.aXI RX1 RX-XIX,XK 3 c B R R c.u B RX-.a RXlXJX. `XcXJXJX.Xw 1.OX3.%.5XI.`X-X- RX1 hX, $XDX,X, hX,X,X, h $X1.u RX1 RXI cX1.KXX cX-X- cX,XD.aX1 cXDX5.HX5.HXlXD.Z $X, $XDX1XD xXlXD.a R a.a R R.a a.a.M <X+Xp.@XnXi %XbXb.v.s.vXi ^XfX>.x SXpXrX< [ xXl x c hXD R tXDXDXD.ZX,X,XD $ $.Z.ZX,XD.a 8 U.M.- n.-.F <.i.Y .FX+X, 3XIXV.H FXV ~", +" :X.X, $ h U.W x t < R R.*X1X-.` a :X1X,XD.a c cX-.Z.9Xe R.aX1.ZXI.D )XJ D.5XxXlX;XJ kX#XH.O.W.WXGXL U C < U.}.a cXD R R u.W.s.. vX4XnXqXeXsX1X-.` RXI.8XVXVXVX1XD.} 1 yXn 0.s.s.M.a.a.KX9.KXIXI.a.a.a h.a R h.M.M R R a cXM.M c.WXGXn.s ..+XrXw.-XDXV.Z.Z 3 3 3.KXxXtXo.kXt.K.k.k.k.k.k.k.k.k.k.kX9.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k N NXt.k.kX*.k.k.kXt.k.kXt.K q.r ~Xt.k.kX*.k.kXt.X.k.kXt.k.kXt.kXt.k.k.kXt.kXtX*X*Xt.u ~.r.H.r.u qXo.uXx.`.rXV ~ 3 ~XV.HXI.8.H.u.k.k.uX*X* N.u.H ) kX3X. ) I.3XH.[.L M.yX<X% [XKXI.8XIXIX1.HXI.H.kXX.5Xo :.5.u.Z.5 :X5.8.8XI.8XJXHXH g mXDXIXIXD $XG 2 bXeXeXe /.=XLXmXl R 3 c 3.H ) D.9Xw.j 0.@.;.; M.+.;X0XC.;X: S SXf.x...s p p.F $.i.aX-.a R.a #X1 B 3 cXD :XIXl 3.a R R RXI R.a RX-.a.eXD.~ :XK :XJXl cXlX,.uXD.eX-XDX1 3 BXD c RXIX1 RX-.a.uX-XI R.aX-.a.aX- R.a.a RXDX,.aX- R.a R.a.a aXD.a a h.a a.} hX7.iXAXq >.F.-Xq.i h x h 1 $XD.`X-.a.a $ UXD EX,.aXD.aXVXc T.Z.wXl.5XJ `XJX-X-XI R a x xXlXK.Z.ZX,X,.a.Z cXl # R.aXIXD RX,X,XDX, xX,.Z $ $.Z hXD $X1X1.uX1.`X- 3 3 3.5 c.}XI.a 3X,.D.ZXDXDX9XIXxXo.D xX,.ZXD.wXD $ $.Z RX-.a tX,.a R.a R R.M.a.M._X+X> .XbXbXb.s...v.v.v.v.v.v ^ H.x >.. x < a.M.ZX, a RXD RXD RXD.aX,.aXDXlX,XD.M.MXD 3 $XlXqXe.FXB 3.a.} 1X4.FX+X,.}.HXI.rXI ~", +"X,XU 1.,.[Xc yX0.j x 1.}XDX,.e.a.a.a.8.aX1X1X1XDXM 1.[.' RX, cXlXD.u `X9.5X-.DXVXI RXD.YXpXqXnXp vXeXs C u t U.a 3XIX1XI RXD u.W ..@X6.JXf.@XK TXD.H 3.8 RX*.H R 3.ZXm HX>X6 p.s.M t.}X-.uX-.`.~ R R R R 3.a.}X,.W.}.M U.a R.}.a h U.s J pXb.x.@.xXw h c.DXV.H.r ~.r.5.k.^.k.k.k.k.k #.k.k.k.^.kXd.k.X.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.kX*.X.k.KXt.k.kX*.k.kXt.K.kX9 ~XtXt ~XtX*.k.kXt.k.kX9.k.k.k.kXtXt.kX*XtXd.k.k.kXt.kXt.u.r ~XV ~.uXtXo q.kXI ~.u.r.8XV ~XV ~ ~.H.r.u.k.kXdX*.uXo.8 3 $Xl ).u : #X..[.SX2 W.pXpXr.[.i 3X-.`XIXIXIXI 3.8X-.`.8 3.8.H.HXI.`.8XIXIX1 cX.XHXJXGXw.ZXVXI 3.M v b 2XL b oXa 2 b g hXI.K.8 )Xt.8XV.MXGXn.@ ^X6X6 0X6Xf w.CXf.4 %XbXA.4.P....._ vXq xXeX,.a.a.aXI x 3 c RXI.~X1 R.ZX1 a.aX-.aX, R R R.aXIX-X,XlXJ : c #.u xXI cXl :XI 3XD :Xl.~XIX,X1.Z $Xl : $XD RX-X-X-XDX-.a RXD RXD.a.Z.a 3.` RXI.a.a.a a.M tX,.}.} U.}.i.m.J.p WXrX<.y.S.1Xr.,.OXKXh R.a a.MXHXHX%.SX<X< kXwXJXJ.%XcXJ x.,.|X3 k 3.a a.aXD.eXD.aXI h R RXD t.Z cXD :Xl.K B.~XDXDX,X,XD.MX,.WX, h.WX, 3.ZX, RXD 3 RX1.~.u.} R #X5XIX1XIX1XI.eX1.H.5XVXV.5X,.Z.w cXD.Z.ZXDX, RXDXD.eXDXD tX- R RXD t.M.M pXG H.{X6...BX=X= /XaXL 2 2.B.BXiXf HXn._Xe $ R.aXD.aX1 R BX1 RX,XD.ZXD.} x.a.a.M.M.MX-X1 :X,.wXqXB :.MXI < >.FX4.-Xe.a.}.r ~ ~", +" R $ cXe xXn.jXw.9.9 TXJXKX3.a.a.a.a a.`X1XI.D.i x XU.9.uX*.]X3.`.KXJ ).`.5.k.` RX5 1.M UXeXn._ u C t < u $ h.ZXD BX1.` cXI.u U._XbXb.BXA . oXl R.`.}.8 c ` T.9 y.YXn v 2Xp v E.} a <XI c c :XVX-XI.` R 3X,X, U.MXsXnXn.d < U.a vXnXn p p.. w =Xr ` # B.8.r F.8.8.^X9.rX*.k.k.k.k.k.k.k.kXd.k.kXo.5.k.k.k.k.k.kXt.k.k.k.k.k.k.kX*.k.k.k.k.k.kX9Xt.KXt.k.k.k.kX*.kX*.r )X9.r ~X*.kX*.k.k.k.k.k.XXt.kXt.k.k.kXt.kXt.kXt.kX*Xt.u ~ ~XV.8.rXI.k.u.u.H.8XV.HXV.8XV ~ 3XV.HXV.H.u.k.uX*.k.kX*.5.8.5XV.HXI.8.K c.,Xc yXcX+.pX+X7XB.MXIX-.`.a.`.HXI.`.`XV 3.`.8.].XXJX9XJ : :.5X3XlXZ.,.+.9Xw kXMXI.a.M 1 J 2 &XGXmXG.q.' 'Xc c.uX9.`.8.` $ 3.jX>.;.;.;X0 H H.q M H.@X8.sX6 w.CX>XfX> .Xn.p._Xe .M RXD RX1XIX- RXD.aX- R.,X..u m.DXH.Z RX,X1X,XI c ' 3 RX-.` R R.` R RX-.`Xl.% `.3X5.]XlXHXJ., k.u BX-XD c cX,X- aX1 a :.- R.aXDXDXD R R.a a a <.a.a t.}X,Xe x E._.m.F.<X<.gX<.L.S.TXH [X%.[Xq.-XM.M.M.a.[X%.g.TX< nXh `XlXD.9 3.M.a.a cX5.u : c aX- R.}.a R tXD $.a RXD.a $XDXV :XlXI.a R.a RXD.aXlX,.aXDX,X5 x.ZX, cXDX-X,.uX- R 3 RXI cXM.u 3 R RXIXIXI.5 TXV.u $X1XDXlX, $XD RXDXD.D.aX,XD.a.MX- RXI.a R R.M t s._.@X>X> ^..XbX= C.D.N G.N.s.m.v % ^.4 ^...W x.i RXDX,XD RXI RX-.u.aXI R.Z.w.}.wXe.w c.}.8 ` a hXe.F.[X,XDX1 EX+XnXp.p.l.a 3XVXt", +"XD.* < U CXe v u h RXDXDXV.ZX-.aX,.a 3XI.u.uXIXD uXqXeXDX9.KXX.HX5.KX5.`.8X-.` RX-XlXl xXG...).d.a.a <X,X, $ R R B.H BX1.DX-.a.a < u % %XbX4XGXI 3 3.a 3Xl gX>.@X> v 2.s.w.M R.a h c 3 $ $X5 cX-XVX5 3.u.DXD R.d v...JXp v.M u.M.)Xq .Xb E uXi.;X>Xw [ ` :.HXI ~.8 ~.u.5.k ~Xt.u.kX*.k.k.k.k.kXj.kX9.k.k.k.k.k.k.k.k.k.kXj.k.k.k.k.k.k.k.k.k.k.kX9.k.k.k.k.kXt.k.k.kXk.^ ~.K.r.rXt.k.k.kX*.k.k.K N.k.k.kXt.kXt.k.k.kXt.kXtXd.r.r ~ 3 ~.H.r.8.kXV ~ 3.r.H.8.H.8XVXV ~ ~.H.r.uXdX*.k.kX*.kXV.5.u I $Xx.].5X5.]X3XJXHX< M =.j MXn <XIX1 3XIXI 3.8X1.8.`.` 3.` T.5XJ ' : ).,XJXc.-Xh n.OX+Xw.9XIX,.u `.> b bX0.O.+.O !Xw., D )XI.k.HXI.HX, t.9Xw.EXCXCXm.q.qXCXCXU M.;.; S H ^XiXfX6X>.CXrXpXqXq < <.aXIXD RXDX1.aXIX,X, mXH.D D.O IXJXJX.Xc.9 mX. k KX,XD a R R.a R RX-X1X-X1 :.| k.3.2 I D ` : c.aXIXIX- hX, 3.a.a.a aX1X, R hXD.ZXD.3XlXc 1X, uX,.[.W.9 1 = Xr.g.[.1.h.[XB .-X+.gXp._Xq E._.FX+Xn.i._.F.<X%.p.F x U R.a.a cX-XIX- c $ 3.~.aX- 3X-.aX-.M 3 RXDX,X1.Z B c $ ` 3XK.uX,X5.Z.9XJ.9.-XcX, 8X1X, $XlXlXD h R.M cX,.Z 3XI 3 RX5XMXI.~XIX1X1 3Xl.K.u cXIX, hX,.wX1XDX-X,X,XD 8XD.M RX, 1XlXDXl x.uXD $Xe._ v .X>.C.B 2.s.MXD.M.a UXe.s vXb 2 ^ w.E v EXp.M R.aX,.}X- RX1.ZX-XIX,.9 1 1Xc 1.[XHX, DX*XDX,._XeXp.[X,X1XI.Z yXqXpXB .aXlX9", +" R.}.M t.WXn.) tX,XD RX1 RXI h c c #X,.u BX-XD t pXn U 3.k NXo.kXV.u ) 3.~X1 3 R 3 `.-.9.W U t < a.} 3 cXM.} RX-X1 B 8X5X-X-.a.a < <XFXA...YXD.}XI #X- h xX+ ..s %.sXe.).*.a.a.`X-X-.a R.a BX-.Z.H.k.uXx $X1 <.w.sXpX+XnXnXG vXp..XnXe u <.MXe JX>.+X#X<., 3X1.H.H.H FXtXx.r.r 3XtX*X*.k.k.k.^Xd.kXxXt.k.kXt.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.X.kXt.kXt.k.k.k.k.kX9 5.k ~.k.k.kX*.kXt.k.k.kXo.k.kXt.kXt.kXt.k.kXtX*.kXt.kXt.r.u.r ~ ~XtXV.K.8XVXV.H.H.HXVXV.H.H.8 ~XV.rXt c.k.kXtX*.kX*X9XI ]Xx m ( )XJ I.3.GXh.O.OX<.1XZ.-.YX,XIX-.`X1XI.`XI.8.`.H.`.8.8XIXI 3X5 3X1 R.MXD.[ yX+.YXw x x.]XJ.3Xh.> &.nXc.W cX, 3.uX5.HXo.`X1.8X1 cXD $ =.> &XO 4 !XOXOX;XUXh.O.T.T ^.@X6 ^ 0X6Xn.@X>.@._ U <.a.a.u R.aXD $X,XDX-XD.ZXIXc :XK.'Xc.'XlXl.' 1 $X5XI RX1.aX1X-.uX-.`X- R.8 3 '.K 3X-X-X-.aX- R.a c :XKXJ # $ c RX-.a.M R RXDX,X,X, U.YXq.Y = [ [Xw.1.[.LX<.h.1.TX#X#X# | ` XB .p.g.FXq.J.F._XqXqX+ X7X%.gX7.FXeXe U.a <.}.} <XI.u.eX-XI R RX-X1X-.a R R.a :Xc m `.9 :.,.%X.XJX..2 T.jXJXc mXcXPXIXDXDXDXIX, h $X,.a.}X, x tXDX,XDX,XDXl $XDX1XV c.k :XoXlXJ #Xc '.a.a $XDX,XD.DXDX,XD RXl.YXDXcXJXc.]XH x h.M E E..X>X>...v.s R hXD.a.M U.M U v.s.v.v w.<._.F h U <XKXKXD :XK IXKXwXJ.3Xc.-XG h 1 h h | cX-XD h E .X+ yX,.`X1.ZXUXpXpX%X7 1.2", +".a a t.d vXe <.a.}XIX1 RXD.u h.}X- a.a RX1X- R.MXn 2 $XM.X.5Xx.K.r.k.5 BX5X, x $ $.Y $X, t <.MXDXD 3.` h.K 3.` c cX-.ZXI R R RX-.a t.. {..XpXs RXD.a 3 hX,X+.<.. p.N tXlXlXIX-.`X1 B R R.aX, cXDX1.`X5X9XlXDX, sXn ..E UXeXe.ZXK x.W.M.a.a < v O 0.+.h.F.j y y.Z 3 F 3.H.K ~.u ~ 3XV.8.kX*.k.k.k N N.k.k.k.k.^.k.k.k.kXt.k.k.k.k.k.k.k.k.K.k.k N.K.k.k.kX*Xt.kX*.k.k.k N ~X*.kXtXt.k.k.k.u.kXtXx.k.k.k.kXt.kXt.kXt.kXt.k.kXt.kX*Xt.k.u.k.u.rXo.H.H.HXV.8XV.H.H.r.rXVXt c.kX5XtXdX*.k.K.rX5.k.`.D.HXVXDXIXIXl $XcXJXK [.wXpXpXe.Y XDX1.a 3XI.`XI.`XIXIXVX5.u 3XI ).Z.K : ` x.,XH [.O = =X.XJXH.%XHXH g.n.' TX1XIXI.}.`XXX*XI.8.`.8XI cX1 x.G = g yXPXPXU.q.' yXG.E.+ H ^ 2.)X= .Xn / ^.@.E._ E h xXDX, RX, 1 c.Z.Z $XcX5 RXDXIX1X-X,.e R a hX1 R RX- R R R R RXI 3X1X-X1X- c.KX- 3X1.a RX-X-.a.a $Xc ` TX. `.GXD.aXI.e.a.M 3.Z.}.WXe x M.p.YX+.jX+ n.pXHX<.g.gX7 VXMXXXM 3 h.l VXBX% >X%X7.g.< > .mX%X%XB.gX7.F.F.iXeXeXDX, 3X-X-.u.D.HX-X1 c.e R RX1 RXI RXK.wXlXw T $XlXK x :X,XlXD RX,XD UXDXDXD 8X1XDXIXDX,XD h.aXe h.-.M.w.W.Z 1 1XwX. `.u # D.$ }XJ.,X3X.Xw.Y RX, $ xX1.Z 3X,XDX,X, TX,XK 1 c.Z 1 : h.a.a <XeXqX4 H.. O.).M.M.u.a R.} h UXs.s O 2..X2XA >._.i t.-.[Xw kXc.-.u $ xXl R.MX, $ $ :X5X,X3.a 3.MXe v >.jX. c.kXV x.[.F.FXBXp.}", +" <.a U v.s.M t < a c 8XV :XM a aXI.M R.a RX1 8XeXn.M x :Xx.r.`X9Xt.X.5.5XlXl.-., =XlX,.9 3.uXDXIX1 R.~XV.8X-.`.uXVXI.uX-X1.a.a.M.MX,Xb.s.E vXDXIX1 3 3.} xXrXrX8.Y XBXM cX* :.DX1X, $ $.u.}.aX-XI R :XlXDXD.WXn G xXq U.Z $ sXl $ R.a tX,Xe 0 0X:XAX4XpXnX+.-X5XI ~XV ~.8X*.8.rXV.r.k.k.k.^XjX9.k.k.k.k.k.k.k.kXj.k.k.k.k.k.k.k.k.k.k.kXt.kX9.k.k.k.k.k.k.k.k.kX*.k N.rXt.kX*.k.k.k.kXt.kXtX9Xt.k.kXt.k.kXt.kXt.kXt.kXt.kXtXtX*X*Xt.u.kX*.k ~XVXIXV.rXV c.rX5.KXoXo.^X5.k N.K.k.K.kX5.kX5XVX1 3X,X5 `X,X5.} 1X,.9Xq $._XqX4._.Y.aXD RXIXI.8X1.H.`X1XVX3XIXl.KX5 DX3 V m.9XJXw.1 M.>.GXh.3.%XHX.X5X,.nXD h.uXM.8X* N 3.K.8XI.HXI.8 h 3XB.Y.j HXw g 9XaXL b.w b.qXm b.s /.W.).).s b ^.vX>...F .-.,X. TXJXcXw.-XK mXKXJ 3X, $X,.Z $.ZXlX5.ZXD R R.a R 3X, RX-X1X,X- 3X1.a.K.5 R.u.~XIX-XI R t RX-XlXIXD 3XDX- c.}.ZXJ cX1 h $ RXe._._.mXq.J.FXpX7 [ k.g V .lXM.5XM.8.a.a 3.g `X7X<X%X<X%X<X< > X%.[ >.[ kX+Xp._ pXB [Xl $Xl.5 c TXKXJ.]X3X1 RX- RX1X- RX1X1 RX,X1.a $X5X, R.Z RXD.aXD.aXDX,XIX1XIXDX1X1XD.} U hX%.j [ z [ nXh n M n 1Xe.3 :.5X5.5X3 : : $X, h $.9X,.w xXD.9.w 1XKXK x t.a.MXDXD xX,.a.} < <.iXGXnXr.@X= 2.M.M U.Z 3 RX, $Xs.W.vXn 2Xf W >Xq.m xXe < x c hXD x R TXHXcXJXJ.,XcXJXK 3 `.u hX,.Z._XnX4.[.-XIXI R.lXB >X% n.-", +".a <.N vXs.M <.a.a a.5.'XJX5XMXl ` $X,.ZX,.MXDXGXs._X, `X5 F.H.u F.K.uXI hXq.9 x.Z.MXlX5X*XI.`X-X1X1.H 3.8.`.8.a.8 :X-.aX-.M R tXD.s ^XfX+ U RXD.` 3 c.aX+X> H yX..2 , 6X# I.GX.X,Xl $.uX-X5.a c.9XI : h.i.MXL v 8.9 < $ #XlXl.uX5 c BXD t._..X>...{ W.LX: MX0.wXDXI.u.8 3.k.`.u.r 3X*.u.k.k.k.kXg.k.k.k.k.^X*.^.k.k.k.k.k.k.k.k.k.k.k.k.kXt.KXx.k.kXt.k.kX*.k.k.kXjX*.kX*.k.kXt.kX*.k.kX*.k.k.5.kXt.k.k.kXt.k.k.kXt.kXt.kXt.kXt.k.kXt.k.k.uX5 ~.8Xd.5 m q D 5 Q ) 5.& 5.A q ] q }.k.| q 5 `.u.] D.OXhXhX. 1 < #XK 1Xp.-.<.F E x R.}X1 3X-XIXI.8XV.5.5.K.uXl RXIX-.8X5.a RXl nXmXwX0.OXJXl : m :X1X1.HX1.H D.5.8XXX*.8.uX*XI.M.iX%.[X2.p.<X2 WX0.9 bXPXL.0.O.> HXmXC b uXe.W.N 2 O bXC.E [.pXw $Xe.M hXD.aXDXDX-XDX,XDXI tXI aXHXKXH ` :.- :XlXc TXlX- a.a.eX1X,.~X-XIXl.~ RXI.8.e R aX1.a RXDX- R.aXI RXIX- c.a 1X,XD $X,X, EXe.F.pX%.g.gX%.g [ X3 XM.l # h.a 3.aX-.a.aXMXBX7XB XBXBX7.g.[.g.g.[X3 XBX7X%X%.F v.Y =.-XH.'XKX3Xw ) T.u x.uX-.aX1X- R 3XDXDXDXI x 3XDXl.ZX,.w.ZXD.aX,.ZXDXD $ c $X1.DX1 t.M <Xp.S [Xr nXh.x.YXp.YX+ v x h : :XlXVX5.HX1 $.,XKXe.-XK kX..9XlXKXKXU.,.'XDX,.M.MX,.a cX, <.a < E.FXqX>.@ O v.)XD.MXe.wXlXDXD 'X,XsXn JX4 S z z ..m EXe EXq xXcX. x.[XK.-.9XK.0X5.DX1 # ` $XIXI RXD E._.F.p XI.`.a XB.p E E", +" <.WXG.W t <.aX- RX1Xl 3XK `.,XcXwXJXJXc.-., &Xw.jXl #.$.`.`XV c.k.k : `X, `XGXq x R.H 3.`.~.`.8XK.H.D.8 :Xl.5 :.$ 3.a R.ZX, x $Xp..Xf w.EXGXlXIX- )XDXD.E b.sXeX5Xx.u.K `.i # #XI R.~XI.~ :Xl.,XcXw k [X+.jXe U a.5.K ) $XK.KXX '.ZXe v .Xf.{X8 S MX2.jXG.Y.M RX1XV.8.K.r ~XV ~X*X*.k.k.k NX9.k.k.k.k.kXt.k.k.k.k.k.k.k.kXt.k.kX*.k.k.k.k N.kXt.k.k.k.kXt.kX*.kX*Xt.kX*.k.kXt.k.k.kXtXtXo NXt.kXt.kXt.k.k.k.k.kXt.kXt.k.k.kXtX*.k c.k.k.k ~.H.8.kXxX9 (Xx.$Xx ) ) ( 5 ) 5 ) ).5 q :XJ.].] DXhX;XHX<Xc.1X# h x ` XMXp.F.m .Xq.Y U.aXI 3.`.`.`.H.`.`X1.`XI.8XDX1 3XIXIX1X1 xXKXU !XU $Xl D.2 DX1.H.u.D.HX-.5XX.k 3X*.5 qXJX3 R.l.[X<.pX2.xX2X: M y v.!.nXU.G.+.qXCXC.j y.jXK H ! 2 0.@X>._.iXeXe.M <.a t RXI.ZX, 3X1.MX5XJ.a $ $ :XK T.'XK.9Xl T cX,.aX-X-X, 3.a.aX1X-.u :.u.K 3X1X-.a RX- a RX-X-.a RX-X, aX,.aX-.aXD cXD.W.}.m.pX<X7 >X7 .lXBXB VXM h a.a.a R 3X-X-.a.a 3 ` 1 #XBXMXM #.[.g [X3.l X3X3 XBX+ n.<XG._.9.Y h R.MXI.e.a.a R cX-XI B : 'XHXlX5 x : mXDX, $ $.ZXD $.Z xX,.aXIX1XD.ZX1X1XI cX,.} x.FXq.xXr y n.jX+Xp.<X+X4.Y 1 x : 3.u cXDX1 h.MXeXc 1.YXK.'Xl.MX,X,.Z tXDXDXD U.M h.W hXD U.}.} U.FX4X+X>.@.sXe u.w sXlXw TXK gXc.>Xw M W.4 z WXr....XqXnXpXr.Y._ x $ x.Z tX, 8X1XD B.MX, xXIXI.~.}.M._.m >X% c c : U.[.[X<XB", +" u xXL uX-.a R.aX-X,.}X1X-X- B $ :X,X, U U v oXG $ cXK 3 R.8.`X9XV.uXl `X,XrXp s x : :.K.k cX*XV.u cXIX1X-XI.H :XD.a a c.}.a.a.MXnXnX:X0Xn.0XJ.D.HX5X1Xl J..XL.}.KXoX1X-X1 t.a.a.aX-X1X1 BX1XVXDX1 $.a.FX7Xe v v $ c.a VX9XX DXw x.- U.j.Y.E.+ M.TX: ^X2.;X>X+ n.9.WXDXI.8.5 ~.r 3XV.r c.kX*XtX9.^Xj.k.^Xj.k.^.k.k.k.kXj.k.k.k.k.k.k.k.k.k.k.k.K.k.k.k.k.k.k.k.kXt.k.kXt.kXtX*.k.k.kXt.kX*X*Xo.KXt.k.k.kXt.k.k.kXt.k.kXt.kXt.kXtX*.kXtXt.k.kXt.HXV.r.8.rXdX*Xd.uX*Xd.uX*.kXd.k cX*XV 3.H : 'X1 $Xy.O.j.9X+X<.,.[.a 3X, <.FXqX4 E._XG .w.aX, 3X-XIX1.`X1XI.` 3.`X-.8.` 3.`X1XV.H.0 m g ! g $.9X1X1Xl.0.|XJ.`.H c.K 3X* D VXX : DX3XJ | [X% W [ W n n nXwXC J.q.> & b O v.WXD.w $ xXG.n O J v.<._._Xq x t.a t R.a R cX- aXJ a.9 :Xc :XH aX,.a.e R tX-.* RX- RX- 3 RX-.a R a.aXI :XV 3X-X1.a.e.a.a R.a.a RX-.aX-.M 3X1.a.a.uXDXD 3Xe._.FXBX%X7X7 XB.,XBXMXM :Xc xXc.-XlXc ` c <.}XM # $ h #X9 XXXBX3XX h.a cXB ` X7.[ >.F._ 1Xe.a t.MXD tXI R.a $ a.a `XJX.XcXH T.,XKXIXl RXlX,X,X,.MXD $ aXD hXD.uXDXI RXDXD.M UXeXqXr n.j &.+ nX>X+.xXpXn.Y.Y $ xXV.a.a U $ h u.M.}.M U.M h 8X,.Z.MX,.a R.M.M U._ 1._ 1 U.wXeXp.1 W.x z.;.;Xr nXU = nXPXc.].'X5 xXeXGXL v 0Xf.;.;X4.@ . v.<Xe._Xe EX, h.aX, CXD BXD a.a.i.}X1 RXVXD UXq.JX4XH 1 DXJXw.O.1Xw", +"XGX+ <.a.aX- RX-.ZXIX-.a.a RX1 BX1 R.a t uXq...* RXl.$ 3.`.}X5X5.K RX-.M.9 1.W.Z $ c.K.5XX.KX9.KXlXX.~X1XIXV $ : : 1XJ 1 RXJ x.9XeXi ^.E.W h : 3.uX1XD 1Xp.s._XI :.`X1XI 8X-.a.aX-.}X1 8XIX, D #.DXD 1 h.1.<.@ b y c.`XV ` x x.Y.9.i.w v.EX> z.T z.;Xn.@ H S S.@XpXcX,X1 3.KX*.r.r ~XV.k.k.k.kX9 N.X N N.KXj.kXj.k.k.k.k.k.k.kX*.k.k.k.k.k.k.kXt.k.kX*.k.kXt.k.kX*.k.k.k.kXtXt.k.k.kX*.kXdXt.5.k.k.kXt.kXt.kXt.k.k.kXt.k.k.k.kXt.kXt.kX*XtXoX*.H.HXtXo.uXtX5.r.k.kX*.k.kX*.u.H.rXV.H 3.`.3 Y.%Xy K.GXh.OXZ.[Xc $X-XK $ :XcXHX4.xXpX+.i.9.l.aXIXI.`X1XI.H.8 3X-XI 3XIX-.8XI.8X1X1X5 !.0 gXw.2.'X5.].2 D.2 g.5.H c )X3XJX3XMXMXMX3 V 5 V V XB.9XB .- n.>X0 & b 0 0.WXs.MXK.%XlX; = 9 & M.x zXpXnXeXnXq.M < a.a.` hX1X- a.MX5X, #X,Xl R t R.aX- R R R R.a R.a m hX,XDX, c.u 3XJ :X9 c.aX-.aX- a R a.aX-.a.aX-.~ h.a $X5 h aXD hXr >XBX7.[X7X7 `.SX3X.XcXKXUXl.9.,Xl $ ` `XI.a.aX,X- <X- a.} 3 c #XM h.a a.a.a XB [ >.m p xXe t.} h.}.a.a.a.a $ $X,X, xXD $X5XD RX,XIX, $ x.M.Z $.Z $ R 3 <XDXD $ 3.ZXD.} UXqXpX+Xr H.9 9 y nX0XrXrX2Xp._.Y h.M.M h xXpXpXq.w.FXeX, U.M.M xX,X,.aXI.MX,.} UXpXq.YXp o._._._Xp.TX%X:.TXh.;X>.w._ hX,X, x $ xXlXl.Z.Z.WXa.=.s...@ H.x.;.J SXn p._Xp.9 U.M U R.M < U.i U 1 x.aX1XIX,.}XeX4.F.-.j $ $ $XlXKXK", +"X0X0 h 3 <X-.` B :XI a.}XlX-XDX1X1 B a UXe.. E.M R.k.5.$ #X*.~.u :.a.a.Z._.M.M t R.8.~.k.`XI.a cXX.a 3.} `XI ' : 1XJ.M x $ 1 g.9Xr M SXw 1.a.u.uX*.8X, yXAX6Xq h #.u.aX1X1 BX1X-X1.a.eXD a R.KX5.u.u.Z .p.;X0 zXw.ZXI.} cXe v.).aXD c U vXf.C.<X4XA ^.. ^.x.4 vXG y hX,XIX*X9 ~XV ~.r.k c.k.K N././XkXkXk N.k.k.k.k.k.k.k.^.k.k.k.k.k.k.k.k.k.k.k.k.k.k.kX*.k.k.k.k.kX*.kXt.k.kXt.kXt.k.kX*.X.kXt.k.k.kXt.k.k.kXj.kXt.kXt.kXj.k.kXt.kXt.k NXt.r.k.k.u.k.k.K.k.kX*.k.kXV ~.r 3XV.HXV.`XI.2 Y.O !XOX; @X;.O.>.Z.HXV.k.~.2X,Xh._Xp.LXe v 1 1X,XI.`.8XI.`X1.`.` 3.` R 3.r.`.`.H.H.H.5 g ! T.] Y YX.XO.2 g ] @.%XJ }.$ | :.l ` k V | `.[.,., [XH k Xc.j.E b.v.v ^.vXL.NXDXcX. : kXw.9X0Xh H.y.x.<XnXe.F.M tXDX- R.8.aX1XI.a.a UXD.aX,XI.a R B.a R RXD R R R R T.9.OXKXHXJ mXJXc }XHX$ cX-XD aXD aXD tX- <X-.a.aXD c T :XDX-X,X,.wXh.YXBX+XB.[X% ` `.}X,.eXl.a R.aXDX-.a.~XI.eXI R.}.a R R.aX-X-.` RXIX- R R.a.a.aXXXM XB.g.pXq._Xq h.WX, < t.a.a < RX-.a.a.} $XD.aXl $ 3XDXD hXl $ $X,.aX, x h c.i $ $ $X5Xl x x.YXq.j = HXmXm ' ! v y.@X0 WXpXn.i x.iXn.Y.FX4.< .W x._ h.MXDXe xX,X,XDXD.aXD._.F.[.x.YXpXn J.<X4.< .X4.<.y.EXp o xXs UXDXDX,.ZX,.M.} c.D 8Xs 2 2Xi ^ ^X6X>.C W.@ .Xp._Xq U.} U.a E h._.mX7 x UXD R B.n BXGXp > [ 1.0XJ.|.DXc", +"XC.M < c.u 3X,.5X, #.a cXI 3XI R R.a.a.M v p C.a.u :.8XX.`.aX- $XM R.N 1.W < a.a.`X-Xl D 3.uXM $X3.} 3XIX-X1X- aX- a.aXI.a BXD.W EX>.T M.YXIXIXV 3X5.Z y.4X: MXw # :.'XJ 8X1 TXcX1X, T.9X5.Z 3.K.0X-.a.MXsXr.EXG.j.MXX $.YXp.< v.MXI.a U v.W.sX4 % %Xb %.<.;XfXi.@.- R.aX* ~XXXt.r.rXV.u.k.kX9.K.XX9.K N.X.kXt.^.k.k.k.k.k.k.k.k.k.k.k.k.k.k.K.k.k.kX*.k.k.k.kXtX*.k.k.kXt.kXt.kXt.k.k.kXtXtX9.r.kXt.kXt.kXj.k.k.k.k.k.k.k.k.k.k.k.k.kXt.k.X.k.k.kXtXt.k.rXtXtX*XtX*XtXV.8XV ~ ~ 3.` 3X5 TX.XP.0 'XU s 9 TXOXDX1X1.`.` ` D.1.p.j MXw.p.-.[ 3 R.}XI B.HX1XIX1X1 3XI 3X1 3 ' (.2XlXU gXO @XyXyXy @ 4X; @ !.G Y K 6 |X#XXXMX,., XHX# 1 |X# .3 k kX3 V 1.[ o J 0XiX=.WXsXs.MX1 hX1X1.a R.WXn.s.@X6Xp.<._XeXGXD <X-.a R 3X- aX, R.aXD.a.aXD a R.aX,X,.a R.eXD.a RXcXl 1 x c 3 h.K :.KXlXlX-.aX-.a t.a a R.a R R RX-.a 3XD.a R RX, R U y z.h.hXhXHXH.[ 1 R RXD :.Z.aX- R $X-.aX1.}X- aXDX, R.a R RX1X-X1 R R R t.aX-.8.}X3 XMX7X%.p.FXn.iXe.i.i h.M.}.M h.i h U.a hX,X,XD $XI c.a $ c.9 UX,.M.MX, xXq x hX,X, UX,Xe xXBXrXr M =XmXmXP.0 gXG.w M = [XpXGXpXpX+.<.x.p.-.j.-Xq x.wXq 1.M x x x U.MX, xXpX2.p M MX0.; M M MX>.xX>.xX4...WXG.M h.} h.}.M.} $ 3XIX1X,.Z 8.N /.s.v.sXb.v..Xf r WX+Xq._.m U U E.m.m.FX+X<Xr.Y.j.w 1 DXc k z.g.1Xw T (.0.kXV", +".M.M RXD c $X,XD R.aX5 1XJ :.O.Z.M.M.W x v U R R.Z.8.5X9.a.aX-X5.-.}.w xXsXMXMXMX- :.u.|XI aX.X3 :.}XM.3.0.~X1 ).u cX5XMXDXI RXD.sXn.JXn.E hXD.uXM :X+Xn...y 1 xXl DXJXH.ZX-XcX3.uX1 T.% xX1 h YXo BXVXK.M.) v.EXG.d.M U.-.@.s._.d.} UXD.W v vXG p U u.d ..xX6 % y s.MXI.8.rX*X9.H.H.H.r.KX*Xx.k.kX*.k.^.k.k.^.^.k.^.^.^.^.^ N.^.k.kXt.k.kXt.5.k.u.k.k.k.k.kX*.k.k.k.k.kXtXt.k.k.k.k.k.k.k.K N.kXt.k.k.kXt.k.k.k.k.^.k.^XtXtXt.k.XX*Xd.kXtX9Xt.kXt.k.kX*.k.k.kXt.k.r 3.rXV.HXV 3.8 ~X- D kX; @.O.qXy gXK m.G.5XIX1 ' :X,.iXwXn._ vXeXG x.F h.}.}.`XIX1XD.D D XJXK.S.% =XKXU yXO.> s gXUXOXU.].0 TXl.'.'XK gXHX..Y.3 h.a.} <.- `.9XcXK :.9X, xXKXMXMXMXcXr.s.v / 0 vXq $ 1X1Xl.Z : x x x M pX>X>.< ..m p._XqX,.a <.} 3 < R RXD 8 R.Y.aX,.aX-X,.w.Y $Xe.9Xl :XlXl.} tX-X1.`.`.u c R aX, < t <.a.a < t <.M R a.aX-X1 a.a.a.a.aXD.M.M._XG.[XhX%.SX<X. kXM x 3XDXI aX,.a cX-X-.`X- R.aX-X,X-X- R RX1 RX1 R RX- RXI R.aX-.} `X3 1XB.g.[X4 >Xe._._.i.m.i E.l._.iXq E U h.ZXD R.Z RXIX, h $X, U UXe x x._Xq._XeXq xXqXqXeX4X7 WXr M M.qXm '.9XKXL y.j = =Xw H.jXw MX0 & =XwX0X+XGXGXpXnXqXqXpX+.FXqXp.p.jXr M.;.j.j HXm H.q H HXC M ..Y.Y.jXw.Y.9XK t RXD $ cXD.aX- $ R t CXD 2.s O.= 2.v 0.4X8.< ..m._Xq EXq.JX2X% r z W.-.-.,.-.' 1 y xXr h.i.H.8XV.`", +".a R < t t R R R.a.a.M :X. 1.,X.XH = n.1XU.9X,.ZX- R # 3.`X-.uX5Xe.M.' U.aX,XV c.` 3 5XJ.u.5XH.% #XI.e.,X1.Z.0 YXl 3 c | `.aX,X. C p M . J vX,X5.w.YXn.s.s.).j 3X-X1.K : 3 3., `X,.~XJ D.0 cXlX. :X1XlXcXD.M.NXGXnXpXe p vX>Xe u U E.MX,XDXa._.) * C *.d.).J . ^X+ x.aXI 3XV.k.X.r.H.u.HXV.kX9X*.k.^.k.kXj.^ N.X.X.oX9.o.X.oXg.o N NXj.k.kXtX9.k.k.k.kXtX*.k.k.kXj.k.k.kXd.k.k.kXt.kXt.k.k.^.K.k.k.kX*.kX*.k.kXj qXk.z q./ N NXo.X.kX*.k.k.XXt.k.k.k.k.kXtXtX*.kX*.u.r.H.8XV 3.H 3XVX-.] DXy @ @Xy.OXw.2 4.GX5XIXIXDXc.9.9.p._XqXe $XnXe._ <.}.aXIXIX1XD : 1XH XrXrXw y.q 9 o 9.! x.n.' $.n.' $ 8.M '.9XwXy.YXl X,.a.aXDX-.ZX, t RX,XD.*XD a a 1 x .jXn 2 /Xp.>.j v.-.w m ` n '.Y.E.T.) ^.J %Xb.mXAXn._ E E < h a.aX- RXI RXl.-XwX,X-X-XcX, 1.-XcXc.9Xc ` :.a.a.aX-X-.` c 3X- t < hX, h.iX,X, U.M.} U h.} < < <.} t.a R.M < UXeXB.p nX7XB.Y 1 1XK k.-XJ TXKXJX1 cX- R.aX-.a aXI RX, R R aX- RXD.~XI BX-X-X- aXI.a.aXlX7XlXB.p.pXB >X+ >.m._._._.FX4Xn.FXq._.WX,X,XD c cXI.a.M U.F xXn x xX+.pX+X+Xp.@XpXpXpXq.FXpX+Xp.j &.>.Y ' s.0 CXl g.jX0 = =X0X0.> yXmX0Xw ! = MX0.YXnXnXpXn M._._Xp.YX> &X0.jXG sXG b o & o &.+.+.+ zXr.jXG.9.M C.M RX, h.ZX,XI R h.a R.a 8 tXs 8.N.=.v 2...@.x.< % %._ . . S.<...{X>Xn.F.W.}.a t.M s xXqX4 hXlXoXV F", +".WXe.W.W U U U U u.M u UXe t t U u.j.9 n x y.Z 3X- 3X5 cXIX- xX5 hXGXeXD a R 3 BXI B.~Xl.5XDXl.a 3.a 3Xl.H B :.9 `.a hXH.,XV 3XJ tX,XGX>.xX> vX+.[.jX>Xn._.Z R 3.u hX*.e.` R.e a.a 3.} 3X,X1XJ c :.K.Z :.M 8.M.NXe.@XnXn ..YXnXGXG x.YXpXp.<Xf .XAXiXn v bXp.+Xq y.ZXDXI ~.8 ~.kX9.H.H.HX*X9.K.r.k.k.k.k.k.^ NXg.XXgXg.X.oX9Xg.X.b N.^.k.k.k.X.k.k.k.k.k.k.k.k.k.k.kXt.kXt.kXdXt.k.k.k.kXt.5.k.kXt.k.kXt.kXt.k.kXk NXx.XXk.k NXgX9.k.^.kXd.X.kXd.^.b.bXo.kXjXd.k.r.r 3 ~.8X5.k.KXV c cXI.w s ! !XO T s '.0XyXVXIXI `Xc XeXn._Xp x.WXp h Xp.9 ` 1.a.`XIXIX-.MXwXwXGXL b 9 & b.n v s.9 $ : R R B.Z.Z RXK n KXH.G VXM c 3XMXI R RXD.ZXIXDXIX1 R $ x ` .-X+ v.s / 0Xn v vXLXe.WXL.W U.W vXn.v ^X4X4.<X>.p.xXn.mXeX, < h a.a.M RXc.9Xc.e.u.a RX-X- R.M t R R t BX-X-X-.a aXIX-XMX5 < <.M x E hXe.i EXeXe E.i E h h < < < < UXe.iXeXe.m >X<.gXpXB Xq.} x $XDX,X1 `.] c R 3 B R 3 c 3 c 3 cX-X-X5XlX-XH :.] 1Xl : T $ R RX- < c., 1XB.gX7X7X%.[X+.FXq.F.pXr.g >Xp._._Xe x U <.M h $Xe U pXnXnX4Xr.j z nXr nXrXw.jX+ v .XnX+ J o.E & gXK '.9.Z sXUXUXU & M.> n.9 yXU.' y vXP.j.j nX>XpXnX+ & vXp.j M M.>Xm.Y.n v s s b H J o J.E 0X=.N C C.W U.Z.M t.M $ hXDX,X1.aX,.e a a R CXD.N.NXeXGX0..XfX2.@XnXi 0 S ^Xi.vXf HXiXnXG h UX,XD vXc nX<.-XH q.$.u", +"._....._...s.m.s._XeXe..Xe p p.N.W._Xn vXG.9 h.W $Xl 1Xw.S xX, sX+Xc h.ZX, B.ZXo.0.kX1.~.8 #XD.~X-XI.~ R.e.a.a R.a t.aXI.aX-X1X1 RX, s v._.@.< ..sX4._.W v $ RXIX- R cXV # I q.KX-.a h.a.}XD 3 3XX.l $XD R.N.M u uXF * *.W u C 8 C.N u t.d.x % { %Xf.@.EX>.EXG 1 XDXIXI 3XVXVX* ~.5X9XV.r.5.r.K.k.k.k.k.kXj NXg.X.oXg.X.XXg.XXg.oX9.b N.^ N NXt.k.k.k.kXj.k.k.k.k.kXj.k.k.k.k.kXt.kXd.k.k.XX*.kX*Xt.kXt.kXt.kXj.kXtXjXj.kXj.k.k.^.^ NXo.^ N.^.X.X.X.X.b.X N.k.k.k.r 3 ~XV ) ( I `.AXJ.2.G 4XyXy !X;X; ! YXJ x 3 1 $XwXwXGX+.j.gXe.FXB.F._.i._Xe : c.a.` 3 3 x.O &.q.+ b y &.+XUX.Xc.3Xl mXw $ g mXl TXPXJXc `XSXHXH., c : :X,X1X1 R R 3 $X.X. T.].[ `XB.jXG.v.. 0.s 0XG . J v 0 v 0 ^.. 0Xf wX>.@ >.JX+.x.pX+._ EX,.M aXH.9Xl.a t.a hXIX5 c.~ R a RXD t R t c R.aX- 3.5 c.~X- R t.a UXqXp.[.-X% >XBX7.g.[ >._ E E._XpXp.FX4.F.F.m.m.F.F.F.g.gXB 1 h.a aX-XI BX-.aX- c 3 cX-.`X-.eXDX-X,X- mXcX,XD RX-X- aXI aX-XI.a.aXc `Xc V.h.S.hXZ.T.SXBX%.g nX+ X+Xr [.-XpXe.FXqXe x._ EXqXqXn.j [.+ [ =.YXrXm.j.9 o &.> z = MX0Xr &X0.> g s s.DXD.DXI U.w.'Xc y.9XGXD $ s s.Z.j.9XmXGXU.+.>X0.+ = = nXm.Y o.9 xXs 8.MXL b.!.q O 0Xi 2 2.s.=Xe.W.w.s tXD t.w.WXDXDXD BXI.Z RXDXD hXl.9XKXGXe C.s OXnXi 0 ^ 0 ^ 2.BX= { HX> v.;._ 1.W $XeXGXG >.MXI.8Xo.H", +".@X4X4 0.. .....Xb % %..X6.s.m...mX4..Xq.@Xr.jXpXp._X+.YXr.)._._ v.-X, h 3.uXVXl DXVXl.K h c a h :.uXI.e R R.e a R aX- R RX-X1 3XV $ C.W v.JXA % %.. v CX,X1XI.~.aX1 a.uX9.KX-X-.a.a c h.a xXI.aXM 3 uXD v vXe p...sXb p %...).) u U uXFXAXfXi.J.j XeXeXL.Y =.OXl 3.u 3 ~ ~.8 ~.u.8.kX9X*Xd.k.k.k.k.k.^.k.k N.XXg.XXgXg.oXgXg.XXg.XXgX9 N.z.kXj.k.k.k.k.kXtXj.kXj.kXd.kXjXt.k.k.k.k.k.k.k.XXt.kXt.k.k.kXt.kXt.kX*.k.k.kXt.kXj.kXt.^ N N N.^.^.o.X.b.b.X.o.o.X.^.r ~ ~XV.8.u.8.u.uXVXV 5X.XU.0.0XO m.' $ !.2XKX. kXw.S [Xr.F.WXqXe < t U._._ x 1 1XD.8XIX-.aXcXmXr.+.h.q.q =XyXw., :.O #.3 mXKXw T.O $Xw.D sXK n mXXXc c R R.~ RX-X1.aXI.ZXV $XJXh }., [X<XG o & S H.;.x ^.@X6XiXf %X6Xi w.@.@.@X4 >Xn.pXpX>.p.F.. E E.-X, h.a R.a.aXKXl V.]X3 D.]XcXKXK., TXcX,X-.8Xl.`.aX-.} R.} EXe.iX+.gXBX7 [.gX%.g.[.p.<.F.F.F.m.m.FX+Xr W.g._._Xq.FXq.FX7 V x 1 R.a.~X-XIX1.a R.a 3 R R R.aXI R.u c 3Xl.e $ B.}.Z RXIX-.a RX- RX-.9 :.9XM 1XK.[ nXH.,.-Xw.,.[.-.,.,.- nX< WX7.[.p.[XpXpX4X4X4X> W.+ =.9XGXG.9XG 9.' s vXG.!.jXC y.j & H y.9 '.Z.D 8X, sX5.wXe.ZX, 8 R :XK g gXPXwXwXU.+.>X0 y.jXm.'X0XmXm.9.w.D RXDXD C.D v.q & b 0X=X=X= 2 O 0 O.sXL v.N U.Z.Z.Z.MX1XI BX,.aXKX3 `Xc k $ R.M u C.N 2 b.v b.@.v.= 2X= 2 ^ H ^Xq._ U h R.M ._X+Xq 3XV.HXo", +".;.;X8 H.4.xX>X>X>.;.x.@.xXfXfX6XfXnXf .X4XnX6XpX> M zXr p...s ..-XpX, 3XM.aX-XIXI 3.KXI cXD $Xc.9 $X, $ 3 hX,X,XD 3X,XIX,.Z.Z.D.uX-Xl vXn.C pXb.d u.Z a RXI.~.8 R R.KX3.~X* ~XIX1XI $Xw x h aX, hXK x v._.. v......XiXb...J %._.s p pXAXb.C.@.EX,.}.M.aXq oXr.Y 3.`.H 3 ~.u.rXV.8X*.r.5.KX*Xd.k.k.k.k.k.k.k.b.XXg.X.X.o.o.X.o.XXg.XXgXg.o.z.^.^Xo.b.X.b.^.^.k.^.k.^Xd.k.kXdXtXd.k.kXt.k.K.5Xt.k.k.kXt.kXt.k.k.kXj.kXtXtXt.k.k.kXj.k.^ NXg.^ N.o.b.X.X.o.X.o.b.X.^X*XV.r.8XV.HXV ~ 3XIX5 4 ]XO ! TX5 B R 3XD $ $Xw.[ nX7XpXp.<XqXq UXq.Y p vXn.9 UXJXc cXlXc.O.>.jXCXZ.G.+ y g '.Z.Z cX5 $X,X,X, $ 8XD.'XD.'XlXw.,Xc : `.}X- 3.aX-XI RX- c.a RXDXKXMXhX..1.L.+.T M S H.@.4.{ w.4.4 w w.;.; SX>.x.jXnXq.<.<X+.xXn.m._Xe.F.M < < t <.aXD.~Xl c : c.a : x.Z $ x $ RXIX-Xl.a.aX-.M U E.i.m.F k.p .[XBXM.F.FXB.[.p.FX+Xq.FXrX%.g WX% > > >.gXBX7 kXB # aXI RX1.eX-X1 RX1 a.~ c R.~ R $ : $ D.eX1XD 3Xl aX-X1.e R RX-.M.a.aXI.M 3 n $ xXw 1.9Xc.,.,Xw |.S [Xc V k.gX%XB.F W.pX4XnXp.<.E z [.j y.'.W.D.ZXD.Z.'XGXP b.' bXG.9XmXK.9 g 'X, 8X1 'XD B R.MX,X,.aXIXD.0XJ $.Z $Xs.Z.W sX+XK.' y.9 9Xw.n.DX1X,XDXDX1 8XD.'Xm H.q.v 0 0 O.E &XC.@ O.v J.).=Xe.WXaXD 8XD R.HXIXK : : 3 3.}.a R tX, C.NXL O v.N.W.N.N.=X= 0.4X2 .._._ < R R.wXpXqXBX1.8 ~.H", +"X>XmXC y H H H & HX0.; HX0X0 M M r.+X: SX:.+.+.+ r.;.y.;Xn .X6Xn W.Y 1 U.M.M t.a.a < <.a UXD.- x x.W t <.* aXI aXIXIX1XDX,XD 3 x 3.D xXw M.TX>.pXn.9 nXlXlXlX, h.DX1X,.~ 3X- RX1.~ $.D 'X.XG.Y.[Xe y.jXpX>.<.<.J.@X4XpXn.xXnX6 {Xi 0.<.sXpX0.Y.w R 8X1 y.E.E =Xc.}.8XV ~.HXV ~ ~.u 3 ~XX.X ~.r.k.k.k.k.kXjXj.^.XXgXg.XXg.XXg.o.X.o.o.XXgXx.z.X.X.o.XXg.X.X.b.X.o N N.b.X.bXo.k.k.k.kXt.k N NX*.k.k.k.k.k.kXt.k.k.kX*.k.k.kXt.kXt.k.k.^ NXkXd.^.X.o.o.o.X.b.b.X.b.k.r ~.r 3.r.H 3XVXV.`X1 T T '.DX1X1 ) ) RXDX, xXc y.SXc.L.1.F v xXq.1.+X+.Y.- U.Z :.9Xc =X;.OX0X0 o.; =.G.+ ! 8X-X,X1X, c.M < R RXD.M.DXm.w sXKXw.- `Xl `.aX-X-XIX-.aX- c B.aXIXD hXM Xw.S z z.+.hXf.@Xf.@X>.C.@X>.xX>.@ MXrX+Xq.M uXeX4XpX2Xr.<Xn.m._Xe E hXe.}.a.} hXDXI aXI.a 3 aX- R RX- RX-.` c c.a.i h.iXeXq X+X%XBXM `XX .lXM.FXB.[XBX%.[.[.[Xp XBX7.gX%.g.y.S.gXBXBXl $ a.aX-X- :X- B R R.~XM : $ #X5 `XJ mXJXKX3Xc.,XJ I : xXl.Z 3X, :XDX, h.aXc $ nXcXH :XH kXJ k mX3 $ #X3 VXcXB kX< [.SX%X>X> H M M =XU.j.] g $X,.wX,.Z :.0Xl.'.'XG.' s x.w $XD.w.Z.ZX,XlX1XD <X,XDXD $ $ 1X5X,XDX1X,XDXD.ZX, s $.W s.Z.M '.DX1XDX,.H RX1X,.Z.!XG y.q oXC.; HXC.q H & H J ^ ^ 2 v.WXs.ZXDX1XIX, K.Z :X,X1.~XI.-.e R t.a 8 t 1 U.M.M t.*.NXa 2 ^X2X4 ..i <.a.M hXGXqXB 3XV ~.H", +"Xm 9 s v.n 0 s 0XG oXG oXGXmXC.O.h.+.TXh.T M M.+XrX0 z.4.;.4X>X0XL y v.w._ UXe < < < <XLXeXe.YX+ v.sXeXe U.a aX1.`X1X-XI.Z.a t c R R.WXGX> .._ s.9Xc I.%.-.9X.XU D m.DXlX5X,X,.u $ $ $XKXw.Y.-XrXGX0Xr.TX<X+Xn.YX4.Y.pXrXr.<X+X>.@.EX>.< W xX, R.H 3 s o oXrXG hXI.r 3XV.rXV ~XV ~ 3.rXX.K ~.KXd.^.k.k.k.k.k.^.X.X.b.X.o.X.o.X.o.o.XXg.X lXgXg _.XXg.X.o.XXg.XXg.X.X.X.X.X N.^XtXt.kX*.kXo.k.k.k.k.kXj.kXt.kXtX*Xt.k.k.kXt.k.k.kXjXtXd N lXd N.o.b.b.X _.X.o.o.X.kXtXV.r.H.u.k.r 3.rXIXI.HX1X1.HXIX1 DX1., D.9XwXc.[XH.F n nXG XwX<.jXw xXqXGXB.i <X, sXG 9.q & M.TXr & y gXKXO.'X1 $.a cXD.a R R.a.Z v.'Xm o.qXrXU.Y `XM : #.}.aXI.a.a cX-XI t 3.a #XM `XrXr.YXpXpX4X4XpXnXGXp.@.@XG.YXn [Xr.YXe < <.WX+Xn.<X>X2.xXp p.m._ E E E.W < U $ h R.aX-XDXD R RX-XIX- RX- c h $ h._Xq.F >X%.[X7XB.l hXXXM 3.a #XMXMX7 k.[XB.[ XM V [.1 [.SX<X#.T k | 1 3XI.aXIXIXlX, h 3 h c.9 kX..%XK ` m., DXK : 1.uXl 1 : $X1XIXDX- $XD R aX,XDXK.Z : $.Z c $XD 3.a.aXIXIXD 3 `X3XXX7XH.[X< W.; M &.j.j yXP !.w ! g D.]X5.`X5XD RXD 8.M R.MXD x x.ZX,.uXDXI x.ZX5XK $ h $X5X5.].K ` ' k `.,XcXH.3 yXD.wX,.Z.w x 8X,X1XI RXD $ RX, s sXC.qXC oXC H.q O 0 wX0 H J 0 0 v UXD hXI.a $ R.aXI B cXK TXlXDX-XD.aX- a c h < h hXJXsXe.s .XfX+ .Xe UXD.aXe.F._X+.uXI.H.8", +".DXl '.w.nX5.n s.0Xa s.w.n x s.!.'.j.! b s b b b 9.!Xm.!XmXCXC H y vXmXp.s..XpXb E.dXeXnXGXn g.Y ...._ pXe E R <.eX-X1 3X1 R a.Z R 8 U._Xn u t RXI.uX5XI aX- R.aXD cXDXD R R R.MXDX,.Z.9Xe._ vX> 0.@.jXrXq $ hXe xXG s h $X,XV.9 s v $ 1 #.aXV.u 3Xe.E.YX> U hXI 3.8.r.8.HXV.8XV.8 3.r ).k.r.kXt.k.k.kXj.k.kXd N.XXgXx.o.o.oXg.o.XXg.o.o.QXg.XXg.XXg.o.X.o.o.o.XXg.oXx.b.X.X.XXt.k.k.kXt.X.k.kXt.kXj.k.k.k.k.k.k.kX*XtX*.k.k.k.k.k.k.k NXkXt.b.X.X.b.o.X.o.X.b.o.^Xt.r.8XV.k cX*X*XI.r #.K.` cXV.H.H.u.5Xl x 3 x h.-Xp.Y.9X< n.1XHX.XKXG.9.Y ` #X,XB.-.w vX> =.;.;.+ & HXG.!XDXa ' D D.Z $.} a.} U.Z b.n yXC =.q zX0 nXcXB `XM x.}XIX- hXIXIX-X,.} h XM.- [.xXpXp E u uXeXe v x x._Xq.w [ [Xw 1 $.MXD.w.pXpX>.<X2.< . ....F ..m.iXe._XeXp <.a R R 3 RX- RX1XDX-X- hXl EXeXp.p.p.F.[XpXMXB.}X-XV.`XI.a.aXM ` XcXBX3 ` `XMX3X..S.SXHXH.3X<XH.l $.}.}XIXIX- c.u 3X-.aXD 3XDX-X- a R R x a $.eX-.a.a.a.a.~ R R 3X1.aX1.a R R aX-X-.eX1X- RX, RX1.aXI a.aXDXI cX3X3XX XB n M HXC M &.j 9X; !XU g ! D.0XVXIX*XVXIXIXDXDXD RXDX, h $ R.MXDX,X,XJ 1XwXJX.X. mXJXJXw.%X..-Xc.' $Xw Y :.a x $.a $ $X5.aXDX, T 3XI R.Z.O.n.' v.n v v b v v O b ^ H H w O v.W.M.a h.a 3 $XDXD xXK T c BX1 RX- 3.a R h h kX3XKXJXL.N.s.vX6.xX4 p $ 8 t hXnXqX+ 3.H.8.H", +"X5.0 '.Z.Z.n.Z g D gXK.n.Z.wX5XG.' '.' '.wXL '.nXL.!XaXa b.nXL 9 y &XrX0 0Xb.B %Xb...JXe.E =Xh M n.xXpX+.< E.d tXl x RX1 R RXDX,X1 R p v.m u.MX1.`.u.eXI.M <.a.aX1X-X1X,X- tX1 aX,XD xXw.w v ..@ 0.EX+XD h 3X,XD.wXc TXK.w 3.uXVXI $X, $ 3 c c $ $.-.jX2.j k.O 5.KX5X5 cX5.k.K.u.KX*X* ).KXt.k.K.k.k.k.k.k.kXt.k.b.X.X.b.X.o.X.b.o.b.X _.z.X _.X _.X.X.o.X.b.X.b.o.XXg N.X.X.XXo.k.k.kX*X9.k.k.k.k.r.k.k.kXtX*.^.5.X.X.5 N.^.^.k.kXt.k N.zXoXg.X.o.b.X.b.X.o.b.X.X NXdXtXt.kX*X*X* ~.k.KX*Xx.KX9 cXoX5XIXIX-.M # #XK n.1.1.1.SXH `., $ $.Z h 3.a.l VXB.- v 0 = w =.+ =X0 s 9.DXI BXl : m.-XwXD.M.w.n.9Xm &XC M.E =XhX<.TX< kXB.-X3 x h.u.}XI hX,.} ` X7.gXw.[XpXBXe.M t C R R t t R.M.e.9XB.O $XJX..9 n.MXLXnXp.@X8.j.x.<.{X+ . p.m.m EXp x U.M RXD 3 3X1XD 3 3X, 1 Xq.F.g WX<.[ [.gXc V hX* 3.5XI.u 3.uXM ` `XMXM.}.}.a R $ $X5 hX, $ a aX-X-.aX-.a.u 3.a R RX-X- c RX,.ZXD R.a RX1XD.a R aXI.~.e RX-XIX,X-X,XI.a.aX, TX-.5XM aXD a 3XD RX- aXDXIX1XDXl #X* # V.[ n.T 0 ^.q.T =Xm 9 g.! sXU.9.'.5X5.u :.KXIXVXDXDX,X,.aX, hX,.aX, 3XD.9.- 1.Y s s.9 R.ZX,XD.aX,X-XD.ZXl xXDX, $ xX5 mX,.w.ZX,X,XHX-X-XDXl YXK x.n sXa s s s.n J J H H HXC wXn vXe.} a 3 t :XcXcXJ.ZX1 RX-.a R c R c #XMXJXK.-X, 8 tXa ^ 0.C.4X6Xq v.M.MXeXpXqXB c.H ~.H", +"XK K :X-X1 RX5 m.2.Z c D $X-X-.HXDXD 8X1XD 8XD.D ' TXa.w.Z.n T.' vXUXC.jX8.@Xi.P.PXA . S M.O nXJXr M M.yX: M W u.j.- :X5 cX1.8XV 3XDXG.F.) tXDX-.`XVX- R.a.a R.` aXIXD 3.aX-.a.}X, uXeXpX4XqXn n y y hX,XD h 3XDXD.DXK 9XK sXD.}XV.HXIXdXIXVX1 RXp.@X>X2.j.jX5XI $ cXI.H 3.u ~ c.r.u.K q c.kXoX9.XX9.XX9XxXx.XXxXx qXk.z.I q l.IXk.U.z.z.6 l.z.U l l l.z lXk l l.X.o.X.b.^.^Xo.^.k.k.k.k.X.k.k.kXt.k.kXt.r.KXtXtXt.K N.X N.X.X.X.^.kXt.^Xk.b.X.b.X.X.o.X.b.b.X.b.X N.^XdXtX*.kX*.uXV 3.k #X*X*X*X*.r cX1XIXIXI xXHXJX#.3 `XDX,XIXIXI 3.`.} 3.}.a h V X7.gXp 0 v.@X>X>Xh.+ !Xw 8X,X, BX, $XK U.ZXL 9XC.q HXC.T z z.p zX%.hXh.L.1XZ.Y 1 #X7XHXhXc.,XB.,.gX#.S.yX<Xp.9.M < R.aXIX1XIX1.aXDXD U hXc.2.5 : $.9 U UXG.j.x.xX2X2X%XrX:Xr.xXr.pX4.<X+.Y.9 hXDXD c.u.u.aX1.a ` U xXq.gX7Xp.[ kX7Xl.lXI.eX-.`XV B RX-.a h h c.}.} a a.}X-XIX- B RXIXI $X, RX-.a.e.aXIXDX-.a a.a.aX- RX5 $ RXDX,X, $.a RX,XlXK a xXH.% T.eX,X1 Y s.aXI tXH.% xXl.~ R R.~XD a R R.a.M R 3 hXl 3 3XB [.pXp J ^ ^ z &.;XC HX0 bXmXPXKXl :.5 :.5Xl hX,.ZX,X,.MXDX,.MXD a hXDX, x $ xX,.Z x.wX1 1 n.Z.ZXeXD 1 T.-.9.ZX, $ x nXD $.wX, tXH R.aXIXcXDXw 8XDXD 8XaXL bXm &.qXC b w J ^ J v.MXeX, <XK c 1Xc 3 R.aX-XD R.u hXJXH :.3 x.aX,.a.N.W.s J ^ %X4Xp._XeXD.M EXn._X+ 3XI ~XV", +" cX5 ` RXD 3X. D.%X. :Xl m., ` ` :XJ cXc.5Xc.u $XK T.*.MX1 1Xl $ sXL.9XrXr.;X8.;.@.@.< nXBX, hXD c EXe MXn.JX4.)X>X+Xw : `.~ cX*.0 $ [X4.M U aX1XI.8 R.} `.a c 3XI.aX-XI.8.a.}X,.M pXnXnXn M.p v <.W._ XK.Y.9.wX,X,Xa T.!.9 .aXIXV.u.uXV.`.a 1.E.P.x.< HXrXw.2Xw D cX1.u ~ 3 ~XV 3X9X9XV.r.kXt.k.kXtXt.uXt.u.kXd.^.^.X.bXg.XXgXgXxXg l.z.X l.X l l lXk.U lXk l.z.QXk l.b.X.X.XX9.X.XXx ).XX9.XXkXxXkX9X9 NX9X9X9Xk.z.z.z.z.zXk.zXk.XXx.IXk.zXk.z lXkXkXxXkXkXk lXxXx.X N NXoXoX*.u 3X*X* ~.8XV.8XVXI.HXVXVXlXJ.3XK xXlXD 3 h cX3XXX*.}.8 h.a c.[ VXB .[ nX> H.E 0 y.>.1X;XH Y.2XJ T RX,.ZXD v.n.q &XC & H.+ zX>.xXrXr n z M =.TXw.g nXH.SXH.1 kXhX#.hXh z.1Xw.j.9 h.ZXDX,X,XDXDXDX,XDX, hX,XD 3X5XDX1X, $XDXeXG.j.Y SXrXfX4.<.pX2.x.x.pX4Xn._._ 1 h 3X5 3X-X-XIX1 .}XeXq.p.p.FXB XM 1 c cX- R BXI 3 a.a RX-.a.a <.a.a.a.e.a R.e R RXI RX,XI.a $XM cX,.ZXI kXD.a RXIX.XlXc a.a 3.G.e Y R.a $ 6 xX- $Xl.% RXDX- cXH.3X-.M.eXJ xXN s R R t.aX,XI.aXD.aXD 3XDXI : : cXB [X> ^X6.v ^.sXn.E M M.q =.q gXPXc 'X-XV.'.K $ $.Z $.ZX,X,X,X, xX.XlX, xXG.G.YXc U.Z $.ZXUX,.Z R.MXD.Z = $XK h.wX,.ZXHXKX, $X, R xXDXI R RXDX1 R R 8 8 s.nXC.q b O.v.v.v O.vXGXe.W <.MXJ xXK.u.a $.aX-.a a.u.a xXJ T 1.Z.MXDXDXe.* s o.@X>.@.<X+ v x U t.WX4XqXBX,.HXV.k", +"XIXD 3X, $XKXJ.9 x.uXl cX.X3XJXJ.- m D :XM., h.GXJ.wX1 R R.aXD 3.D sXm gXm &.j H M MXG 1 .a RXI RXDX,X+Xn.J.s...d.M t cX1.H cX5X5 sXH.jXpXB.9 `.5XDXD : $X3XJX5 RX-X- 3XM.5X, UXe._.@Xn.x.s U pX4.x.<Xf . vXpXK.a 3.HXD cXoX,XI.8.8.K.H.HXD sX+XpX2.J %.<XpXZ.j y.YXcXD 3X1XtXV ~.u (XV ~.8.k.k.k.K.k.k.k.kXd.k.k.^.k.^.^.X.o.X.o.o.XXkXgXg.oXg.X.o.X.o.X.XXg.X _.bXz.X.^.kXdXt.kX*XtXo.K.kXtXt.R q.X NX* NXtXt.k.k N.X.XXgXx.o.X.X.b.XXk.XXg.oX9Xg.oXgXgXgX9XgXgXxXg.X.^.kX*.u.rX*.8.uX*.K.r.8XV.HXV.8.K.5XI.u 3 3 3.KXM D.K 5 #XV 3 3X*.5., VX3XX XBX0X0 J.@Xm &X0 v s.9XK ` 'X1X, 3.a $XG bX0X0.q w MX8 . . . p...s ^X8XrXr [.[Xr k.-.[.-X+ kXr.-X4 v U R.* t RXD $XKXKXlXlXc.9 t.,.9 R T.% cXKXJ.aXh.9Xw vXZX+.YXpXpXp.< >X4.x.x WXnXq.Z.M.a.~XI cXIX1XDXl h U.F Xr 1.l x # a.a c RXD.e.Z aX-.a a a.aX- < a a., $XJXIXD.e Y $ 3 RXD `.G.Z h 3.u.GXMX1 R.a.3XHX-XDXD RXhXJX# R.aXDXK.O $XDX,X.X- RX1XcXlX# : R.e.,.M.ZXl a R RX- RX, 3 $XIXI 3X, : `XK `.FXH WX>XfXi 2.) vXn z H b HX0 &XCXP.' $.DXIX,XIXl.,.'XU.ZX,.w xX. :.a.a.Z hXH = nXD.ZXD.Z nXJ.Y RXDXD CXl.'X,.w $XD.a t R.MX- h RXD.eX,.aXD RXD 8 R 8.ZXa b.qXC O O 2 b.v.s 2XL vXD.W 8XD hX1 RXD.K.uXI 3.u 3X-X..Z $ R R R BX, $Xe J.s.@.4.) E.p.i.l h.MXeXn.F.pXK.kXo.]", +"X, hX.XcXlXJXJ.Z R.a B cX- x R 3.ZXD h $XD xXl.%XU RXD RXD.} c R 8.D.n 9.9 gXw.9 'Xs.a.u RXI.8XI.8.` h sXpX>...s p t R.a.e #XD.a 8Xe 1 UX, $ cX5Xl 3.}.} 3.K 3.KX1 3X- a # x hXp ...X>.C.m...@.<.< L.JX6 . .X>.YX1.aXV.8.H 3XVXI.r 3.K.`.H $XmX> W ..JXfXn .X2.+.Y y $.a `X9 c.K.K.] )X*.5.5.r.KX*.kX*.k.kX*.k.k.kXt.k.k.oX9Xg.o.X.X.o.z.oXg.X.o.o.oXg.X.o.o.o.o.X.o.oXg.b.bXo.k.kXdX*.X.k.kXt.k N q 5 N.r.r.k.k.k.k.k.^.b.b.o.b.X.o.X lXx.o.X.X.o.X.o.X.o.X.o.X.bXg.X.b.kXt ~ ~XVXIXVXIX5 ) #.u.kX1.8.8 3.` 3X1.u.` 3.K.8.k #XV VX3.`.}XI V )XXXM.l # h.lXM X+Xw & y.j =XKXUXK.> 'X,XD RX,.aXD v s.q &X0X> H zX>.CX: r.P.@ SX0.y.x.[X+.g.g.[ n k =X7 n.g.j n v RXD 8 R.M.a.M.[ xXG x K.9.*XH s.eXJ.3XX D k.u `Xc.9 a =XG U UXqXp.9.@X+.<.<X:.< p.i.M R RX-.` cXI.5.- `.Y n.gX< [XBXH : ` VXHXI R.aXIXD.uX-.aXIX- R RXD.e.-.% $ aX-.ZX.XH a.Z R :X.XI.u.e DX. m aXI RXh mXwXD.aX, Y.e Y RXIX,XHXJ a R $Xc.eXDX1 $XDX, 3.M.a R.aX- aX- R R R.a x $X1 `XHX, `XcXJX3.,.SX% MXn 0 0 oXGXnXL v 0 2 0.+X0 & g.! '.ZX,XDXD $.GXHXw.M.ZX, $X;.,X,.a xXDXw.Z 1X, $ $X, RX,X, R R.aXDXD R h.ZXD.a.a.M.aX-.M RX, R.M R.aXD RX1 CX1Xs.w b JXC b.v /.) J.Y.N.WXs.w.W.D $XDX1XI 3 #.~ 3 : cX- R RX-.a.M R R.eXD.a 8 vXn..X>Xp.@XeXqXe $ < u.M._X4.S xXJ f )", +"XDXKXcXc.OXhX..9XK.'.'.9 $X.XlXIX1 RX,XDXD a 'Xc $XD BXD.HX5.`.u.w.n.nXPXO '.HXIXD.HXIX1Xo.u.`X1.8.` $ U v J .Xe.W a.} RX- : R R C x.WX,.}XI RX- R 3.a.8XIX-X1.H RX-.a.M < U pXLXn M.<..X>Xf.. .X6.C w H J.j.9X,.a 3.` 3X*.8XI.DX1 #.r 3XJXU ^.@.P.J %...BX6.C...x.jXs 1 ) ) I.$.| f ) ) D 5.kX*.k.k.kXtX*.r.H.u.r.kXtXt.X.b.bXgXgXg.X.z.o.X.o.XXg.o.X.o.X.o.X.oXg _.X.o.X.X.b.^.k.kX*XxX*.k.k.kXtXt.k.k.k NX*.kXtXj.k.b.b.o.X.o.X.X.X l.o.X.b.b.o.b.b.X.b.X.X.o N.b.X.b.kXt.r 3 ~.H.HXV.5.K.5X5X3.8XI.8.`.HXV ~ #Xx.8 c.K.`X* 3XX VX3 :.5XJ VX3XXX, ` hXK `XM .p.[ y.O.1.OX;.OXP.w $ RXD R R.Z v b.j & w ^Xf ^X>X>.4 . w.;.; HX:X:XrX<.h [.T.1 [XZ.T z.1X>X+X,.D.a R.}.W xXH MX%XcX<Xw h $XKX, x 3Xl 3XMX3.5X- 3XDX,.Z.a.M.M U.d E.pX>.x WX4._Xe < R.a.a a 3.2.% ,.-X.X<XH.hX#XHXHXc $X..YX. <XI.eXV 3 cX-.`X-X-X-X-.~ RXc.%.S.a aXKXXX#.Z h.e YXJXc $XV.2.eX. 3.a.aXJXD :Xl.a.a.wX,X,.MXI t.aXD R R a.e R RX-.a aX1 RX-X-.aX-.a.a.a aX-.}.eX5 3.aXDX.., Y.3.3.GXZXHX# WXr o 0XG v.M v.YXG O.@.@X> M & g.! sXDXDX, xXK :Xw $.Z.w $X5.'X1X1X,.ZX, x $X,XDX, 3 c 3 a.}XI 3X,.a.a $X,XD.M R R.a.a.aXIXIXDXD R R s $XeXDXsXL s b o H 0 2X=.s._.N t.MX,.}X5X,XDX-X1 RXIX- RX- 3XI cX1 3X1 t.u.M.aXK.e.w U v &.s ^.@.pXn .iX, < U.).mXqX+ :.H.uXd", +".Z RX, sX.XP.Z 'XK.Z 'XcX5 m $.Z RX1XDXDX1XD DXK T.ZXl.5.'.KX5 : '.0XP gX1.D.8 c.`.HX5XJ :XVXI.8.`.8XI RXL o.s.s C.M tX-XIX,.a RXs v h.MXI 3XIXVXlX1XIX-.}.aXI.aXX $.a.M.N .Xe..Xp.x ^X>XiXfXfX6XfX8.;.E.@.wXDX1XD.` 3.a.8 3X5X5XD.K 3 3.w.@ 0.P.PXA LXi %Xi SX8 JXw.jXl `X3.5 ).X :.uX5.KXVX*XtX*.k.uXVXV.8 ~.u ).A 5.^.X.XXxXgXg.XXg.z.o.oXg.o.X.o.o.o.X.X.o.o.X _.o.b.o.X.X N.k.uXdX9Xt.kXt.k.kXt.kXtXtX*Xt.k.k.k.^.b.X.X _.X.o.b.bXkXg.X.o.o.X.o.X.o.b.o.b.b.b.o.o.X N.kXt.rXV.H 3XV.HXI.`.8.`XV.`.`.u.5.k ).5X*.8.`.`.8.8X*X* VXXX3X3XXXM.5XlX,Xw $XH.- V.[ k.S k [ k.> =X;.j.n.w 8.Z.a RXs.9 T.q HX0.4.@Xn.xX2X>X> ^X>.xX8 W.h.T.1.h =.1.+Xh.hXhXh.T & yXG x x.9XpXpX4X4X4Xq >Xp y.9.M t RX-.a.aX-X- 3.` cX1 RXD.*XD t R t.M.MXn.{ WX:.xXeXeX,.a aX-XIXl.k.u ` :.S XBXh.- X< `.i.a < 3.aX-.a 3X-X-.`X-X-X-.a R R.~.0Xl $.a.a .aX,.Z.}XDXDX,.aX-.DX,XI a a.a.a.~ RXDXIXD tXI aX1 RX1 3XDX,X-.aX-X-X- RX-X-XI RX- RX-X-.aX- a.a.a aX-.aXD #X- hXl hXcX.XJX. [Xw n MXr J vXL U $.M 8.N.W...s HXm &X0 oXOXL $XD cX,XD.a 8XDXD $.Z RXIXDXD $ h x.Z.Z xXlXDX, cX,.aX,XD R.a.ZXDX, RX5XDXlX- $X1.9 $.9Xl '.-Xw.w.n.nXa s 9XCXC.@Xi.)XeXL x <.}.aX,XD $XlX-.aX1X-X-XIX-XDX5XDXl.a `.,XI :X,XI DXDXl.M._.j.@.v ^ HXpXq.i E E U u._._X+ c 3.H.u", +" R 8XD.9 m.w.wXD.DX,XD.Z.]Xl $ R RXDXIXD 8XlXcXl.0.%XKXK.] mXc.G gXU.!.n.].'X,Xl $ D.2 :X,XI.`XI.8.`XDXDXp ^.v.s u uX-X- 3X-X-.D.w T C R R.`.a.5Xl R `Xl.a # $.aX, u U..._ 0X> S wXf L LXi %XbXA LX6X>.' 'XD.HXIXI.` 3X* :.0.]XD xXD.Y.EXn ^ {Xi {.J L.PXiXf.@.;.Y x s.| ).2 )XJ.] (Xl q : )X9.u.5.5X5.5 3 ~ c.r.u.& P NXx N.X.X.b lXk.X.b.X.b.b N.X _Xg.o.X.o.o.b.o.X.b.X.XXd.k.kXtX9.kXtXt.kXt.k N.kX5.kX*Xt.X N.b.X.bXg.X.X.X.XXg.&.I.z.o.b.X.o.X.b.X.b.X.o.X N.b.o N.^Xt.r.r.kXt.k.u ~.8.`XxX*Xo.5X9Xo.KXV.8.8.u.KXX # 3.} 3.,XMXM.KXMXM hX-.a $ R.,XD |Xc ` [.S ` 1.3.3XZ mXK.9.'.w x D :.ZX,Xw y =.>.OX0.j.SX7 k.gXrXC.@.y >.p.p o.j.j.jXwXw & z.;.jX2.p y.[.Y.-.j.xXr W W W.x.<.Y.Y.w t.a < R R.a.} aXI R 3.uXI RX- B RXD R v.<Xp.<.{ W.< x U R RX- h.aX-.8 a R hXUX+ WXB.F 1.lXM U h.a a.} c c.} R.}XI.a a.a a.a.e RX-.aX- a.a a < RXD.a a.`X-X- R R R R RX- 1 $XI.a aXI a R R 3XV B R 3.a.aX-X-.aX-.`X-X1 R.~X1X-X1 R.a RX-X-.a.a.aXD hX,.a 3 hXM VXwXH.EXC.4Xp ^.s v U.MX, c.Z.'XqXw.>XG JXC M &.OX;.n.Z.DX5.D.DXD.DXDX,.Z.Z.a.a.MXD #.aX, :.2XJXDXDX1X, c.aX,.aXIX,X,XD.' T.-XKXJXKXK.]XUXcXU.9XK.!.9 o b O OXCXC O.v 2 2XGXG U R.aXDXD.aX, $ RX, T.9.e.' hXDXc.ZXlX-XlXl.aXMXD.a R R.MXD.}Xs.E...v ^ HX4._.m._.m p._XqX+ 1XI.uXd", +" $XDXlX. g mXJXUXU D DX.X$.GXH ) 'Xl.w.DXlXl g $X,XD $XlXlXl T.0 D.2 gXUXO 'XU.2 m.GXOXO.]X1XI.H.DXd c U.jXp.B.sX=.d UX,X5 RX1 ` v.'.M.MX-.aX1X3.H c.5.,XK.,.,.[.9XpX+.<.. ^.j HX0.@ z w S rX>X:.CX2.@.@XKXI 3X1.H $ )., I.]X5.] :XJ.9.1 y.jX>Xr.x.x.xXr.@.@ J.x.jXLXUX, :X5 ).5.KXJ `Xc (., )XJ ) 5XJ.$ q.u 3 ~XVX*X* , ]XxX@.7X@.zXk.oXg.o.oXx.z A.&.z.b.X.b.o.oXg.o.X.z.z (Xx.5X5.k N.rXt.^.k.^Xt 5.k.kX5.5 qX9.o.bXg.b N.X.XXk.X.( A.XXg.X.o.b.o.X.o.X.o.X.o.b.o.b.X.b.^.^.kXt.kXt.kX*XV ~.8Xx.k.k.k.KXV.`.`.u V.$ V V., V V VXJXM.l # h.aXI.aXI RXI cX,X,.a.aXD c $ 1 [ K KXh.> @ =X.X;XU !XD.wXU.O =XhXhXZX#.h |XZXB n.+.x.T z MX0.+Xh.T KXh.+.TXZ M.;.;X>.;Xr.; WX8.;X> SX8 WXr WXrXr =.F x $ hXqXD tX,.e RX-XIXIX-XD.aXD.M sX+.xX2X8 W M._.Y c R.a.K hXIX-X-XIX- RXqXK >X+.[X7.[ .l.l h.} # #XM ` #XXXM.l #.a.a R RX1 B R R a a.a.a R R.Z.eXIX-.aX-XI t RX-.aXI.aXD RXIX-.aX-XDX- 3X-X1 R.aX-.~.aX- R.`X- R.`X-XIX-.`X- RX-X-X-X-X-.aXI c.a c.aXl : #Xc V M o 0 0 0 v.s U 8X,X,XKXwX. g.9XKXn o.@ M &.E gXaXD.'.]X5 CXDX,XDX1XD.W R.M 3.M $X1X,X,XKXKX..9Xl c.Z.9XI R.MXDXD R aXD.ZX,.ZX, BXD C 8 sXs x o &.qXCXC J H.E.v.v / v v x aXDXD R RX,XD R $.M.-XK a.w.Z RXDX1.a.a.aX- a 3.a a : $ :Xl.9.YXs J 2Xi.4.x.F.J._ p.m._XnXc :XI c.r", +"XwXlXc D.n $.wX5 '.'.0XJX.X. Y Y.G Y YX.XUXJ.'XD R RX-.aXI 'X,.n.'.! s s.!XU ! s.!X;XUXP g.0.n.] g.]Xw x.j J...s % . p .Xe u < xXe [ U RXD.a.` 3 cXl ' T.] 'XK : TXJXr.@.h.yX> y HX0 S S S M.;X0 ^.TX> o h.a 3 : mXK ` D.' :X5 I 5 q c :.uX, $XG x x.YXwXp.-.jXwXrXUXhXKXK cXIXI : c 1X1X,Xl.u cXV cX* cX5 ~ 3 3XV.rX*.R j qXo.&Xz.b.I.X l.X.b.z ZXk AX$.bXgXg.X.o.bXg A.z.R j ) ,X@XoX5.k.k.kXtXtX9.7 I j I.$Xo NX9.b l.XXg.7 X (.R 7.Q.X.X.o.X.X.o.b.X.o.b.o.X.o.X.b.o.X N N.^.^.^.k.5.^Xt.r 3.K ~XV.8 ~.`.8 3 3.$ VXX.KXXXXXXXX.lXMXM.a.}.a.a RX-.aXDX1 R.}X,XD.M., `XBXJ = = yXO.q !XmXO sXK @XOXLXH.GX. nXw n n., [.1.LXZ M =XrX0XhXh K.GXhXHXZ.+.+XZ S H H SX0.;.;X0.@ ^.@X6 z.T.+.h.hXHXHXcXwXH [XH h.MXD.a.}X- #.a a.a U v.jX2X2 WX: [ WXh.YXlXD 3.] :XI 3.~ R R t.MXqXc.[X+XB.[.[ .F # ` # 1XXX3 XX.,XBXMXX x.aX, $XD B R.aX-X-X- a RX1XD.aX-.a.eXI :X,X,XlXDX-XI.a R.a.e a a 3XI BX-X- RX-.a.u RX- R 3.`X-.`X-.u cX5.k cX5 c c.kX5XlX5 R.uXD.uX,X5XJXB.1X> J 0.vXeXe v $XK.9XJ.nXIXDXD.WXL yXn.@X0X> 9.' 8XPXKXD.D $ x $ 8XDXD.D.a.a.M c hXDXD R.W.Z T.YXKXKXcX..-XK :Xl $XlX,.M.*X-X-.} a.a R.M.ZXL.9XC 0 bXCXCXC ^.v /XL vXG.M tXDXD.e RXD.*.MX, xXD RXDX1X-X1X- $.aXIX, # D.eX.X, :X3XKXKXKXH.) v 0.B 0 H.@.p.[X+X%Xp kXcX3.R 5", +"XD.9XU s.w 8X,.wXI RX,.9.ZXD R 8.u ' DXO.G.O mX,X,.Z.a.ZXDXD.'.] sXl.n sXL.' sXU s 9XU g.!XP g g g g g m.9.- o.@Xn . . p.m._ EXe.M.1.j h t.a.a.a.Z.uXI.~X- 3X-.HXDXDXG.j.yX:.@ wXZ =.O & M.O &X>X>.@ oXr $XM # m c TXl.% m : m `.5Xt.8 ~.H.`X1X1 RX1 3.Z.].'Xl.9XGX+X; $ T `XD c.,.]XcXKXJ 3 I 3XVXV.8.8XV.8.8.8.r ~.k 5Xk j q.6.X.o.I.b.X.oXx.7 d.X.o j qXg.bXg.b.oXk.b.XXkX$.r Q.|.k.K.k.k.r.XXt.z.kX5 7 3.k.k.^.^Xd N.X.b P AXo.t.tXx.X.b.X.o.o.X.b.o.X.X.o.X.o.b.X.o.X.o.b.X.b.5.^Xx N.k.kXt.r ~ ~.` ~.8.8.` 3X3.$X3X3XXXMXMXMXM #.}.a.}.a.a.aX,XVX1 aX1.}X, 3.}.S., K nXh.OX0.>.> & 9Xm b bXm gX.XwXw.-.9.9.9 x x XHXh.OXw y HX0.>.G.O K.O.jXG &.+.q o J H.E S z.E w JXb ^.@X>.<.<XrX<.1.Y.[.jXr y y.9 $X-.} 3 cXM <X, hXpX+X4X4XrX+XnXr W.O.3Xw.| D.2XJ.,X-X1 R R t.M.M.i.YXB XqX7.[ XMX3 : V V.- 6.% 6X#.SXH kXJ.,XcXD RX-.~X- R RX-X-.a 3 aX-X-XM 1 ` : `XcXD 3 RXIX- <.a.a R.aXDX-X1X-X-.a.eXl 3Xl.KXXXl.K.~ 3XV.k :XV.uX*.u.u.u c.k 3X1.~.ZXDXD 1 .,.gXG O.).).N.[.-.9XcX1 8 8.a.a.M CXs.sXn b.j J.9 v.'.' 1Xq $.j g.M.M.Z TXDXD R R.a h R U.Z R.MXD aXD.MX, $ $Xl.9XKXK 1 a R.a.a a.aX- R R RXD x s.q & 2 O.vXi 2 2.sXGXq.W.aXD RX1 RXD.aX,XK 1XlX,X,XlX,.9.Z `.%XJXK.|XKXl.e T c.% h cXD h hXe.s 0 2.B wX2Xn.1.1XwX<X#.GXc ) ).$", +"XUXUXK xX.XD.Z.j TXcXl Y :Xl.] :Xc.ZX,.w.2.3 1XJXc :XD.ZX- c.2.w.aXsXD $.w.9 9.'XmXG.nXwXyXUXU g.! T gXJX. $ s v.E.E.<Xn.@.E.jXp._Xw [ [.[XKXKX,.a.MXDXDX1 R R 3 : 'Xp v.PXf.@ M =.> =X0Xh.+.+ M.y W.hXr.Y.3XlXl 'Xx.] x c h.Y h.u.r ~.HXV 3.8XIX1 : TXc ' RX, DXwXp x.M cXV.a cX5 $.Z.uX,X1XlXV 3.8XV.r 3.8 3.r.8X* NXx NX .:.zXxXgXkXg.o.XXg jXxXk.X.: l.bX9.bXg.bXgXg.X./ 7 P P.uXxXd.kX*.k qX9.RXd 5 PXV.u.kXtXj.^ NXg.X.7 Q.& jX@Xk.oXg.X.b.b.o.X.o.b.o.X.o.X.b.bXg.o.X.b.X.X.o N.z.X.b N.kXt.k.k.HXV.8.8.`.`XI.u # V k.,XX.l.K h a.}.} aX,Xl.u x.D 3 U a $ hX5.,.-.[X;.1XZ.+XhX0.>X0 =.O.O.O.O KX;.O.1 D.-Xc ` `XwXc.>XwXmXUXU gXy.G = @.1X;.+ KX0.T H.+.+X0.+ z.v.v ^ 0 0 ^ w ^Xf.j M z.1X+.pXw MXU &Xw $X, ` hX, #.FXpXp.@ >X>XrXp.Y.1.S [ nXJ.9 $XXXx.5X- RX- RX- t RX,.i.-XpXB.l.-.-XMXB V D 3 3 cXl # : |Xc 1 xXI 3.aX- R.aX-X-X- R R.`.u.5 3.}.8X- a.a R RX1X-.~ a.a R R.a a 3.eX-X-X-X1XIXI.uX,X*X*XV 3XI 3.K 3 c.~.`.` B.`.`.` R.`X-XIXD cXD $ `XcXM [X> bX=.) U.9.-.M :.wXD.DX, $.w xXp y S.@ H H o JXmXG 9XG vXG.9 'XLXK.>.wXDXJ.ZXI.a a.a h t.M.a.M R.a t RXDXD xX, R R.M R t R.a a.aX-.aXD t.nXG.q o J 2.vXv.v.) xXp x.M.a.a a.eXI R.e.9.Z.,XHX.X.X..,.,X.XKXK.,X5XM.D.eXIX- RX5.KX-.a a.W v.. 0 w 0XnXw v `XK kX. [X5 3.8.rXV", +" y g $.wXc s.Z D :XJX. Y TXcXl : '.] DX,XJ.' RXD.Z :.,.uX1.w D.ZX,.M R.* $Xe 8.w.w.n gX;.].OX,.D 8.n.].H.uXoXc '.'.j x y.jXn.Y U C.dXe.-Xw.YXwXc.YXcX,.MX, 3XD.2Xc x v . w w.; = 9 oXP.j =.; ..@.. pXnXpXp.O m 1 ] m.0X1 h.Y.Y xXD ~ 3XV.8 ~.`.`XV.5 'XcX1XI $ xXKXGXDX, R 3XIX1 c.a RX1XI 3.` ~ 3.r 3 3.8.8.8 ~.rX9.&X Xk N.7.X.o.z l.X.X.XXg XX XxX .&.X.XXgXg.b.o NXg N P IXtXNXxX9.u.k.k.kXk q.RX* f (.k.k.k.k.kXt.b.X.XX$.X N.7Xk l.X.X.bXg.X.o.o.X.o.b.X.o.b.X.o.X.b.X.o.X.o.X.b.z.X.b.X.b.XXo.^.^.k.r.H ~.8.8XI 3 3.KXX VX3 XX h 3 hX,XJXKXKX.XH cXJ.,.Y `.YXh [Xc [XrX0 =X0 J y.T.O.hXh.+Xh = n.3.O.O [XH.O [.3XcXH y.9.!.!XP gX; TX.XHXU.+ = b J & v v .XnXn v v.sXG.s..X6X>X0.T.T.1.y =.T.+XZ.+.O.1 =.[.M tXMXnXp JXpX+ yXq x._XqXp x xX, tXD.u.eX-X-X1 a 3 xX5.a.M.M.M < Xc.[.- k `.,XBX-XIXI.8.}.`.a `X3XM #.} a.aX-X-X- RX-XIXD 3X1Xl.K.K.5.a 3.aXDX- RX, R R.aX-X-.} a $XDX1X-.uX1X-XlX- c.8X- a.`X*XI.uX* c ~ 3.`X-.`X-X-.` R R.aX-.a $X3.9 `X7 kX%.j JXLXL UXcXl 3 TXc T g.Y kXK 1XLXpXp 0.@ H &.q &.>.q HXC oXG 9.'.'.9.DXaXKXDX,X,Xc RX, $.a R RXD R.a RXDXD tXD.M R t R.a.aX-XIX-X1.a a R 1.w.j H J.v /.B *._XG x.M.aX- aXIXD B.*.a.ZX.XK TXK DXlX5X. #XIXIX,X1.~X,X1 BX1.`XIX3XD R.M uXe 0 ^X:XCX> n # RX1 R.u cXIXVXV.k.k", +"XcXH g.w.MX- R hX, `Xl c R.Z 3 $ $.ZXl.ZXJ T.e RX-.aX, TXc.|XKX1.w.- xXl nX,.Z.w sXKXJ.ZXK., T.D 'XUXU sX3XXXD ' m TXD <XG JXp.s.M t.N.WXn 1XeXn xXw.j.-.j <XGXq._.x W r z.hXh & @XO = = KX:.<.J.....s .Xp x n K.2 TXVX,XG.[.<Xe.}XI 3.8 3 3 3XIX-XlXKXl.u.M :XBXlX,XD RXIXIX-.uXV.`.HX1.8.8.HXV.8 ~XI.rXV.r ~.r.k.^ NXk.oXg.X.X.o.zXg.bXgXk.b.XX@.t.z.XXg.X.b N.XXg.X.b.$.& IXo )XNXx.k.k.kXt.kXx.XX9 j 5Xo.k.uXtXjXt N.^.z j.IX@XN.RXk.X.b.X.o.b.X.X.b.o.X.o.o.X.b.o.o.X.o.b.b.b.X.b.z.X.X.X.X.X.X N.XXoXdXd.8.`.8.`XIXI h cXJ V :XM.a.} 3.a `X,XKXJ.2XK.9 :.9., k k.O [Xw MXZX0XnX>.E.LXh.+.S = [ =XcX7.- k nX. [., [ nX;.1 !X;.O.O.OXPXc.O =.>.+ o OXs.W tX,.W.MXn v.W.NXe v.s 2.@X2.T.x.y W.jXr.1Xw.j.jXUXw.j XqXpXGX+.j y.Y xXD x.Y xXeXn U t UX-.ZXV.` aXD x : T :.- :.-.M.} .Y [.- k # $.`.}.8X1XIXIXI 3.,XM x 3 < aX- a <.} cXM :.K ` q.5.K c.uXK c.eX1X-XlX1 TXl `.9 `XcX3Xl R 3 :.u.u :X5.K #X5.K : c.K 3.u cX1X- R RX-X-X- RX-.a.a.a hXM.[ `X7 kX< zX0 HXGXe.M RXD 3XDX1XD xXD.ZXD h t.M.W v ^ b J oXCXCXC H.; & HXm v s s.w.D.Z.ZX,.2.,X, $.- x $ cX,X,XD R.eXlXD R RX, aX- R.a R R R R B R 8 mXL b o H.@X=.B.sX+Xl.} R.a.a a 3 BXD R R R U.Z xXl.' $.eXI R.~X- a c RX- 3.DX-X1X1X1.ZXs.M.)Xe % ^ w = n.S 3 3 ~ 3XV.HX*.rXd.u.k", +"XU !.9XKXJXJ.- : cX. :XIXIX-X1XD R B TX.Xw.ZX,.' 3 R RXl.%.O.Z R.a x $ 1XH.' s sXK.2XcXMXI :.5., g y.'XJ m #.HX1.Z.5X-XI.9 &.jXrXGXL.M CXeXp vXpXpX> =Xr S zXG._..Xb . ^X> M.+.!.j gXU.O MX2.T.y.@....X4XrXn._XwX. s.' TXwXwX+Xp R.aXI 3 3 3.8.`XIXI.H $X, #XMXM :Xl.Z 3X- 3XIXVXI.H.`.H.`.8 ~XV.8XV ~ ~.rX*.k NX9 NXgX9.b.XXg.o.X.z.o.o.X.b.XXg.XXzXg.XXgXg.XXg.o.X.X.X.5Xd.r.k c.R ,.k.5.k.kX*Xj.k.kX*.^X5.r.kXj.kX9.^.^Xk.XXx l.X.I.o.b.oXg N.o.o.o.X.o.b.X.b.b.o.X.b.b.X.o.X _.X.b.z.b.X.o.b.X.X.b.X.X.X.b.r ~.8.8.` 3.`X-X3X3XMXMX5.}.a.a.aXDX1 RXDX,X,.aX,XM., [., k.jXr.+.; o ^X0 H M.1 M zXwXr.1.1.1XHX< kX< n =.1 [X..> nXO.'XJ.j gXw y & & OXa.W UX- < < hXs.MXD C.M.W v.v...<X4.F.< z yXcXe g n n.jXpXpXGXnXp.YX+XeX,X1.`XI x.9Xq._ E.. U t t.a RX1 xX- hX5 $ c.Z.Z $ x.} E 1X#Xh k `X, 3.aXIXIX-XI.` 3 3.,XMXM.}X- < < 3 #XM #XMX9XX q.k.KX*.K 3XIX,XIXDXlX5 : :.Z c cXI $X, c RXVXl c.5 cX9 3 c.uXVXVXI 3.` c.KXIXIX-X- RX- R R RX-.a.a x .-X<X<X7XB.p HXm vX, RXD R.uX, 3X- g.-.-X3Xc $ C.)XL 2 O O b b 0 0 0 J oX> & & oXm 9 sXDX,X,XD.ZX,XDXcX,XI.9X..ZXDXD 1.a R.a R a 3.a a RX-X-X-X1 RX1 RXw.9Xe O H.@.s.)X>Xw.}.a.a $ RXI BX- RX-XD.Z $X, $X,Xl $ RX-.a.a R RXDX, BX-X- RX1XD 8XD xXL v.s.sX> W.pX< |X* ~.HXtXtXt.k.rX*.^.r", +"XK x.Z 1.'X,.u ` c.,.,X-.aX-XDX1.a BXJ @X. R $ mXcXlXl., DXc $ B R R.aXJ $Xl.'.0XO g.'X1 3Xl 4XyXw s.nXO.'.,.] 'X1 mXI.}.w M & n.j.[.-Xr n MX>.T M.s.x M MXh.v v.B ^ SX8 z M g.YXK g.9XwX0Xn..XnX>XGX>XrX6.{.CXf.j.-XHX.XwXcX.XDXI R.8 3 ~ 3.r.`.8X1.`X1X1XI.8 c ` : : ` ) :XI.K 3.8.H.`.8.H ~ ~XV ~.uXt.k N NX9.o.X.X.o.X.o.o.X.o.Q.XXg.o.oXg.o.o.X.o.X.b.oX9.oX9.b N.^.k.kX*.k.k.k ).& q.k.kXt.k.k.k.kXtXtXt.k.k.k.kXz.X.X.X.b.X N.z.X.b.X.bXg.b.X.b.o.X.bXg.b.X.b.b.o.X.o.o.X.b.X.o.zXz.o.b.X.o.bXg.bXg N.XXoXd.r ~.8X1.8 3 3X3X3Xl # #XD.a RX-.MXIX1XDX,X1X, `.,XZX#.h.1.+.;XC SXC.; S zX0X0X:.<.; n M [XhX< =X< [ zXw M.h y.YXK.>Xw o = =.E.q.E O.=.W.M 1X3 `.-.9 sXlXJ.w y H oXrX>.<X4.p M k.w R.9 n.-.[ n.j.pX+X+.- U.aXI.` F 3 R .p v E.i.M t R R R R.eXl RXD $ BX-.a R t U hXcX<.OX#XJ.,XK.5X5.5.K cXIX- #.,XMXMX, < a h.lXM.FXB.-., #X9X* qX*.z # 3XI.}XI 3 3XV RX-X- RX-X-XD 3.aX1X-X-X1.~.Z.~ R.`X-X-X-.` RX-.k c 3 3.a.}X- R a.a t.a < x Xr.1X+X+XpXnXn &Xm.w sX-XDXDX5XVX,X,X,.ZXD.M.M t.MXsXL.N 2.W O 2 2.s.=.s.. bX> & & 9.'.nXs.DX,.ZXDXDXDX, R $Xl RXD.Z :X- R R.a.aX- RX-XI R R B BXD B 8X,XL s b.q ^ vXn u U a.M a B R R.a BX- RXD t RXD hX,.Z $X- R RX-X- RXIXDX,X- R.`X,XI B.W v.=.W ^Xn.@ MX7 |XX 3XtXtXt.kXtXtXdXtXt.k", +".Z.DX,X, R a.a.e.aXI x.KX-.a 3.~ RX, mXJ '.ZXD $XK.,XK T $XJ.0XD RX-X, $XD.n.nXO g.]XD.H '.2XUX;.!.n.nXOX5.` ' : DXJ.}.} 1.jX+Xn._ pXnXnX4.jX2.T.+.yX0X>X0.;XC ^ S S M H K.O =XyXHX;.> K.jXG.@.;.E.YXn SX8 wXf.C.x.p.jXH.%XK 5 ' :XlX-XI 3 ~ 3.H.` F.8X1.`XI.`.aXI $.l $ hXK.a I : D 3 3.H.8.u.kX*.k.k.k.kX9XgX9XgX9.o.X.o.X.o.oXg.U.o.o.o.oXg.X.o.o.X.o.X.o.bXg N.^.k.k.kXdXt.uXtX9X5.r.r.k.k.kX*.kXt.k.k.kXt.kXtXt.k.k N.X.o.X.o.X.zXg.XXg.b N.b N.o.o.X.b.X.o.X.o.b.b.o.X.b.b.b.o.b.z.b.X.b.o.X.b.X.b.X _Xg.X.bXdXt.H F.8.`XI.u `X3 1 #.}X- <XI B R 8 RX, h.a ` V.SXZ.S zXr M M M.4X0Xh.h = z.+.+ z z.+Xh.TXZX<.+.T.j z.;XZ.OXZ.+.OXh K.O.G M.;.E 0XL.WXs k k D 1.2.%.' m.9.9XwX0.;.+..Xr.x.jXmXIXIXI.} 3Xe._.p.p W W $.} RXI.8 3.~ x.[.F._ E.WX, a R.~XI.Z 1.,XwXJ.uX-X1 a t.a hXe.-.- $ c cXl ) ` I | (X3.$ ` k kX3.l c a hXM.FXB.[.,X7XJ k.&XkXx.5 ).5.5 #X-X-.aX-.~ 3 cXD.}X-.} 3.a.`X-XV 3XIXI 3.H R R B.` R.~X- R RX3 3X, 3X, 3XD.eX-.M.aXD h.-XpX<.1.jX>X> J.+XrXK m.] mXJ D hXH RXD t R R.a R.M C CXsXs vXs.N.) 8.; v 2.s OX0 = y O sXsXD 8.MXD.MXD.DX, R RXDXDXD.WXDXDX,X1X-XDXD R R B R R $.'X, R.M s bXmXm 0 o.;._.M R a.M R.eXIX1XD.e.aX- R.a cXDXDX,XD 3XD.a R.a.a.*.a $ R.a.aXD h.aXaXs o.v vX2.1X< k.,.rXtXdXtXjXtXdXtXt.kXt", +"X, $XD R.a R R.aX-X,XlXIX-XIXI RX1X5Xc 'X, 8X1.* R t a R R $XJ $ RXIX5XDXI.Z.0 gXO 8X1.D g '.0XPXc !.0 g.`.HX1.Z =.S.g.i.pX>Xn.s v.m v..Xn.4 H z &.; H H =.> &X0 & &XmXUXO ! gXU =XKXwXy =XU.9XeXe.d v.x w.CXfX0.C y.- 1XD.u T : : T 5 )X9.KXd.8.H.`.`.`.`.8XIXI.a ` $ h $ h.} 1XK.5 D (X9X3 ) :Xt.^X* N.XXgXg NXg.X.o.X.oXg.X.b lXg.oXg.o.o.o.o.o.X.o.X.o.o.X.b.^.kXj.kXtXt.uXd.u N.k.K.k.kX*XjX*XjX*Xj.kXt.k.kXtXt.kXt.k.^.^.XXg N l.b.b.X.oXgXg.oXg.X.b.b.X.b.o.X.o.X.b.b.o.X.b.X.oXk _.X.o.X.o.b.oXg.o.X.o.X.oXo.^.r.8.` F.8.`XX VXMXl 3 <X-.a tX1XD RXD xXD ` XJXZXh.h M zX0.;.+.+ =.+ z MX2X>X8 M.q &.+ n z.h.h.T.T z & &X0Xh.+ &.j.EXr y J 0 /.v.s.w.Z $XD.DX1X1.ZXDX,XsXL o.s.E.C.4.xXrXI.HX1X-.a 3.}X+.j.p.EXG y.a.`.8.`XI.aXBX4XqXe._ $X,XV.5XK DXc x sX,XDXD.a R B.M.M h.i.Y U.aXD.`XIX-.KXI 3X*., | | kX3XBXM # a.l xXrX%.pXB.-., h.AX3 N qX*XXXMXM $.a a.a.aX-XIX-X, cX- aXIX-X-X- 3XI 3XDX5 3.uX,XIXD BX-XI R.%XMXXX- aX1X, $ B RXI.a h 1XcXw =.jX> v J.>.9.' 1.n.wX, c.a 3.} RX,XDXJ RX,.' tXsX, vXU U.M u UXc._.N.s.sX>.E &.E s vXL.Z.Z.DXDXDXD.wX,.W.Z.Z $.ZXDXDXDXDXDX1XDX,XI.a R 8XlXU s.wXL.w oXC 9XC.E v.M R $Xl R RXD s.Z.Z c RX1 RX,XDXl.uX,XDX, 3 t.aX,XlXD.-X,Xl a aX3Xc xXmX0.>.O M.1.T.hX3 k.$.K.kXt.kXdXt.^.r eXt e", +"XDXD R aX-X- R R 3X1.5X-XDX1.HX-.'XJ.].].9XK TXlXJ : D.Z.u.9.2 T RX,XV.~.Z.0 g gX5XD.D g.! '.w 9 g.>Xy.D.HXI.a.nXp W r +XrX> . yX>._.. 0.@X0 &.EXn vXn.9 &XG yXGXm s.! '.!.' bXP.! T g !.] R 8.NXG.jX>X4.@.E.4 z.1X+ .uXD.DXV.`.DXVX5X5 ( D.A D )XV ~ 3 ~.`.`.8X1 h x 1Xc x 1 x.a.Z : `XJ I.$ I.f.$.^.b.X.X.XXgXgXg.b.o.o.X.o.o.U.o.oXg.oXg.oXg.oXg.o.b.XXg.b.^.k.k.kXt.k.k.kX*XdX9Xt.kXtX*XjX*XjXt.k.k.kXtXd.kX*X*.k.kXtXj N.b.X.o.z.XXg.b.o.o.b.b.b.o.X.o.X.o.b.X.b.o.X.o.b.X.b.b.X.z.X.X.o N.b.X _.X _.o _.X.o.b.^.k.r.8.8.8.}.K V :.l c <.a a R.aX1.aXD $X-XlXc kXZXSXh.+.+.h.+.hX0Xn.E._X+..Xn ^ o J H oX0Xh W M MX0 = HXh.+ =.+XhXwX0.+ z.; O.. 2.N.= uXDXsX,XDXDXD.Z.ZXsXL J.v.E M.E M.w 8.8X-.r 3 aXK [Xw M & MXw.2.0 ` D T .YXq._Xe.gXc D :.%.]XDXD.-.Z hXD B.HXDX,.aXqXqXpX<X,XI.` 3XIX- cXIXI.5X3 `XXX3XX # h.a x .[XBX+Xp.FXK 3.A.5Xt.5 3XX V.lXM $.a a.a a a.a.a.} $.a.a aX-X-.~X- R.~ 3 R R R $ 3.u 3.~ xXMXc 1X.Xc RXD R.u.aX1.}XI 3Xc.-.> [ J S.E.; gXc.]XU DXKXIX,X,X,.ZXD 1.>.Z.ZXK R RXDXeX,.M t.a.}.i.M.d.M 2 v.v o.q oXG b v v s s s vXGXG s x s s.9XG.nXsXD C R RXD.DX,X,.w.w.'XL v.w JXC &X0 o 9.N.M.M $.Z T.9 TXwXKXKXlXK.}.aXIXJXKXw 'XJ xX.XKXw.[.>.j.O s.[X,.3.9 Xc = H =.+XH.T.S [ VXJ.,XX.5XtXtXtXtXd.k.k.k.k", +"XcXc T :.'.5X5 $ :XD.]Xl BXIXDX1XK.].' T D gXcXU YX#.G.O 4.GX.X; ` )X,.D.Z TXc T 8X1.'Xc.n.n.n.nXU.j.> D.Z t.wXp.JXbX2 r.{XA b 0Xp.@ HX>.O.+.+ =.q.> !.9.9XO @.!.'.'.n.n g.OXO.>.q !.0 'XD 8XlXr.EXnXp y M yXl x cXK.'Xw T )XD $XVXIXIX-.8.8.8.uX* ~ 3.8.8.}.8X- 3 a.a.}X,.i.9 `XD 3.u.k cXtX9.K.XXg.k.XXxXg.bXg.X.o.o.X.o.o.o.X.z.bXgXg.bXgXg.o.X.b.b.X.X.o N.kXj.kXj.kXtXdX*XdX*.X.rXt.^X9./ N.kX*XtXtXd.kXtXtXdX*Xt.k.k.k.bXx.b.X.Q.b.XXzXg lXk.U lXk.b.^XjXj.b.b.o.X.o.b.X.o.X.oXg l.XXzXx.bXg.o.X _.X.b.o _.X.X.X.^Xt.8 ~XI.8 3.,X3XMXl.aX- R RX-X1XDX1 x h c h `X..O.1.h.+ z M M.h.YXe v._.)X= 0X> y s.Y.T = W.@XCXn.+ &.+Xr.1 M M.+X0.T = MXp 0 2 2 pXa.NX,XDXe $X5 x.wXG O v.= H J & JXGXDX1.`.8X-XV 3., M.>.+X;X; @ YXJ.5 xXc XpXn.S n., 1X,X1.aXD `.-XwXK.2XJ T :XwXJ n = [Xc < 3.`.`.8X1.u cXI 3XJX3XM.lXMXM # a.a #._Xr.jXnX+Xn # # |Xx ).$XM.,.[X7.lXM #.} h h # #XX.lXMXX.a.aX-XIX-XI R RXDXD.~.a k s hXD h 3XD $ ` `.,XUXK.2X,X5 c cXMXMXM.,.-.1 zX0 bXw.jXcXJXKXUXw : ` $ 1 $ T mXl xXl $XDX,X, h.a.} RX,XD.a.a.W C UXL v bX> HXC o J J J 9 b bXG.E J o J.E 9 s s s sXaX, 8 C TXU vXG v o yXC & HXm & o J.W.M.M RX,XlX,.Z.Z.Z.a.aX-.aX-.uXD sX.XJXcXH :.Y x 1 sXGXe &.W.M C.Y h.M.W._ o o n.- k.[X7.9.,X3XJ.5.5 NX9X9.r.kXtXtXd", +".9 :XK.]XKXcXUXJ.2.2 ! D.uXlX5XI.'.2 $.'.w.] $ c x 'XlXcXK m 4.|XKXK.Z $.w T DX1 cXDXJ.'.n.n s s &.'X; =.wXD._.@XA.B.PX:.y M.E.9 v.9.WXL.OX; & @.'.G.% g.w T.>X; sXPXl ' g.O.OXO.M.DX1X1.H.M.-XGX> ^X+ x.9 g `XI 3X1XIXD T.9 ).,.5X9 : )XK.5X5 3X*X*X*X*.8 ~.8.`XIXV R.}.a.a h 3 3.H.K.k.r.K.k.^.kXg NXg.o.o.X.o.o.XXg.o.o.o.X.o.z.b.o.o.b.o.o.o.o.^.^.b.X.^.kXj.k.k.kXtXt.kXdXd.kX9Xj.KXj.fX*.$.kX*.k.kXdXtXdX*XdX*.k.k.k.kXz.o.XXg.z.bXgXg q.6 iX@.I.I.b.^Xj N.b.b.b.X.o.X.o.b.o.X.XXk.X.X.I.z.X N.b.X.o _.X.X.b.o.X N.kXt 3 ~.8 h I VXMXX.a <.a R RXD.aXDXlXD cX, `.-X<XH =XZ.j.E 0XpXn v.M.M.v.s b &.9XJXwXKX+Xw.;.;.TXZ.hXHXh.T.O.h.Y.+.YXr..XpX> . 2 O 2XL v.w xXq x.w xXeXe.W 2 o 2 vXC.9XD 3XI.`.8 ~X- 3 B.9 y.j.>XK.DXDXIXIXDXB .iXe E xXD R RXDX, xX, $ $X,XDXDXD._ ._X+ U.}X-.8.`.~.8 3.K.,X3 V VXMXM.i h aX-.aX, .[X+XnXn u < x.5X*XV $XJ .g.gX7.F.lXMXMXMXMXM.l XM.l `X, 3.eX- RX-X1.a.u.MX,X.Xc ` x.9 hXc `XM .,XcXB.% ` `X3XX.[ ` .- [XwX> v o.w h.Z.Z.9 s.[X. x $ :X.Xw vX,X, xX,.u h `X,.,X3 1 xXK.9 1 x.W 8 p b O ^.q H H.q.;.q.;.q.q M & H &XC.q H b b sXa s.n.W.9 & b o HXC w ^.@.@ H.;XC.W.W.M R t R.e R.a.Z $.a a.aXI RX, $X5 $XD 3 hX,.a x.WXs.s.sXL.s v.W.-XpXpX+ H =.+XZX<X# kXK.,X..3 } I I 5.A.&Xo.kXt.kXt", +" RXD R RXD.DXD.n.Z $X5XUXJXJ.2 T D.2 T 'XcX..O ' m.e.eX- RXlXU :.D.' =.n.'XP.nXDXK RXHXK.!XG y.! g !.!XUX, u.YXn.v.vXnX>XH 1 R 8XIXDX,XU m g.] gX5.nXU.].nXK g ! = !Xm !Xw g y 1 $.8.`XIXI hXp.@X>.E x.} cXlXc (XXXXXcX,XD 3XV.uXX.5 ( :XxXJ 5 )X*X*.kX* ~XV.8.H.`.`.8 R 3 3 3X1.8XtXt.kXj.^.k.k N.XXg.o.b.XXg.oXg.o.o.o.o.X.oXg l.bX9.o.X.b.X.X N.^.k.^ N.kXtXj.kXj.k.kXtXt.kXt.k.bX*.r.kXg.z./X*.kXtXtXdXtXd.u.kXdX*.uXtXdXd.b NXg l.b.X.b.oXkXg.bXz.^.^Xj.bXgXg.o.o.b.X.o.X.X.X.b.X l.X.XX@X@Xx.X N.o.X.o.o.o.b.X.b N.k.u.r 3.8.KXJ V 1 :.}X-.aX- RX,X,.Z c.a xXD `XwX#XZ z MXG 0 0 v 2XLXn.WXLXn =X;XUXKX- 1XKXrX+ H.O.T.O.1.S.SXH.1.1XZ.1Xr.g.<X%.@ ^X8X> J.@ vXL.W U v v H v &X+ oXLXG 1.Z $X,XV.kX5.zX5.uXDX3XH.3 T `., :Xx.8 3 c x XpXpXq._Xq U.M t RXD.a $.MX1X1XD U.M._.m.FXpX,X1.`.8.8XI.`X* cX3 VX3XM.l a < aX-X-XI.l.p.pX+Xp.M <.a 3XlXl.5.j.pX+.p.gX7XB.F XBXB X7 kX7 .lXX 3 #.aX- R.a R 3XD.a.a hXK.,.,.S kXcX7 .lXM ., [ V kXM XXXB .Y.g z M oXL.M $XK.a h xXKXc .>X.XK.-.ZX,X,XDXDX,XD $ $ 1 yXcXy.] T T.9.Z 8.N v.v OXi 0 J ^ ^ 0 0 ^ 0.v J ^.; 2 b.E &XCXC o OXLXLXL b wXC b.v.v.v.v.v w 0 OXLXe.a.a.a aX, R.MXDXD t R aX-.a RXDXD BX,X, $.M.M.MXe.W b 0.E.=X0 HXw M W MX0 M.OXh k [.,X#XhXH.3 6.,X9 qX3 q.kXtXt.kXd", +" R a R R RX1 8XDXD.n tXl ' $.].2.0.ZX,Xl R.w.Z xXKXDXc.wXD : !X,XD.DXw ' s gXDXIXJXK KX; =XUXw !.> =.'XU.W.EXp...s..XC.Y x.9 D T.ZXD DX$X; DX. 4X5.G m.'.9 g 'Xm g.OX; mXl R 3 x.]X3Xo ~ R x.jX>X+.W.MXI R.8.uX3XX D ` D.,.5.8 ~.8.r.u.kXo )XxXx.k.kX*.k.k.k ~ ~ ~.`.8X1.8 3XV.8.H.kXtXd.X NXgXg.o.b.X.o.X.o.o.b.oXgXgXg.b.oXgXgXk.X.o.XXg.b.o.bXjXj.kXjXd.k.kX*XtXt.kXtXt.kXt.k N.KXj.k.kXjX*.^.kXt.kXtXdXdXd.k.k.u.kXtXtXt.^.X.oXkXg.oXgXg.b.oXgXj.^Xj.X.bXx.oXkXgX9.o.b.b.o.X _.XXgXx.X N.& 5 QX@ ).z.X.X N.X.X.X N NX*.r.r 3.` : VX3XX #.a.aX-.a < $ hXD 1.3 1 : [.,.S.1X0.Y 0.sXG JXL O y.sX>.j &XwXDXlXV h $.- MX+.jXh.1 k [X7XHX<.1.- .hXh.yXrX: MXhX2.@.v.s vXe vXs.Y.T n M M = M.> kXKX.., D I.| IXo ~.H 3Xl # ` | :X3.$.rXV 3XV $.l.YXpXGXpXe x h.}.WXDXJXJXK m xXc tXeXeXq x XI.8.8.`XIX-.uXI.u V XM.l.} < <.aX-.a.l.-Xr Xp._ t.a.aXlXcXG.j.y W.<X7X%.g.[ kX%.[X%.g.[X%.[XBXMXM h 3 RXI.aXDX,X,.a x ` 1 ` [.3.L.L k.[XB X7.Y [X#.-.,.g., [ [Xr MXr.E.)XD x ` x.9 $.9Xw g.2.w.D.wXD U h $ 3 hXK.Z s.ZX,.DXsXDXDXDX- R.a CXa.s 2 2.v.v 2.v 2 2 2 2 2.v 2 0 / 2 O 0 o o H HXmXC JXCXC.v.B 2X= 2...s 0 v O 1.M.} a.a 3XD.MXDX,.Z.a a.aX- aX- RX1 $.a.M.aXI.M.M._._ JXa 9 b.s.)Xp.) v 0Xp M.[ `X3XM xXcX.X. }.K 3X* :.r.kXtX*.k.k.^", +" R.aX-.a a RX, R xXl :.Z.wX-XKXHX.X-XDXDX-.M R t.eXK $ : m.'.OX.Xw.] T sXO T BXDX1.' g '.9Xm y s.E.>X0X0XpX4 ......@X>.E = !Xm.2.OX. !.2XcXy 'XJ.' 4X;.9 g.'XwX; gXU.]XUXK $XDXIXV.]X3 `Xl $ 1 x.M R.aXIXIXIXI.`X1XVXV.] 5XoXV.r.k.k.kXt.kXdXtXt.k.kXj.kXj.k.r.8.8XI.8.`XI.u.`.H.r.uXd.^.b.X.o.X.o.X.o.X.bXg.X.o.o.o.X.oXg.X.b.z.o.oXg.b.X.X N.^.kXt.k.kXtXt.kXj.k.k.k.kXtXt.kXt N.k.k.kXt.k.kXtXtX*Xt.kXt.kXd.uXdX*.k.kXdXt.^.XXzXgXx.b.X.b.X.X N.kXj.k.b.oXg l.o.X.bX9.o.X.b.X _.XXgXgXz.k F.rXx T 5 ) ).k.k.k.u.kX*X*X*.r 3.8.`Xl VXMXM # R.a.a a.a $ h x x.3 x = xXc.-X<.[.j JXmXmXP.9.w.x HXr.E v.E U g .% 1 YXl k yXZ.h.1Xh [X#X<X#.T.F WX%XrXZ.jX%Xh =XC.j.EXn &.Y.jXn.1 n.T.1.1.jXJ x x ` cXVXl.kX5.k ~.H.rXV ~X*X*X*.r.rXjXt.kX*.u.uX, TXw.[XG.FXe._.FXe y x x hXl x.M UXe.w gX3 3.8.`.8.8XVXV.`.KXJ .l.l h.}.aX- a.iX7.j yXn x < u.i.YX+XpX2 z.yX4X%.p.g.p.pX+.[X+.{.x.p W.pXB.lXX.} cXc 3.u.ZXM ` VXB X+.FXp k n.+X: zX% WXH [ [ MX< n M M M [Xr.+.x MXe.M U R.9 1.9XJ.9XKXD.ZXDX,X,XIXDXDX,XDX,.}X,X,.M 8X, R.M.a.M.M t 8 C 8.WXa.sXa 2.W.= 2Xs.W.)XsXLXL.N.N 2.s 2.v O ^ w wXC HXi 2 2.).N UXe.wXe.Z h.wX,.a.a h.u h RXDXD $XD R a tX- R RXVXD.Z cXD 8.M.}.)Xn s.M 8.w J 2.sXb.s v.j.[XcXB.-.lXcXK [ mX. c.KXK 5XJ 5.5.XXx.^Xo", +"XD 3XD.aX-XDXD.e hXc.'XJXJ c.0 KX. D.9 TXKXJ : ` R.9 m 1XUXJXh Y Y.O.O 4.G.ZXI 8XDXO.0 x.w.9.> vXGXmXZ.+ & M.+.jX0 zX+X0 = y vXaXyX;.%Xw mXwXJ.9X,XKXPXK g sXyX;X; TX,.u T D ` c :Xl 3 :.]XJXl.uXIXIXIXI.`.8XI.` 3.8XI.r.KX*.r.KXt.k.^ NXjXtXj N.o N.b N.k.kXt.u ~ ~.8.`.8.u.` ~XV.k.kXj.^.b.X.o.XXg.bXg.b.b.o.o.X.o.X.oXg.b.o.z.X.o.o.X.o.^.k.^.kXt.k.kXt.k.k.kXd.k.kXt.kXt.k.k N.k.r.rXt.kXt.k.kXt.kXt.kXtX*.kXtXt.kXdXtXd.k.^.XXkXg.XXg.X N N.kX*Xj.k.XXg.cXg.o.X.X.X.o.X.b.b _ _XxXx.kXtXV.8XDX1 cX3 I 5X9.K.k 3X*X*X*.u.r 3XIX3XX # #.} 3XI.a.a.}XqX7XcXK.,X7.lXM.Y ` [.S M.j y 8XD.wXc o ^.@.@.s J.Y.-XcX5XJ cXc.OX. !.TX<XwX3.g.SX<X%XrXpXq.j.h.S.O.hXSXh M.+ = = =X0.Y = k n.YXw.-.9 R.aX* 3XV ~XV.r.H.r.rXdXt.k.kXt.k.^.k ~Xt.k.kXt.k.K.KXH.3.1X% MX>XpXq.j.-Xw.[XB.jXc = .YXq 1.- h.a.}X-XI.8XV.H.`XX VXX.l.lXM h c.a.i .gX+XpXp U XpX4X2X2X+ rX+ z.T.xXrX+.<Xn.<Xf.<Xf.<.pX%.[XBXM cX-Xl.,.-.KXH.SX%.T.g.gXr [XrXr.J.x.h.h.j WXrX+Xr.jX>XpX0.E S M.y zXr..Xs U a xXJXK 1.M.Z $X,.Z.uXI.ZXIXDXDXDX,.M.a $.a.a R R R R.a RXD.M.M.M 8.M.M.MXs G 8 C 8 C t t.NXe C.N.N.).)X= 2.v.vXi.v 0.v 2.) C C.M.Z xXlX,.ZXD x.a 3 3.ZXI RXD.w h.W.a a.a.a.e.ZXDX,X, RXoX,.M.MXnXn.9X1X,XDXC 0X=X=.s JX0 k.-.SXHXH [ K.3X#X3 I ,.$.| I }.HX*XV.kXt", +" 1X.XlX.XD.- $ 1 ' x.a.Z R R $ mXl.D c $.ZXcX5.Y hXlXD RX1XD TXy cXKX. g 4XI.DXI.0 T.n.nXD.Z s s K !Xh.O.T.jXwXr =X0.>X;.G.! s s mXH.2 g.2.'.' mXOXwXwXUXK.'.'.> D.DX5X- cX5 ) DX3.5.H R 3.k D.uXI.8.H.8.8.8.8 ~ ~.r.kXo.k.kXtXt.^ N.X.b.^XjXz.X.oXg.X.X.^.kXjX*.r 3.8.8.8XV.8 3.r.k.k.r.k.b.o.b.o.X.o.o.X.o.X.o.o.o.b.X.o.XXg.U.bXg N.b NXjXt.X.^.kXdXtXdXtXdXt.kXtXt.kXt.kXtXtX9Xt.k.^.uXt.kXtXt.kXt.kXtX*XtX*Xt.kXt.k.kXjXt.^.bXk.b.X.o NXjXjX*.k.k N.oXkXg _.b.b.o.b.X.o.o.X.X.X.b.k.u.rX1 3X, R R.~ 3 c T ].].kXV.r.8 3 ~XV.` V `XM.u.a.8 3X-.a h.Y.[.,.[XJ ` :X3.-., nXhXc R.DXVX,XD.Y v.) 2.s JXr.TX;XK ! D I (.O =.O MX.XwXwXZ.L.1.FX4X4 hXrXp.-.1.1.1.gXHX< zX..1 kXB 1 .9XcX..8XI cXV 3.8X* ~.kXt.k.^.k.^ N.X.X.k.kXk NXg N.kX9.rXX.].,.> =X0.+.+ SXr W z WXH WXr.pXrXn._XnXB.i.a.8.`XI 3X5.8 3 cX3 VXX VXMXM #.l #.FX7X#Xr.p y M.<.x W M.<.x > zX2 W.hX+Xp XnX4XnX4X4.x.p [X7.FXM < #XDX,.}XcXBXBX%X2X2X2X2X: zX>X6 z.4XnXpX> yXM EX,XeX4.x.yX2 w S HXG.W $ x.w ` $ h cXD $XD 3XDXlXJXc c $ $XD.M.aX,XDX-.a.a R R.a a 1X1 R t.MX,.MX,.*.M.M C 8 < 8 t.MX,Xs.*.M.N.N.N.).) /.)X=X= 2.N C._.9XD x $ D :XDX5XlXcX,X,XI R.M R.MXlXD.a.aX-.a 3 R.aXD 3X,.% mXeXmXr.jXU m.%X. K b J ^XC.> = =XS.GX#XJ.,.3X# 6 `XMX3 ) ) :Xo.u.k.kXtXt", +"XJ k.,Xc.9X.XK.,X..' :X.X1XDXl m.2XD.* R.eXKXw aXl :Xc.wXKX5XJ.2 8.w s.0 KXDXI TXU '.w s.Z.n vXPXOXm g.w.DX, h.Z xX.X.Xw g.' '.D.w $ 8X,.Z 1.'.9.GXU 'XU s 'XPXw D.]XcX5X1 RX1.u T IX3.K 3X- 3XI.8 3 ~ ~ 3.r.r.r.r.k.rXxXt N.b.X N.X.XXg.b N.bXg.b.b.X.o N.^XtXjX*.r ~ 3.`XV.rXtX*XjX*XjXj N.b.X.o.o.X.o.b.o.b.oX9.o.b.X.o.b lXk.bXg.b.bXjXt.^.X.kXdXtXt.k.kXd.kXt.kX*.k.kXt.k.kXx.r.k.H.^.r.kXt.kXtXtXtX*Xt.k.kX*.k.kXt.kXtXt.k.b.z.X.X.b N e.^.^.^.^XgXgXg.o.b.o.oX9.bXg.X NXzXd N N.k 3 3XD 1.9.9 1 1 x.' xXl g.,XK.}XI 3X-XI #XcXMXl x $ c # c.} $.- k [X.., k V `XKXc.GX# `Xc.2.$.0 : :Xr & s.s.s 0 0.jXm y.H.Z.D DXlXU n.-XH.-.Y.O.+X0 [.1 W.F.jX<Xp.[ n.gXBXB.-XJ.Y.Y `XB ` ` : ` D `XI ~X*.u.rXx.z.k.XXtXg.XXk N.k.f N.k.k./.^ qX9 N./.k.k.KX,Xl.'.E y.; z SXr.pXnXn.jX4X4._.F._Xq.p # <XIX1.` c.k 3 3XI.8X9X3 V VXMXM x .lXB.h.T.1 z.h zXZ.T.+ z WX>X4Xf z z UXr E.M.M u UXGXp >.[X% 1.l 3.aX-.i X7.pX:.<Xf %X6.<.<X8.@.JX>.@.@ o y.YXG >.xXfX8.4.4 M.; J s.W.WXD $XDX, 3X,X, 3XI `.2 kXlX. 1XJ ` RX-X1X,.a BX- R R R.eXc x X5 x a.M UXD.a.M t < R a R aX, h t t t t t.M u.M.)Xs.).).N.*XGXH 1X.X.X..G.%.%Xw.G x `X,X-XD R.Z h.Z.a.aXD.}.a $ $ :X. cXh.O.OXh & M g.] ).' K 0 JXm HXKXK k.3 V.,.,X3.- V., #.a 3X1.u ~.5X*.kXo.z.5", +"XDX,XlXI $.aX,X,.Z 1.' TX,.D DX.XU.] 1.Z h $.9X1 R.M.Z.3X;X.XU $ BXD.nXU ! ' gXU.'.' s ! 1.' y yXD 'XD 8XDXs.n g.>XwXPXK g :XK mXJ g.,Xw m m T.0X. T.'.' s.wXy.G $ : :XK :.u.Z 3 3.uX5XV ) D.KX*.rXtX*XtXj.k.k.kXt.k.^Xk.^.X.XX9.o.X.XXg.XXg.XXg.X.b.oX9.o N.^.k.kX* ~.r ~.r.u.k.kXt.k.^ N.b.o.X.o.X.o.X.o.X.o.X.o.bXg.b.o.X lXg.X.o.o.XXjXj.^.X.^ N.^.k.^.^XtXtXtXdXtXd.kXdXt.k.k.k.5.I.r.kXt.kXt.kXtX*XtXtX*Xt.k.kX*.k.kXt.kXjXtXk.X.o.o.b.k.^ N N NXg.XXg.oXg.c.c.cXg.b.b.^Xt.kXt.5.K 3 xXGX+ .X6.<Xn.@Xf.@X>.E.E M nXGXpXGXG.pX7.YXq 1 xXB.Y #XK k mXl 3 #XM : I.2.%X. D., D D D D I DXPXw 9 o 0.@ ^ 0.; &.wXdXV.RX5XJ Y.OXH KX;Xh.OXr v.1Xr z W z.1Xp.g.S k.-.Y .9 : `.l xXKXc.,.8 ~X*.8Xt.r ).$.X q.XXx qXxXx.XXk )X*.X q N.z.o.XXx.kX5.k.uXl 3 $.Y y H H M z.jX2Xr M W.xX4Xn.FXpX7.i c.uX*X*X3X9XXX9.k.K.KX9 VX3XKXBXK.F [X7.pX2.xXr W.@Xn.;.+ W.<XpX4XnX4Xr.M U < <.M hXpX+.pXr.<.FXM.} h h .lX% z W rX8.4.x.y.<.x.x MX+ =X0.j nX+ nX:.T.4.4.4 S.; & H v.W.D.DX,X,X, R.a.aX-XI 3.Z x.u :.ZXIX,XDXD R a.DX1.aXD.a RXD.aX-XD `Xc.Y ` :X,.}XD.a.a.a RXDX- R.a cX-X-.a R < a t t t t C a.M < $XJ : m $.Z.ZXD.ZXlXJX5X5X. cX,.Z $.9X. `Xl $X,.ZX,X,X;.OXl.9 s.= o JXO $X1.` :Xc._ =.+.].O # 3XIX-.u k.3.[ 6X# [ `.9 kXJ.| ) P.|.A.A.|", +"XIXD T.9.2XUXJ.2Xc TXUX5.O TX.XKXJ T.' T.2XwX.X.XJXKXlXwXl.wXKXKXD 8.w T.9 'XlXl.n.Z !XK gXK.9 gXJXOXUXU T s.! ' T s.n.9.0XUXDXDX,.]Xc.,.'.0.9.9.n.O.>.DX.XNXUX;X; 5 `XIXI.uXl.K (XI 3.8 3X*X9.X.kXjXj.k.^ N.b NXg.b.zXg.X.o.o.o.X.X.o.X.o.oXg.o.o.o.X.oXgX9 N.^.kXtX*X*.kX*Xt.k.kX*.^.bX9.o.XXg.X.o.o.X.o.b.o.o.X.b.o.X.o.o.z.oXg N.oXg.^Xj N N.oX9.o.X.X.b.^XdXd.k.kXt.kXtXtXoXoXdXt.k.k.kXt.kXt.kXtXtXt.kXt.k.k.kXtXt.k.kXt.k.kXxXt eXj.^.b.o.bXg.o.o.o.cXg.c.c.cXkXgXg N.^Xt.kX*.K c.iXcX> ^X6.P.P.J ^Xf ^ ^ ^XfXp.EX>XG .X> W M W M M.jX%.g.-.g K.G D.$.,XXXJ }.] m )X.X*X* c.k.uXo DX1.] $.9.qXmX>.;.; =.E =XIX1.`.8XIXI 1.K.9XcXhXU.9.jXr.jXpXn.j.x.[.y.T K.SX.Xc [XJ k [ [X..S.O I ) 3.r.kX9X*Xt.kXdXt.k.k.r.k.k ~.uXV.r ~ ~.r.k.kXj.kXdXt.k ) D mXl D =X> HX> H.T JX4 0Xn M.T WXr . .-.,XD #.r 3X*.r.8.8.8X-.KXJXK.' 1 xXrXBX7X2 >X2.x.. v.W / /.vXf z.;X>XpXpXp.[XhX,.a h.* xXG >.xXr [ ` XB.l.[X< W W SX: H r r SX>X6.<.xX4Xn vXn oXn .X>.4.4.4X:.C.EXn.EXG.W 8XD 3X, $X, h cX5 x.aXIXl 3X, xXKX,.u.-.' 3XIX.X5.eX1.a.e RXD RX,XI :XDX, $ :.[XKX3.MX- RX1X1XDXI 3 aX-.a R.a.a.}XD.}X,X,XDX,X, c 3X5X1XVX,X1XDXDXKX, :.ZXIXlX,X,., $.Z h.ZX, hXDX,X, :XD sXs.s O & !.~.u R 3.aXK.G.n RX-.`.a.`.8X-X3 6., VXXX<.,X<XJX,X9 c.u.kXV.u.r", +".ZX5Xl 1X,X,X,.Z.Z $X,XD R.'XJ T TXUXJXKXJXc Y.O.G mXJXKX,X,.Z.2XK R s.!XJX.XJ g.].9 g.- sXw.OXw =XUXw s.n.'Xl.9XD s 1XD.MX,.wXlXc.>X,.9 T sXK g.-Xw @.2XyXy.G.G kXl D mX3XlX1.u TXVXV 5 )X* c.k.k.k.^.^ NX9XgX9.o.b.I.bXgXg.o.bXg.oXgXg.o.o.b.o.o.o.o.b.oXgXgX9.^.k.^.k.XX*.k.k.kXj N.XXg.bXg.b.o.X.o.o.X.o.X.o.o.bXg.b.o.X.z.oXg.X.b NXjXj N.o N.b.X.X.X.X.X.^Xt.kXtXt.kXtXt N.^.rXt.k.kXd.kXtXt.kXt.kXt.kX*XtX*.k.kXtX*XtXt.kXt NXt.b.X.o.o.b.oXg.cXgXgXg.U l.c l.UXgXg.b NXtXt.kX9X*.}Xc.E JXf ^Xf ^.J 0 p.sXeXL.W.MXe x sXG.@.J.x.4 WX:X:X2.y.1 nXH ` c 3X9 c.5.KX9XxX9X*X*X*.rX9 5 ).K c 3XD T &Xn.s.... v.! TXIXI.HX1XI.8.}.`Xc.2XhXw.OXh.T zX0X2.;X+ M [XZ IXcXc.3Xc.- V X3X7.-XK aXV.rX*X9.k.r c.^.uXd.k.H.u ~ F.`.uXV.r.r ~ ~.r ~Xt.k.k.k.2 5X. T.,.O &.q w yX0.@ b S M.x.h M.h.+ MXHX<XHX3 #.H.5.8Xt.8.u R ' : 1 RXD.wXpXr.p W.p.CX> 0 2 /Xs.= / 0 S HX8X>.xXnXpX+ xXc c $.}XGXp.<Xp.[.[XB.SX7.SXS z.h M.+X:.T.TXh.y z.;.T W SX4Xf.CX> w.4.; S S.4X>XnXaXs.w 1 tXDXKXDXD k ' RX, m R R $.Z a c `X, RX5 $X-.Z $.%X5.~X1 RX5.* 3X,.ZX, $.ZX- RXD :Xw.2XlXDXD.Z.Z $.K.D 3XDXDXDXD.a.a.a a.a a a.~.~.`XlX-X1XIX,.`.a.e RX,X-X- $XD RXDXH.3XcXl xXD.Y xXK.] `XZXwX0 o =Xw D.uX9XI.} DXJX, RXI.`.`.8X-.` 3., V XB V [.Y.9XJ c.uXD.8.K.HXV", +"X.XcX..2 kXUXJXK.9 : ' : '.'.2X, R B sXl.9 ' T.ZXK.GX; D.eXlX,XDXw.wXK T.].' TXcXK m g.D x.Z sXK yXw.9Xl.w TXw TXJ yXJ.MX,X,.F n.9.Z : s.'.2.2XU ' g.2X;.ZX1Xl DX. 3.aX5.9 D.].uXVX1.K (X9.$.& N.^.kXz N.bXgXg.b.oXk l.bXg.bXgXg.o.o.b.o.o.o.o.o.bXgXg.o.oX9.o.o N.^ N.k.XXt.k.^Xt.k.XXg.X.X.o.o.X.o.X.o.b.o.X.bXg.X.o.o.X.o.z N.bXgXg.^.^Xj N.o.X.XXg.X N.b NXjXt.kXdXt.kXt.k.X.kXt.k.kXtXtXt.kXt.kXt.kXt.kXt.kXt.kX*Xt.k.k.k.k.k.5.r.X.o.b.o.c.U.cXk l.UXg l l.c.U.UXgXg.X.^.k.k.rXMX*.a.YXC.@X6 ^X6 ^X6Xn.) u u.M.MXD.M 8.Z vX4..X4 . ..C.{ ; W.;X<.O :.`XD 3XV 3XxX*.uXtXtX*XtX*X9.$ I ~.5 cXcXcX. oXp v v & = yXc.u.D 3XI 3 3XI )X. m.G K K K =.hX0.+.@ S nXH.3 YX#.3XHXS k.- [.,XH., :XI 3.r.5.rX*.rXV.k.HXV.XXJ DXJ.]XOXx.`XV ~.H.r.u ~XtX*.r.uXVX5XV 8Xl 0.v 0.@ b.v 0.+.h ^.+.4.+XZ.T.+ z.1X;X,.`.k ~ ~ 3.HXDX1.9XlX, U.wXLXp.[X:.x.4 w 0.NXs C.N.).v H.;.; M SXr.@XpXp 1.MXHX, U._XpX+Xr.[X<X<.[.h.h.; z z.L.h.h.LXZXZ.h.y.+X: r.{.4X8 w.4 z S wX>.@ vXeXe.M.ZXc.u xX5 RX1 hXD.MXDXDXD RXI R R R BX-X,.uX-X1X-X- D :Xc :.0 g D.'XwXJXU D.wX,.ZX,.D xX5XH.DX, RX1.ZXDXIX-X- RX-X-X- t R.a.eXI RX- R B 3 c R RX,.a.M.a aXIXDX-XVXD R.ZX5XH.YXcX#XJ.%XwXJ.,XK.1.L MXLXsXK D D.2 m `.3X5 DXoXl.`.~.`.`.8XV.,XXXX VX7 kXp x.-XZ.u ` c 5 : )", +" $XlXKXl :.'XcXKXKXy DXy.GX. !.0XDXD.'.% ! :XUXIXJXU :XcXw.ZX- 8XDX.X;Xc 8 RX-.a.ZXw 1X-XK RXD t.MXD UXDXJXh m nXlX,X, h UXcXw $XD 8 ' sXc.>.O g ].2XK TXJ cXDXVXl I : c.u c.] (Xo.H.5X5.^ ( 5.X.o.X.oX9Xg.bXg.X.b.UXgXg.o.o.bXg.V.oXg.o.o.o.o.o.o.o.oXgXg.o.o.X.o.XXg NXx.^Xt.k.k.^ NXg.X.b.X.b.bXg.o.X.o.bXg.b.o.b.X.o.bXgXg.oXg.X.o.b.b.X.b.X.b.o.^XjXjXj.kXj.kXtXt.k.kXdXt.X.kXt.k.kXt.k.kXtXtXt.kXt.kXtXt.kXt N NXt.kXtXtXt.k N.^ N.oXg.c.c l.U.c.cXk.c l.c l.U.cXk.c.b.XXdXt.kX9X* 3 g.q.q H.4 S.;Xf...m.).M <.}.a.M h U.MXL v._XGX4.C.P ; L.<.Y.G k.0XJXJ ) 5.2.R D ]Xx.|.k.u.r IX. : DX5 m : $ T n = nXw.+ =XhXh.G.OXI.u 3 3XVXV.8 $XU.OXhX0 H.+.T.@ y.j.1XH.S [., kX< [ [ =.jXw !XJ.D.8.5X*.u ~.H.8.H.5.2.%.0.0.'Xy gXUXP mXV.H.8.H.r 3 ~ 3XV.H.KX,.DXP wXCX0 H.@ O ^.@ MXfXi ^Xf.4 S M.+ M M =X5XJ.^ )Xo D.K.9 D.3 c :X,XL v.@X6X6 ^ 0.vXs.N C C.= / 0 O.vXn.s wX2XpXp v $.-.e.[.wXn.-.[.-Xp [Xp nX:X0 z z.x + [X2.;.; M.4X4.<.C.4 SX8X: r H J 0.v v v h U.a $.Z c.aX-X-.aX- R R.MX1.MXD.aX,X1 3 3 3 3X, : 3X, 3 DXJ TXK $ $.Z.w.Z 8.w $ R B 8.MXD.DX, R.wX,XD R RX,X5 R RX1 R.aX1 R B RX-.aX- RX1X-XDX5 RX-XD RX-X, a a 3X-XI #X1X,X,X. $ 'XK.9 xXl n cXl x v v bXDX-.H c mXc : `X3 I D D.`.`.`.`.8X-XX V., V k.gX< n 1XhXh.1XcXH I.%", +" BXl.Z.e 8 R.a c 'XcX.Xc D.2.GX;.2Xl T.9Xl.wXD s m T h gXJ.ZX,X,X,X..O.'X,XDXDXI '.2.wXcX5 $.a R R RXl.9.GXwXcX1 8XD x.9., kXc UXDXs.0 T !.2X;.%.O DX1 #.] ` IXJ :XV T ( : (X1XV T.X P 5Xx.X.zXx.X.o.XXg.b.XXg.o.o.z.o.X.oXg.cXk.U.U l.c.c.V.o.o _Xg l.U.z lXg.b.X.X.X N.X.kXt.^XtXj.k.b.o.X.o.o.X.o.b.o.X.o.o.X.o.o.X.o.oXkXg.o.X.bXg N.o.XXg.b.b.X.b.^.^XjXjXj.k.k.kXtXt.kXt.5.kXtXtXt.k.k.rXtX*Xt.kXt.kXt.kXt.k N.X.k.k.k.k.k N N N.oXgXg.U.U.c.U lXkXg.c l l.c.UXk.cXk.X.b.k.kXj.XX*XIXc.qX0 M MX:X0.;X4 v E h.} hX,.aX, $XD.Z 8.Z U.)Xn LXA {X4XrXw IXJ.5 m.] 5.$ I 5 5.R Q.kX9X9 | PX5XJXK.K.,.'XJ $ Y.>.q J H.j.jXmXm $Xw ) c.KX*X5XV 'XN.GX0XGX>X> 0.@.;.1 zXH =.1X< n [ nX0Xw 9.0XOX1X-.|.5.].| :.2 m.G.2.OXyXO.>Xy 'XU g.2.2 TX5.8X1XV.H.H.HXI c B.DXU & M z.+ & H.; S H S.xX6.;.4.;.T.+ = z.OXU.,XJXJ ) D.] DXlXK x hX,XeXe.v 2XbX=X= 2.N.M t t.M.=.s 2.)X=Xb.v.{.xX4XpXq t hXK x <XG.Y.9.g.j.pXrX2 M.JX2X2X2.x.{X8X:X8Xf L.P.4X: S.4 w w.E w b J.W.w.Z h c $ 3 # c.u 3X,XD hX,XDXDX,XDXIXD.aX1 R.aXDX-XIXIX1 R RXDX- B.a R R R.aX-XD B tX,XD.D.Z $.w $.MX5 $.aX- aX,X5XIX-.aX1 B.eXD RX-XD R t.e RX-XD 3X1 a.aX- a R.aXI R R x.eXIXD c.w h $.M x `XD.Z c UXL 0 s s.Z 3XD.MXDX, c 3 '.u 3.`X-.8.8X-.8X*., k VX7 kXhXh.p =XcXH 1 x $ c", +" a.,XlX,X,.a R s $.aX,XD.Z.nXH.] TXl TXKX5 RXIXD D.'.u BXJ., a.a.aXJXyX..ZX,.MX,Xc.O.2 1X,XK.3.'Xl.'X..%.O.].n.D.Z.Z.ZX..w 1 KXJ.'.0.0.GX;XO.D.]X# T cX-XV.8X3 5 T.u.8 c.2 I 5XxXoX5Xx.R fX@ QX@XxXgXgXg.oXgXg.X.o.U.o l.c.c.U.U.c l l l.U l l.U l.U.U.U l l.o.bXg.b.^.b.b.kXj.k.^Xj.^.^.X.o.b.b.X.o.b.X.o.X.o.b.X.o.bXg.bXk.o.X.I.U.I.#./.o.o.X.X.oX9.X N.kXt.kXtXtXtXt.kXt.k./.z.KXt.kXtXt.k.kXt.kXt.k.k.kXtXt.^.X N.^XtXtXj.k.X.X.b.X.c.c l.c.U.c.UXgXgXgXg.U l l.cXk.U.b.o.^XdXt.XXtXV.9 g.jXm.EX0 M.; wXn s.MXDXIX1.uX,.a.aX,X1XD.Z.W.< 2.P.@.j.GXD 3.HX5XVXdX5.kX*XtX*.k.u ) IXXX.X3X,Xl : D :.uX5X1.0 T.9.EXL..Xn v y s.' T D I m I ].G.G K.+ o.+.+ S.T.T.+.h z.hXZ.+ KXhXh K.> 'XPXO.2 ( ! ( @XyXc.G @X;.%.OXyX;X;.>.>.9 b 9.!XUXOXU TX5 $ : gXc g.2.% n.>.>.OXh.+Xh = &.x.<.;.y S.4 z ^X> ^X> y n s xX1XI.uXV.` R c x h.w.).NXb /X=.).N.M.MX- t < C.NXL *X=.)Xb.P.;.C.<XnXq.W < UX. h.M h.YXpXpX>X8X2 r rX: r r + r ;.{ ;.{X8.y r H ^.4X>X>X> H b vX,XGXl 1XDXDX1.u a.a.a a a aX-.a.e a R R.a R.aX-.~XD.ZX5X- RX1 c R.a RXDX- RX, R R.a RXD R.aXD.M.Z $ h.M $ hX5X5.a $ $X1XD $.9.9X,X, hXKXlX5Xl.'X5 kXD a.a.a <X- t.e.a.Z RX5 a.aXD.ZX,XD.DX,.9X. nXl T.W vXC b yXU Y.9XJ.YXH DXw., 1 RXD.`.`.`.`.8XI.8.}.}.a Xw.-XGXp._.9.[ 1 xXJ", +"XD ' $XJ mXc k.,XcXUXD TX,X1.2X..,.9 :X,X1 R B B.'.2 $.Z cXlX- RX-Xw $.D k D.eX5X; mXDXDX-XD.DXcXI.2 gXU.2 !.2XUXOXUXPXO.!.0Xy gXPXU.>.O.O D T.DXJ., , ( :X5.r T I.%XJ.2.5.0 5.| DXx.^XxXx.&.&.(.X.o.XXg NXg.b.b l.#Xk.U.z.U.U.c.U.U l.U.U.U.U.U.U.U l l l.U lXg.b.b.^Xg.XXd.^Xj.kXjXt.^.b.o.XXg.o.o.X.o.o.o.X.oXgXg.b.X.o.z.o.o.6.I.6./X@Xg.o.o.o.o.b.^.^XtXtXt.kX*.k.k.kXt.k 5.&.zXoXt.kXt.r.kX*Xt.uXtXtXt.kXj.X.X.b.X.kXjXd NXk.XXgXgXk l.U l.cXkXg.o.b.o.c lXk.cXg.cXkXg.XXz.X.^XxXt.H.n !.!XU & M &.E.vXe.N.M 8XDX1X-X1XIXD.H 8XD RXn .X>X>XmXlXD.HXtXdXt.kXdXVX*X*X*.k.uXdXV.5.Z h.9 hXl.] :.uXV.Z.8X1Xs.D vX>XG.. O JXG.YXP.Z.kX5.H.u.0X;.> = &.; z.+ z =X: M zX0 M MXwXwX..> ! g gXPXO.| ! !XyXUXOXU.'.' s.D.WXDX,XD $.w.n s.! 9.! !XU !XOXU.9XOX.Xh.1.O.OX. = nXyXh.1 MX0 W.xX2X>.@.xXC 0X4 v...Y.+Xh T.H.5Xo.r.5 $Xl.WXeXs.;.EXe.N t u t t t a t.e C C.W C C 2X=.sXf S.x.@X+.p x sX<.ZXB h.j H WX8 r rX8X: rX8.{ r ; ; ; ; L.4.; wXf OXf vX>.j MXe y gXwXcXlXDX1XI 3.a a.aX- <.aX-.a.a R R t R.~ RX1.a.uXI 3 R R.a.MX,X- $XD ` $ :X,XD.MXI RXDXDX1 R.M.Z x $X,XD hX, $XlXD.}.ZXD., $XJXcXKXK.9XK TXcX,Xl 3 R.}X- R.a ` $.eXMXD #.aXI hX5XKX, R.M R.aXc T mXm.E.>XC 4.q ! MXcXl.9XKXUXw oXDXD 3.`X-X-.`.`.a.`.}.a.a.9.YX%X+ zX<.p.1.O.9", +" $XDX-XD.9 R $ $ $XJ.ZX; 1.n.,X;X5XJXJ.,Xl B RXI $ mXl $ T.ZXlXD.u D 8X1.DX,X- D.O $X1 R B RXI ' m gXU.].0XOXU g g.2 g.0 ' ' g !XO.2 K 4 :X5XK :.H.u.] I 7 ] :.R :.5 I f.5 q )Xx.& ,.7.R q.R.z./.I.z l.U.U.z.I.U.I.I.U.U.U.z.U.#.U.U.U.U.c.c.c lXg l.c l.c l.o.bXg.o N.z.o.^ N.^.k.^.k.^ N.b N.o.X.o.X.o.X.b.bXgXk.c.X.o.oXk.o.X.o.oXg.b.o.b.X.b.X.X.^.kXt.kXt.kXtXdX*XtXt.kX*.^ )X9.kXt.k.uXtXdX*Xd.kX*XtXd.^ N.X N.b.X.^ N N.XXk.o.XXg l lXk.c.U lXg.o.oXg l.U l l lXk.U.cXg.X _.XXxXd.DXo gXm.'.q.> J O O 2.WXD.ZX1X,.D.DX,XD R U R pXe v n.WXD 8XV.H.rXdXdXo (X9 cXtX*X*Xt.k.DX5.'XG.9XG c #.2 ).Z.kX5 ).5.Z.D @ y.E b 0.j.q nXwXy D ).2XyX;.O =.y.;.@X>X>.; HX>.;XL.Y.wX,X5Xc.2 g g.DX1.`X1.! !.> ' 9 ' s 'XDXD RXD x., $.a y.ZXGXG g gXm.'.' '.0XU g @X; g $ $ : D.>X;.>X0XZ.hXp W.;.@.h z W S M.x W.+.O :X5.XXx.K.K $.' bXn.=.jXe & .9 ` $X,XDX,XD hX,XDXeXD.N.W.s.s.. H.4X8.xXnX+ v h U =XGXp.{.{X2X8.JX2.<.x.C ;.{X8X8 ;.4 SX:X8.4 ^ 0 v vXcXG g.-.[XK.Y : $ R c B 3XI R R t tXI a aX-.aX- aXI.a.e.aX, RXI R R R R R.Z tXl `.Y $X, $X, $ 1 $ $ UXD.a a R h.ZXD x.Z h c $XM RXIX, $ $ $XD tXD R t.*.* RX, h.~ a.a.a a.]X,Xw :X.X.XJX3.%XJ.>.3.' RXD.M.9Xl $XD xXKX,.WXs.EXG.W.MX,.E.s 0 bXnXG.'XDXI.HX1X-.H.a.`.a #.a `.h n WXr k nXH x", +"X. RXwX,XJXl.YXD R.e.MXD R $XU.u hXDX, :X3.DX-X1.Z.% D.9 : 1 DX, :.Z R R R R T.3XJ 'X1X-X1 BX,XlXOXU.0.w.Z !XwXKXPXU s '.nXP g ! @XUX; Y.'XVX5 5XJXx.5.5.| ).5.R YXxXV ).5 5.$.RXxX9./ q.z.7Xx.I.zXgXgXk.U.#.#.zXu.I. .I. . .I.6. . . . .6.6.6.6.6. .6. .6. .#.z.U.U.U.IXkXgXgXk lXkXgXgXgXgXgXg.o.oXg.o.o.oXgXg.UXg.o.bXg l.b.o.b.o.b.b.b.o.o.X.b.X.^Xt.k.kXd.rXt.k.k.u.k.k.k.u.r.rXVXdXt.k.kX*.u.kXt.kXtXd.^.XXg.X.o.X.b.b.X.b.z.XXg l l.U.cXkXkXkXg.X.oXg l.c.c lXk.cXkXkXgXg.XXg.XXV.H TXK @.O K.+XC M HXG 1 yXl m.|.w $X, hXD.M U..Xe.@ nX,XD.H.r.HXtXx.z.k.R.R.KXtX*Xt.kXd.H.w.'XL bXKX, : P.| Q I P 5 I.2.O RXG vXG.s.E & =Xw.2 g TX5.2.O.+.O M H.@X6X6.; y yXw.ZXDX1X1X5.` 'XyXOX5 g :XcXw.!.q s.nXeXa C t.M 1XDXHX.XK.,.3 1.1X. !XZXOXmXOXUXP yXU.O.>.> m.GXy K K K KXhXZ z M W WX8.h.+.h.h.L M.hXpXG.wXVX*.KX*XVXVXl vXG.sXG.NXK.j 1 } h.] 1.M R t.eX-.} R.M t CXs 2.sX>X>X>.CXpXpXn.YXq n.< WX2X2X2 + + r r.yX:X:X2X8.y M r S.4X6Xi.v.s.WXe UX, R <X, a.M RX1X,XI R.Z.e R.aX- aXD.aX-.e.a a.eX1.a 3XIX1.e.MX-.a.M $X. 1.w x.Z U.Z hXl.Z x.M $ c.Z $X,X,X,X,XD.aX, R.uX, :XD.a a tXDX,X, h R.MXD.aXDX- 3 3X-.` a R B s xXc : 1XlX3 $ cXDXlXD RXDX,XDXI x.ZXD.e c aXs v 2 2.E yXKXU.v.v 2 2 v.w :X1X-X-.HXIXIX- aX-.5Xc.[XnXq UXn x .9", +"Xw :X.Xc.9.,XcXK tXH.% @ RXJ.'XKX.X. VXJ.GXJ $Xl DX..2XI RXDXD.Z :XD B 8X5XJX.X. gXc.Z $ '.u TXU 5 Y.ZXlX.X; n gXK s.9.'XU ! ! ! K 4X5.2XJXX :.5XX I ]XX.uXdXl 4Xx I (Xt.k q.f.& }.6XkXgXx.t.z.& l.b.b.c.UXk.U.U.# l.U.U.U.U.c.U.c.c.c.U.U.c.c.U.U.c.c.U.U.U.U.#.U.#.z.I.UXkXkXkXkXkXkXk.UXk.z.U.z.z.z.z.z.z. .I./.I.z.U./.I.z.z.U lXk.Q.z lXx l lXx.bXo NXo.K.KX5.k.kXo.k.HXo.kXVX5.kXV.k.u.r.k.k.k.kXtXt.k.^.^.X.b.X.b N.b.XXz.z N.oXx lXgXgXgXgXk.cXgXg l l.c l l.UXg l.c l.X.bXoXoXV.H g.'X;.OXZXZ M M HX4 [.S ` mXHXlX, t.M.M u....XnXpX,.~.H.H.`X5 (X3 `X*.k.k.8X*.k.r.rXt.`X1 s 0 O.EX, c.KX9 D (./ )XxXx :.D.HXD 9 b.sXCXe 1.'Xl.w.H.wX..> M.;Xf.v w.@ HXeXU ! ]X5XVXV.u g !.2XOXOXUXw.2 g.9Xw g.w.ZX,.Z.Z g.3X.Xc.]Xc TXw.YXcXK sXJ.Y T.9 x.w.Z $.-XcXc.n gXl yXUXw.> M z.pX2.x S SX:.CX2 M.xXn.jXG a c 3 ~.8.8.` RXIXD.@ p.WXs tXD $ ' cXh $.' sXlXDX-.a.a a B.*.=Xs.=X=Xf SX8.CXpXpXpXp..X4X2.<.J.JX2.J.T z.y M M z W M.< ..<.xX>XfX6X6 vXeXs.WXD 3 c.Z.M.ZX1XD.HX-.D $XD.a.M RXc '.Z.Z.ZX5Xl.,XVXDX1 a.a.a.Z.-XKXw $ x.Z.W.D.Z R.9XU x.ZX, $ $.W hX,X,.w U T xX,XDX, 8XD xX-XD.M.aX- tXDXDXDXDXD R RXDXV.aX-X-X1.e.* R R.aX, h c.aX- R.ZXD 8XD hXD.M T :XlXw c x.a x p.+ v M 9X0 MX2.4 2.j.+.9XDXV c.uXx.5 DXX )X-XK XnXnXc.pXwXpXZ", +"XD c aX, hX-.ZXDX,XN xX,X5XU.ZXJ mXNXH.|XD RX- RXJXN.'X1 RX-X, : KXJ.2.w.3 !XJ.]XcXO mXU DXc D.O.0XDX,X, n mX. y x.nXG @.G K KX;X;XJ.ZXI TXJ.|Xo.K.K q.A ].]Xo.X.5 Q Q 7X@.t.X.z./.&X .fXk.XXg.z.U.oXg.U.U.U.c.#.I.U l.U.#.c.U.c.U.U.U.U.U.U.U.U.U l.c.U.U l.c.U.c.U.#.#Xk.UXgXg.o.X.b.o N.o.b.b.b.o.b.b.oXg.cXkXg.b.o.bXkXg.b.o.X.o.oXg.XXgXgXxXg.X.^.K.^X5.k.kXd.k.k.K.k.uX9Xt.k.k.k.k.k.u.k.K.X.5.5.X.X.X.X N.zXk.z.U.I.z.z.z A l.I A. .I.z.#.z./.I./.I.6./.Q.I A.6.Q.I.R.I.I qXk (Xo $.2 gXU.> z =.@XpXnXe h # xX5XKXl E.w hXeXnXp ^.jXGX, c c.k.2.3XKX5X3.K.5 NX9X9.5X9.X.5X5.w.! o bXw `.$X9X9 N )XxXk.5.5.k.kX9.Z.'.9 o.jXe.w.ZXU.5 $X5Xl = =X> wXf ^.CX0XaXl.]Xo.u.uXt 5Xd.2 g 9 9.' s vXl s.9X,.M R.aXD RX,.,XlXD B.a B.ZX,XDX, xXlX,X,XDXIX,X,.Z.YX,.M x.w C.Z.9.!XmX0.1.yX2 WX2.xX: S z WX0X+ y.>XD c 3 3.8XV.8.`.8.a.YXe.WXs C B t R.MXD sXKX.XcXK ` h c R RX1.* 8.).WXF.v.@X: wX>.@Xp.x.<.{X:X%.J.p.y.pXr z M.jXSX+ M.x.[.pX4X:.@.4 ^.J ^ vXsX,X1XK :.ZXc : T., : `.,XKXcXJ RXKXKXJXKXJ.-X5 `X- R RXIX- m `Xl.wXD.ZXGXe.ZX,XDXs $.9 nXcXc.wX,.aX, c.W.Z xX,X, h.ZX, cXDX5X,XD R.a.MXI.M R.ZX,XDXIX, #XI.e R R B R.a.a.a.a.M 3.uX, RX1X,XD RX,XDXD $ ) x 'Xc.| | DX<XsX+ O =XmXC r W H.s.> x k D IXJ 5.2 D ] ( (.`XI.-.1.-XrX<.h.[Xh", +"XD RX1X-XIX, RX- RXcXNX.XcXc RX, : K : R RXIX- R.3XN D R RX1X5Xy.2 KXyX.XJ.2 m.'XN.% @.9XJ g T.].3 Y.3 'X.XwXl x.!.9 !X;X$.! @X$ !X5XJ.u 3.5XJ 6XJ ( DX5Xx 5.kXJ.X.XXx.R.&.:.z.oXgXk.IXu.o.X.XXg.b.oXg.U.U l.o.I.U.U.U.U.c.U.U.c.U.U.c.U.c.U.U.U.U.c.U.U.c.c.U.U lXk.6Xk.UXk.UXk.UXgXg.o.b.X.o.o.o.o.o.bXg.U.UXg.o.o.b.b.I.o.b.X.o.o.o.b.b.o.X.b N.k.kXjXt.k.rXV.8 3.r.H.r.H c.H 3.8.8.8.r.8 ~XVX*XtXtX*XtXtXt e.^.b.b.X.b.b.b.b.zXz _.o.b.b.b.o.bXk.cXg.U.U Z.t.t.t Q.R Q.t.R 5.& ) I.H.0XU 'XPX0.> M w.j nXM.- D c.]XD.' x $Xq u._ vXnXp.M.}.KX3XJ D.'.0XD cX* FX*X*Xt.rX*XVX* 3XI s bXa 9 $XXX9Xk qXkXk.zXg.I.zXx.^XX.5.!Xa o 8XD 3.H.8 ~.8.5XH y H.. JXfXi.j.-X1XlXV.H.kXVXxX5XJXOXO s s.w.w.Z.MX, 3.a.a R.aX1 RX1 3 hX-X, 8.Z.D.ZXl h.a.M.a.M.Z hXI.a cXD h.WXDX,X,Xa.n g =.>.[.1XrX2.< W zX%.[X%.jXrXG.a $.H.r.8 ~XI.`XI.a R v.s.NXs u u u.M.).NXsXeXq n U [ `XlX, B B R R.N.N.).sXf J S wX>.<.<X+X%X2.g r.T +Xq.jXrXr.pXr.j.y W.T MX%X2 M.4 wXf.. v.WXDXK :XyXU.'XK T `XKXlXMX5 hX-.uXDX1.aX1X1 RX1XD R R RXD $XD.Z hXDXD.w $.w UXD.M.M R 8 $.9XJXJXKX, m $.w.Z.' s.ZXD $ U $.wXl.Z.u hXV $XDXDX,X,X,XlXD R.a aX-.a.a R R t R.a.aXD $ cX-XIXI.aXDXDXDXDXD R a a R hXV # `X1Xq.'XeXs.W.)Xn J.>.w m c.K c.5 (XIXIX1X1.~ FXV.5X#XwX%XpX+XBX4", +" B R.eXI a.u R R s TX,X$XwXl R.a.Z K 3XD B.*XD.ZX$.OX$.DX1.H g (.'.GXJ m '.Z mXl K B.wXlXPXl g.wXNX5 mXy.] s $.'.'XPXO !.G.%.2X. Y cXl.2 5 c.k ( I 7.R ).5XJ.5.f.AXoX@.X.z d.X.oXg.o.o.UX9XgXg.b.oXgXgXg.U.c.o.I.c.U.c.U.U.U.U.U.U.U.U.U.U.U.c.U.U.U.c.U.U.c.U l l.c. .U.U.U.c.U.c.cXg.o.o.o.o.o.o.o.oXgXgXkXg.X.o.o.X.o.z.b.b.o.o.b.o.X.X.o.b.^Xj.r.kXt.k.rXV.r ~.HXt 3.H.8.k.8.H.rXV ~.8XV ~Xt.u.kXtXt.k.kXt.^.b.X.o.b.o.X.o.o.U.X.bXgXg.oXgXg.c.c l l l.z.t AX@X@ fXx.z ( I.& 5 I }Xl.].!XP.q.> w ^Xi._.y $ m.] ' @XD k $ [., u..XL.E.n.} 3X* | '.Z.] DXVXIXVXVXtXtXtX*.k.kX*.uXI.n '.nXP $XM N N.b.^XxXgXg.b.^.X.X N #.' s b T 3.8 ~.r ~ ~.8 TX;XU.E.x.TXn.;.G :X;.u `XxXV D (.].wXO.'.n 8 t 8 RXD 3XDXI B 8X1XI R.aX5 3 RX1X,X,.ZX,X-.M.a R RXI $.uXIX,X,XDXD U.a 8X1XP.0Xw.O y.[ z [ z zX%.[XpX<XrXw.Z RXVXV.8 ~.8.rXI.` R.}.9Xa b.).N EXe.Y.N.sXp.).M.NXGXeX<.9.'XK.Z a R R U.N /.@ MX6.@.;X:XfXrX2 r r WX%X+X+ >X:.1 zXr ..pX+ [Xp.hX: z H S w v v x $.Z 8XD 8XD R.MX5.a R.a h.~ a.a BXI R R R R RXDXIXD.Z $ BX,XD $ 1 1 x 1XeX,.M R R.a.a 3.eX,XDX, 1 x gXcXcXw 1Xe.ZXD.nX, 1XJ 1 xXD hXD : hX1 $XD.9 R R RXD.aXDXI a.aXD.MX- R.a cX5 R R.aX1XDXDX,X,X,XI RX-X-X- cX1 #X.Xl 1Xe.WXn.v .XUX; R 3XI.`X-.u.8 3.`Xd cX*XtX*X1 :XB x.FXqXA .", +"Xl c $.ZX, $X1XD : K @.O DXD RX-XDXNXD R.aX1.e m.-X;XN $.D T ( g DX;Xl.5 R.a BX5XN.3 :.D D TXKX-X.XN.O TX,XDXy.' @.w gXU KXy m.2.0 DXI.u.2 I.XX*X9 ) P I f qXt.k ).&.z.X l NXg.b.o.o.b.o.oXg.bXg.oXg.oXg.U.c.c.I.c.U.U l.U.U.U.c.U.U.c.U.U.c.U.c.U.c.U.U.c.c.U.c.U.U.I.c.U.U.UXk.U.UXk.c.o.o.o.oXgXg.c l.cXg.o.bXg.b.oXgXk.b.o.X.o.b.b.o.o.X N.^.kXj.kXt.K ~ ~ ~XV.8.r.H.8.H.k 3.8.8.8XV ~.r.8.k.kXtX*.kXtXj.kXj N.o.X.b.b.o.XXg l.b.oXkXg.c.c.c.UXg l lXk lXg.XXk.k.rXgXoXoXxXxXx.KXo IX;XK '.!XC.q ^Xi..X%.F.[X,Xc.9 1.-XM hXB CXA.sX>XeXD.} 3.KX,.H.DXD.8XV ~.rXt.k.k.k.rX*.u.u.H '.n gXUXIX*.KX*.k.k.z.bXg.XXgXjXtX*.8.}XGXG TX5.KXt.r.8.k 3XV.9 =X+.; HX> M.1Xc DXJXx D.H ) D.] 'XOXP.'XD 8.MXs.ZX,X1 3XI 8 RXDXVXI 3XI $X,.Z T c tXDXI R.nXl.u : 1 :.2Xc 8.DXDXJ :Xl '.0XPX.XHX7X7 kXw.[XcXp., k.[XH hXD.uX5 ~ ~.8 ~.`.8.} aX< &XC.q.;.j z M M =X0XeX0X>.).WXs nXGXU.wX. < t.M.M *.E ..+ M.h.T.h.T.T.h.T.h.x.<X4X+.+ SX0 zX2 . .X4.p zX:.T r.;.4 0 vXG.ZXDX,XDXD.MX, BXl R R B.uX-XD R.a.~ RX-X- R R R.a R R 1.aX,X, $ c T.w x x.Z h.M RX-XDXDXDX-.aX,XI.M.a.M.M.Z.Z.wX,.ZX,XHXKXH TXJXJXK.,.ZXl xXD 3XDXD.e R.a R.M xXDX-.aX,.M R R.a :X1 RX-XI.aX, R UXDXI R R.~X-X- :.5 R T.wX;.E..Xi H.>X5 BX5.u.K N.K.~X9 3.u.5.5 )X*.}XlXBXq._XAXqXA", +"XU mXUXJ.2XJXKXJXK gXJXJ.9 B.a RX5 `X5 aX1.aXl.3.uXKXNX. D D.0XDXI D.e R RX1X1Xl 6.e aXJXwX..].0 mX.XNXK.DXD 1 sXU.q.' !.%.2.OX5.HXI 5.5.k.5.5Xo ].X ) ( Q ,.R f.X.z.I N.b l.b.o.bXgXg.X.oX9.bXg.o.oXg.c l l.U.I.U.U.U.U.U.U.c.U.U.U.U.U.U.c.U.U.U.U.c.U.c l.U.U.U.U.IXk.UXk.U.U.c.U.cXk.c l l l l l.U.UXgXg.o.bXg.X.oXgXk.X.b.b.b.^.b.b.X.X.b.^XtXd.k.r.kXtXt.u ~.8.H ~ ~XV c ~XV ~ 3 F.8.H ~.uXtXVXdX*.rXt.kXt.b.X.b.b.X.o.bXg l.bXg.U lXk.cXk.cXk.cXk l l.b N N.b N (Xt A.R.&Xk ).5 YXN ! s O o z.EX6XA.d U <.a.M.aXI <.aX, C uXbXbXGXGX,.a 3 ).HX1XD.kXV.k.u.k.rXd.k.rXd.rXtXtXIX9.0X5.%X3.KX9.u.u.k qXxXk l.XXtX*.r.}XDXqXG.] :.KX9 qX9XgX9.5 DX, yXmXpXiX> nXcXcXD 3Xo c.`.`X1XD.ZXO.9.nXD.DXD.u $.,X. $ RXI B.,X*X. R.*X1 : m.- R t.MXI.3 TX1 )XVX1 ] gXDX1XD :.%.D.n.].!XwXHXcXMXBX7.-Xh.S.-Xh [XhXU cXDX*.`.r ~ ~.8 3.8 3 :.q b 0 H &.p.j =.1 MXG.+ =Xs 2.=XL.s.D.- tXc :XD t tXeXGXeX4X>.; H =X2.x.; WXpX>XnX+.+ n & =X:Xn.< >X4XnX2 S z w w 0 J o.w.WX,XDXDXDX1 R s.D $XlX, x RXDX, t.a R.a R a RXDX, RX5.aX,X,.Z R U.a.M.MXD R.aXDXIX, R.eXD RX1 x.* R.a RX,X,XDXD.ZXlXcXJ.] n., 1XJX.XJ c.Z.a.aX,XK.e 1X,XK ` g.3.9.- `Xc R RX- cXl BX- R RXDXDX,X, RX- aX-XIX- c 1 R.eXDXs v.N.; &.O `X1.u.uXoX* N.K N.k.K.8.r.`.` 3.a.YX<.y._Xn >", +"X.XJ D 1 D mXl.'.0XK g.2.Z R BX- BX- aX1 a R.M.a $ TX.X..2 TXDX-XD.].ZX5 $ $ BXJ.GXy.O.2X; YXUX;XN Y.G.Z c.}X1.M.'X;XO.> 'Xl.% DX5X5.| I )X9XxXx.R.&.& A Q QX .7./.&.^Xg.X.b.o.X.o.oXg.oXg.oXgX9.o.o l.# l.U.I.# l.c.c.U.c.U.U.U.c.U.c.U.U.U.c.U.U.c.U.U.U.c.U.U.U.I.#.U.U.c.U.U.U.U.U l.U l.U.U.U.UXgXgXg.b.X.o.b.b.oXk l.X.b N.^XjXj.^.b.X.X.^Xt.kXtXt.k.k.k.r.H ~ ~ 3.8XtXV.8.rX5X9.k.u.k.r.`X*.k.kXtXdXtXtXt.X.b.o.X.b.b.oX9.c.X.oXk.c.c.c.c.U.UXgXk.cXk.o.o N.XXd.tX@.t Q.t.&.| )X9X;XP.nXLXC & JXi.s.d t.a R R R 8XD 8X1.M *Xb.s..XpX5 3.a.KXV.u.rX*.rXt.r.R.X.I ~.^XoXg.k.k.r ~XI.uX5 5 I I.2Xx.5.kXVXtX*XtX*.r.} # # v yXIXo.k.K N NX9 NX9.5.Z.'X+.E.x H.@.j nXUXXXVX*.H.HX5 :X5XU.9 s CX1.M R 'X1 D BXI R B m.ZX.XVXI.a hXHX3 R.M.aXDX. ]XV 3X9.uXJXOXDXa.DX5.O c.Z.0.!Xc =XH VX3 }XK.- K.S Y.3.SXJ.`.K 3 ~.8 ~.H.H.8.a h vXa.= J.j kX<.-X+.j n M yXn.s 2 b.s.)XeXG g x., $ $ <.*.).N 2 J ^ w.;X0 MX2XrXpX>.EX0 MXCX0 =.@Xq.s.p.x M M S.4.@ ^XfX4.s.wXe 3XD UXDX, 1XlXKXc.9 DXJXB `.a t a.a R.} $ h hX,.a 1 R $.- 3.9Xl RXJ.Z.MX,XD x R R R.e t tXD.a R RXD.ZX,XDX,XIXD.DXD.D cXDXDX, #XDXD 3.u.Z :XJ $.%XcXw.9XKXK.9 DXl.9X-.a RX1Xl 3 :X5X1X5Xc RXDXD RXI D R :.u : ) :Xc R.N.).) v $ cX-.8XI.8.H.8.`.~.`.`XI.~.` 3 $ 1.g n._X4.g.p", +"XK T.9 ' kXJXD.eX- BXw.2 ' :.'.'XlX5 $.ZXl xXl $ $ TXJ.' D TX5 $.ZX1XK.2.0XHXD B.DXK m.2X; T.'.Z.Z T.]X,X,.a.MXD.n.> @X$Xc.2 3 `XJXx ) :.&.& )Xd NX@ ]X@.z NXkX@X X@.(.XXg.X.o.oXg.b.o.o.oX9Xg.bXg.b.U.U l.U. .c.U.U.U.c.U.U.U.U.U.U.c.U.c.U.U.U.c.U.c.U.c l.U.U.U. .U.c.U.U.U.U.U.U.U.U.U.c l l.UXgXg.o.o.b.b.o.X.b.XXkXg.b.^.^XjXtXt.k.^.^.^.^.k.kXt.kXt.rXt.r.8XV ~ ~.HX*XV.HXV.kXo.8.` ~.H ~.HX*.uXt.k.kXt e.X.b.X.o.X.b.bXgXg.X.o.o.bXg.cXkXg.UXg.U.cXkXg.X.o.X NXg.X.XXz.X.b NXo.D.]XU.0 b & &Xf.s p.d.a.aX1X1 RXDXD 8.*Xa %X= ..E xXIX-XV.H.8.8.rXt.k.r.^ lXxXx e.r q.bXt.k NXx.k.H ~.uXo.K )X9 5 5 DX9 ~XV R 3 3 h $.' T.HXI.8.k.rXtX*.r.rXoX5.wXGXpX2X>X>.E.9X#.GX*XI ~XV.uXJ.2XJXO sXa.D $.ZXlX,XJXD $XIX1.Z.5 xXI R aX,X, $.M RX, 8.DX1X*.` 3.5X1.0 8XDXDX1.'.0XK.9XK y nXHXMXX.K R.uX,XMXcXc.-X. xXI c.r 3 ~.8.8 ~ 3 3.a bXa O yXrXp 1Xq 1XpXcXw.g &Xw o..Xp.) 2 u.w.9 $XH R t <.N.W 2.@ H.EX0 &.jX> HX+XG &Xw &.!.q.+X>Xp.jX+ M M = r z SX:X>Xf..Xn x.W $.Z.Z $ : 1XD $X,Xs hXD.a.a.MX, hX,X, $ $XlX, hXK.aX5 T.a.9Xl RXGXDXlXD :.ZXcXl a $.aX1 h.}XDXDXDXDXD $.Z 8X,X, $.Z.wX5X5 $ $.u hXD 3 x 1Xl 1XD.Z.9.9XDXD a t R aX-.a.~X-.uXl YX# R.ZXJ $., DXKXJ.-XJX.XJ.|XHXKXw C 8 2.) o hXVXI.8.8.`.` B F.H FX-XIX9.K.2XXXKXJ.-XcXK [ 1", +" B R.aXDXI xX1.aXDX, DXcXUXJ gXJXUXJXwXU.2Xc gX. g.> m gXOX. g.2.2XJ.2X. m.2 mXUX.XOX;.O m.' sXlX5Xl $.D.uXD RX, v 'Xy.O DXIX1.HX5 5 :.rXo ).&.f.XXxXx.I.IXxXg.XXk.& Z NXgXg.bXgXg.oXgXg.b.o.bXgXg.oXgXk l.U.I.c l.c.U.U.U.c.c.c.U.U.U.U.U.U.c.U.U.c.U l.c.U.U.U.U. .U.U.U.c.U.cXk.c.U.c.U.U.U.UXgXg.o.b.o.b.o.X.o.b.X.U.b N.^XjXjXt.kXt.kXt.kXt.kXtXt.kXt.r.^X* ~ ~ ~ 3 ~.kXV.8.8 ~.H.8XV.H ~.H.8XI.r.r.u.k.kXd.b.X.b.X.b.b.XXgXg.b.b.b.b.oXgXg.cXk.cXkXk.cXg.X.^X9Xz.X.X _Xg lXx.X.X.uXI gXGXL H & J.s...MXD R.8XIXDX,X,XeX,._ 2Xn.x vXDX,XI ~.8 ~.rXtXtXt.k.kXt.k.^.kXt.z.5.kXtXk N qXt 3Xx.5 F.H.8.u.k ).,Xw.9Xa.w.n sXKXcXD.H ~.rXt.K.k.^XtXjXt.k.5 tXGX>.@Xn.E.j.O K Y q.0 ).u $ T m !.]XP $X,XD.wX1 :XDXI.~XIXIX- RXIX-XD.a.a tXDXD 8XD.DXIXI.u ) h RXe.'XG.0.!.w sXKXmXGXmXwXHXHXMX3XIX1XI.a hXK TX. `.~ 3XI.8.r.8 ~.8.8XI a.9 v v.jX7XM XM x XMXB .pXrXwX+Xn /.).NXsXDXV.e.M u.).) O & o & &.j &X0Xw HX0.>Xm & vXm =.q.EXG.; M M.y.TX:.4X8 S.yXf.m...WXeXqX, XK cX,.ZXD RXD t < RXD $ $XDX,X,.9 k.ZXI.' $ x `X, $.w $XlXlX,XD : xXl $ RXJX,X,.Z $Xl x $.Z $ c.ZXl RX,X, $XcXJ $ RX1.aXD.ZX,.aX1 $XS.2 RXJXUX-.MXDX1 R.a R B.a.eXDXl.%.GXlXl k.9Xc T.Z :XD.u #.`.}.8 : :XhXe.D 2 v.w RX, RX-XIX-XxX5.DX9Xo.|XJXK T I ).8 `.$XK )XV", +"X,XDXDX- R.a cX-.~.DXJ.'.DX1XD 8 $.D sX. T.9XUXyXH.'.'XU.%.nXl ' ' TXK T T T T g mXJX;XO ! g.2 gXUX. gXKXcXJ T 1.n 'XU !.3 TX3XI 3Xo I.$X9.^Xk.R.z.7X@X@Xx.o.XXgXg.bXgXg.b.bXg.bXgXg.b.o.XXg.bXg.oXg.o.o.U.U.IXk.cXg.c.U.U.U.U.U.U.U.c.U.c.U.c.U.U.cXk.U.c.c.U.U.U. .cXk.U.c.U.U.U.U.U l.U l.UXg.o.b.o.b.o.o.b.b.X.b.o.z NXjXjXt.kXtXt.kXtXtXt.k.kXt.k.r.r ~.X.k ~XV ~ ~.8 c ~ ~ 3.H.`.r.uXt.H.`X9Xx.K.HXtXt.r.^.X.b.b.X.o N.oXkXg.b.X.o N.o.oXgXg.b.b.o.X.o.b.b.X.b.XXzXg l lXx l.oXo.u.Z.2 s.9 H H ^.. v u.M 3XVXIX,X,.W E.W ...Xn.EX,.}.u.8.HXt.rXtX*.kXt.k.r.kXtXjXtXtXVXdXtXj N NX*.HXVXx.u.HX* q.k 3Xl x.' JXG b b '.D.u.H.H.HXt.r.$.5 N N.bXo ~X5 x.9.@ JX>.jXqXc.,XJ Y f ( D f.$ K.G.0 s.w.Z R :X,X5XD 'XD RXIXDX- BXD RX1XDXD.w xXl.w.wX,.]Xc `X5.Z 1.nXGXL 9 HXm.q M y & MXwXH V : c 3 hX,.} `XBXc k VX3.5.a ~.8XVXI.8 3 3.aXc n k.l .}.}.} h 1 1XM.Y.p z.<XpX=XaXsXs C t tXs.).vXm y OXL 0XG o yXr gXm y.9Xm.OXy M M H M.+.T M.y.;.4X>.h MX8X: MXp.E.sX,._XKXc.a nXK U :.M c $ 3Xc.9.MXD $XDX,.ZXDX, R cXlXlX5 cXDXD R $XDX,X1 B.a c x TXc `Xl n T 3X, $ $X,X, $XDX-X,X5XN.]XlX-X1X-.aX-X, RX, t.O KXHXlXw a.a t.a t RX- a RXI.e., YX# Y $Xl $X,XIXl.9 ` :.}.`X-X- aXI s 8.N.=.s s s 1 $.aX1.~.2 D.0 7 :XxXVXI.H ~Xt ~Xx ).5X*X5", +"Xc DX.XD.aX-XDX,X- 1 DX5X,XDXDX-X1 $ $ TXcX;.G KX;XJ TXc !.2 $ @Xc.D.~ BXDXIX5 c '.,.GX. DX5.n :.n D T.9.3.2.-XUXUXPXU.2XJ.5.]X9.u c.$.|.A )X9XkXkX@.& Z./.X.XXg N.o.X.b.oXg.o.o.o.o.b.o.o.o.b.o.bXg.b.oXg.I.U.U.cXg.c.U.U.c.U.U.c.U.U.U.U.U.UXk.c.c.U.c.UXk.U.c.I.U.# l.c.U.U.c.U.U.U.U l.cXgXg.o.o.o.X.o.X.o.b.o.X N NXj.kXtXj.kXt.kXt.k.k.kXtXtXd.k F ~ ~XoXkXx ~XV ~ ~.K.8XVXo.kX3XxXx ) ).5XV.H.8XV.rXtXj.^.b.b.X.o.b.b.bXk.o.b.b.b.b.b.b.b.b.b.o.b.b.b.^XjXj.k.^.XXg l l lXg.XXo.H.D g.' y &XfXi %X6 vXw.w.WX, x.jX4 . ....Y.jXJ.aXV.rXV.uXt.rXt.kX*X*.r.u.u.kXtX*Xt.k.kXtX*X*X*X*.8 3.D.kXI.^Xo.8.8 3XK.Y v.n OXLXU.DXVXVXt.r.kX5 qXk.zXkXkXg.rXV.HXGXp.sX>.E.j.'.a ).uXx (XV :X5X5.5 s '.' T.w $ 1 TXl 'Xl.w 3X,X- RXD.w sXyXw.] y.!XP 9.' y s x vXq v.j & H.q.q M HX+Xr MXrXw.1Xw.iXc.aX,X,.} # :.,X3., |.SXM.8.} ~.8.8XI h hX3 V ` h.a.M.M.a.} h h x XM .gX2.pX2.sXsXs.D C CXsX=.v H.!XLXL.n v v vXG xXG sXh s.>Xw z.;.+ zX8.xX4X>Xf.J.; M.@XrX0 HX0Xp H._ U.[ $XKXlX, $.9X,XJ TX,Xc :.a 8XD RXDXD.ZX5X, c.ZX,X1XcXHXlX-X,XD R.aXD.Z.Z cX,XS.' aXS xXDX,X,X5.ZX,XD 3Xl $X1 KXc TXDX,.w.D $.Z $X,X-.% 1 K K m.a a R.aX-X- RX-XIX-.e Y :.ZXNXcXDX,.ZX5XI :XMXI aX- a aXI.e RX,XeXs.W.=XLXLXK s a.a #.5.r.8.`.`.`XI.`.`.rX-.k.5X-XV.5", +"Xc R xX- RX-.K.Z.Z TXKXIXDX1 RXD RXDX,X-X,Xl.%.,.wXDX, :Xc :.u cXDXI RX,XlXl ' mX;.%XK 3.D $XDXlXDXD 8 8.' m hXyXP !XU ! 'X-.5 D.AX5 )X9 q.A Q.zXx.X lX@XkXgXg.b.oXg.o.o.b.b.o.b.o.o.o.o.o.oXgXgXgXg.b.o.o.U.o.cXk.c.c.U.U.c.c.U.U.c.U.c.U.c.U.c.U.c l.c.c.c.U l.I.U.U.c.c.U.UXk.#.U.UXk.cXg.o.b.o.X.b.oXg.o.X.b.b N.oXg.^XdXt.kXt.kXtXtXt.kXt.kXt.kXt.rXdXt ~.kXo.r.uXtX*Xo.r c.&XJXx (.% 5 D.$.H 3 ~.rXt.kXdXj.X.X.b.b.b.X.X.z.b.X.b.o.b.o.b.b.b.b.b.b.^ eXtXjXt.^.X.oXg lXg.o _Xo.kXVXd.,XKXm n HX4.sX:.@.;Xw =X0 W MX2.y ..<Xm.DXIX* 3.kXtXtXt.rX*XtX*X* 5.5 q 3.5.K.kXtXV.KX*X*.u 3.Z s 1XlXI ~.u 3.` : xX, s.E s.n.!.H.uXtXdXd.r.HXd.rXtXtXd.bXt.uXD.Z.9XG.E & x 1 RXV c FXVX*.`.8.5 $.2 !XPXUXl g.'.].0.' ' ' ' $ 8X,.n gXOXU !.G.OXhX;X0 @Xy.j yXm y HXC.E.E.E ^.;XnXnXn.j.j & [XH., `XM.} 3 $ $.} 1.,.[ V.,X.X3XVX-XV 3X*., |.[ VX3 ` X,XD.a.9 tXK hX,X-.,XBX<.p.[.j.@.s.N.= 8 / G 2 0.q vXs.N 8.M.w s ' nX. sXwXw TXp H z r.xX8.{Xf . . v pX+ y =.; = z.<XpX+X>.j.WXq.- `X,X5 RXDXl.Z.ZXD 8 R R R $XD $XDX,X,XDXIX..2.-XJX-XD c.ZXlX-XIXDXD.M.GXHXwXNXlXDX1X,X,X,.u $ $XDXD.Z Y.' s.DXl $.Z $ $ $Xl RXH.ZX,XH [ aXD aX- R R RXD.~.3.].,XcXl $X5 RX,XD cXcXc.aX-XI a.a.`.e.aX-.* U.nXe.= /.=.E b h.a.a 3.K.KX*.u.K.e R.`.`.~.]X3XXXl.%", +".~.u.~ RXI cXc 3X5 m.9.Z.Z.aXI RXI.~X,XI BXc., $ RX-X-XcXK.,X5Xc :Xl $ D T DX; DXc.w $.DXc 'X,.D.ZXD 8.w.9 R.0 1 !.>.2.ZXxX1XIXd D.A N.k N.z.$X .b.z.RXkXg.bXgXg.o.o.oXg.o.o.o.oXgXgXgXg.oXg.c.cXgXg.o.o.b.z.bXg.U.U.U.U.UXk.U.U.U.c.U.c.U.U.c.U l.cXkXgXgXgXg l./.U.U.U.U.U.U.U.U.U.cXgXg.o.o.b.o.o.o.b.b NXz.k.^.^.X.X N.kXdXtXtXt.kXtXt.kXtXt.kXt ) qXkXx.rXtXtXtXt.kX*.5X*.K.5.5XXX9.5 ` )X9XV ~.r 3XtXtXjXj.b.o.X.b.b.b.b.z.b.oXgXg.oXgXg.b.b.b.X N.^ e.rXjXt.^XzXz.XXg.c.o.b.^.^X1.5.0.0XJ v.ZXp.@Xf.sXf 0XG v J.@.@.; vXrX, 3X*XV.k.kX*.u.kX*X*.K 3.u }XJ 5 | 5 V.A }.,.A :X* c $.9 1XwXhXD ` 3.H.H c.kXIXIXlX.XcXl.DX*X*.rXtXt.kXdXd.kXtXt.b.k.k.uXD TXK y.Y.wXD.H.H.u.uX9 q.KXV :.% ! Y @X;XyXy.O @Xy.2XU.0.0 '.n '.wXPXy ] !X;Xw ! =.>.>.q.qXCXC w.E.v.s..Xi w ^.@.F._X<X+ =XG.1X<X7 [ ` $ xXD.} $ `XB.[ V | | [.,XJXJX3 `X3XM kX#X# 1XwXJXw., n.9 nXU nX3X#X7.FX7 yXe.=.= O.=.v 0X>.j.nXD B C.* t.9.Z.W.2 RXa.*.w g.j M z w %Xf.J %.. %.s vXn.;XG MX+ M.x y ^.E 2Xe.n.jXl # c.K c c $ B RXD.MXD.ZXD.aXDX- B x.u.3X,XlX,.YX, :XI a.aXD $X1.M Y.,Xl K.9.}.ZX- RX, : x TXl $ a.G DXlX,X,XlXD.Z.Z.ZX,XlX. ` $ R $XD.a h 3.a aX- kXcXl.a R.ZXDX,XDXlXl s m : c a.a 3 aX- a.eX- RX- a t.wXs.W 0.WXn s hX- #.KX9X*.k.K.8XIX-.} R.5 h.]XHXH", +"X1 T ` : $.aXIXKXc D.DX, $ cX, RX1XDX,X1 1X.XK.' :.w :XK TXJ T D.2.% m.]XJ.] TXKXJ.0 :.n.Z.DXI.w.Z R BXKXOXK.9 ' gXUXJ m.5.8.8X*.kXx.A q.f.X N AXk.&.tXg.IXk.o.XXg.o.cXk.cXg.oXg.cXk.U.UXk.U.cXkXg.o.o.oXg.U.oXg.U.U.cXg.c.U.c.U.U.U.U.U.c.U.U.U.U.cXg.b.o.X.oXg. .U.U lXk lXk.c.cXgXg.o.o.o.b.b.o.X.o.o.X.o.b N.^Xj.X.k.^XtXtXtXt.kXt.kXt.kXtX*Xt ~.k.r.r.kXtXt.r.kXt.k.k N.u.K 5.| )XJ.% 5.$XJX*XVXV.rXt.k.b.X.b.b _.X.b.b.b.UXg.c l.cXk lXg.o N.o.b.^Xt.k.kXdXtXj.^Xz.b.o.b.^Xd.rXd.u.HXIX1.HXIXD 8.jX4.s.. vX>XwXr.j &.j.j 1X1 3.rX*X*.kXt.r 3Xt 3 # IXJ.%.3XHX#X3 }X#X. }XH k VXw.[XGXL M.hXwXH :XIXo.uXo.r 3 : )Xl.].5.u.rXt.kXtXtXtXtXdXtXt N.k.5XoXVX5.Z TXK :X1XV.HXx.r.5.r.u.u (XJ.2.%.2 YXyXO @ !.D.Z.'XPXO.n.0.!.] m.0.n T T.WXw.q o b 0 o.v 0 O.v 2.s ..4.@Xn._X+XB.S.T [Xh.1.h.h.h VXB x #.MX,X, $XK.- xXc IX.X3 T : :XXX3 [.OXJ gX.XJXJ., :.9XK.nXcX, h .F.-Xr vXs 2 2 b J w H ' $ 8 t R.wXDXKX.XD UXDX,.M.w.9 H 9 M.;Xf ^ {X:.<X4 p.@Xp.Y &.+XqX+X> z.@X> O OXe.Y.[ $X5XM.5Xl.M RX,.ZXDXD.aXDXD.a tX5.9 :XNXD R.aXDXI.MX,.a BX- h R.e.%Xw.Z KX..ZXDX,X,XDX, xX,XIXcX5Xc 1XD : 8 $ : $XIXD $.aX,XD.Z.}.a.aX-X-X-X, cXcXJ $XIXD.aX,X,.aXD 1X.., :X-X1.a a tXDX-.`.a.eX-X-X- < R.i xXG.= O._Xq.a h.8.8 3.8X-.`X-.`.~ R RXIXDXK $", +" $ D ` T ).2X1.%XHXH TXcXcX5.- RX-.DX1.ZXO.2 g gXcXO m gXU.2XJXUXU.2 m DXU g DXy gXwXO mXc.'.D $XD.M 8 8.'.OXU T mXP D.KX*.8.uXd.k.k.I P./XgXg.XXg.I d.I dXk.b.c.c.c.U.#.U.cXg.o.c.c.U.U.U.U.U.c.o.b.X.o.UXgXg.oXk.UXg.o.c.c.c.U.U.c.U.c.U.c.c.U.U l.o.o.o.o.oXg.I lXk.c lXg.o.o.X.o.b.o.X.o.X.o.b.o.o.b.o.oXg.X.b.k.XXj.k.r.k.kXt.kXtXt.kXdXtXt.r.X.r.HXt.kXdXt.kXtXt.k.k.5.u )X9XMXX :.K :X9.5.KXt.r.rXj.^ N.o.X.o.X _.b.X.o.zXg l lXg l lXg.b.X.o NXjXtXjXt.r.^XdXdXj.^XjXjXj l (.z.5X9X5 cX5XV : $ XwXnXpXw.9.}X,X,XDX,.H 3.8X*Xt.rX*.kX* #XXX3 V }XZ.S : : `XHXJ.,.-XcXH `XX.[Xw.jX>X=.. z.YXHXM D.2.2 ).| FXIX*XI.~ DXXXtX*XjXtXtXdXtXdXtXt N.k.K NX5.r.HXMXI TXI.H.`.H.H ~.k cXV.8XIXI.H 3 cXy g 4 (XD.k cX5 gXPXPXP ! :X1.DXI 8.9 ! & 0 O.= O 2.W 2 /.v.vX>XfXnXb p E 1 x $ 1.j y.pX%X<X<.[.9X3 hX,X, $ U h.-.[X3Xh 6Xw.,Xl.9.' x $X,X,XDXIX-XDXI.~.a a 8 RXDX, # `.FXwX+XG 0 2 O &XC s s s BX-.ZXDXJX,.9XD.a.wX,X,.Z sXmXGX0X0 ^.P LXf.C.CX2X4.... MX2.j.h &Xp.@.E O.s vXp.w h : xX1 RXIX, hX, RX,.MXI R.MXI.a.}.ZXHXSXHXc 3.MXD :.a R.M R RX,XUXJ x.9 : xXlX, $X,XD cX,X,.ZXlXl R.a.Z $.a R.Z xX1XD $ $X,XD $XDX,.Z x $ T x.G xX,.M.a R.aX,X, :XJXlXDX- R.a a t.a RXD.eX-.`X- RX-X- a.K c hXe.W O v h RXI.`.`.`.`X1.8.`.`.` F.~ F.u m", +"XV 3.Z c $.ZXD.9Xy DXKXKXK `X.X1 RX,.Z gXc.nX1Xs.Z.'.2.0 D.nXlX5XU ' '.0.'XKXU.0 x.D.Z ' T.2XK., xX1.M.w.nXU g mXyXVX5X* ~XtXtXt.k N NXk.X.o.XXgXg.o.zXg. .#.U.c.U.U.U.U.U.c.cXg.U.U.c.U.c.U.cXkXgXg.o.o.I.bXg.b.c.UXg.oXg.c.U.U.c.U.c.U.c.U l.U lXg.o.b.o.o.oXg.z l lXgXg.o.o.o.o.o.o.b.o.o.o.o.o.b.X.b.b.b N.XXg N.X.kXtXdX*Xt.kXt.k.kXtXtXtXt ~Xo.X.rXtXtXt.kXtXt.kX*.kXoX*X3.$ ` )X3XXXM ` :XX.XX*.k.k N.b.b.b _.b.b.XXgXg.IXg.c.c.c l lXg.X.b.^Xj.kXtXtXt.k _Xo.^Xd e e.^.XX@.R.7 I f ( I.$Xo D `.,.TXw.jXD.} 3 3XDXV.H.r.8XVXtX*.rX* c.5XJ V k V.[X#XJ T.-XKXK.9XcX.XH., VXB [ =X>Xi.s .X+X+ U.M.ZX5.HXdX5X*XV 3 DXl ).r.kXt.^XtXtXtXdXtXt.k.K.kX*.k.^.k.k.rXI.XXV.H.H.H.8 ~.8X*.`.u.HXoXJX*.u.D ) 'X5.uXV.u.uX5XPXP.]X5XIXI.HXIXD s &.E O.=Xn.WXL.s.NXs.s 2 ^.@Xn._._ < 3.} <.ZXlX+ WX%X7.SX<.,Xc.ZXD RX,XDX, $ $ 1Xc.3Xl k.' x h $.MXD.M 3.Z.uXIXIX- B.a B RXD.a $ ` .[Xw.j.q oXC &Xm s.nXDXD T., xXlXDXD a.Z x.Z R U T '.!XC M.;.C.P.4X8.CX>.<.@X0.;X0.>.OX0.OX0.E.E ^ 0XpXc v xXD #.Z $XDX, R.MX,XD t.a.a x.M cXe.a x $ < 1Xl.} t 3XDX-XIX,X,X,XD $ s.M.M $ TX, hX,X,.Z.e c $ :Xl $XDXlX5XD.a.a h.uXDX, hXlX,XD.M 3 x 1XcXD $.ZX,XDXD RXD.,Xc m 1.MX1 RXI RX1 a R aXIXDXD.~XD.~XI RX1 #.KX-.'XGXGXLXGXDX-XI.`.~.8.8X-.` F.8.~ F.`XI.5", +".u.D.u.HX-X1 R.' g.9 8XlX1X, h.}X1.u D.2 $X1XDX-X1.,.' RXI $XV : DX,X5.Z.D '.]XlX1X1 $XDXD T.' m VXDXD s.w T @.O 4 D.uXV.rXtXoXd.^.XXg.oXgXg.b.o.oXg.QXgXg.c.#.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.cXgXg.o.z.o.o.oXgXk.UXg.oXg.c l.U.U.U.c.U.U.U l.cXk.b.o.X.o.XXkXgXgXg.o.b.b.o.X.o.X.o.XXg.X.o.b.o.o.o.X.o.X.b.X N.^.XXtXt.k.rXdXtXtXtXtXt.kXt.rXt.r q.^.k.k.k.kXtXd.kXtXo.K.uX9.K :X3XX ` V I V q ) N N N.o.X.b.b _.b _.oXg l.I l l.U.c l.c.o.b.^Xj eXt.kXt.k NXo.b.bXo NXz.X.X.z.z (XkXx.5.KX9XlXl 1Xp n UXD 3.8 3.H.Z.HX1.r ~ ~X* #.8 V.,XJ VXBXBX3 .9 Xl.YXJ [XhXHXwXMXB.[.[ MX>XiXbXA.xXr 1XUXK T.0X9Xx : |.5.G.2X9.r.kX9.z NXt e.kXtXt.u.k.5X*X*Xj e eXt.r ~Xd.H F ~ ~ ~ ~.`.u.u.H.8.k.uX*.u ( Q.2 ) ) ) ( (X9.5X1.H.HXI 3XVXI 1XGXG ^XpX>.9XeXw $.9 &.v.BX>X4 pX,.M.}XI.a.Z.j.+XpX% rXZXHXH K 1.DXD RX,XDXq.w x x.} 3 Y.SXlXH.a.M.M.u.uXI.HX, BXIX-.`XI RX- R $Xc s.,Xw.EXG.qXm b.n.'.ZXIXDXc.'X5.eX, RXl $.Z.aXwXw.YXm.!X0.; wX6 L.{ ;X: M S = M = H &.O.>.OX0Xh zX> vXpXC._.Z $ $ #X,X,X,.M.} R <.M.a U.}.a < R.} <XDXM 1 h.ZX,.a.M 3.wX,XDXlXlXl.ZXDXD.MX5.9XlX,.M $ h a.M $.Y.Z x `XD 3 $ c.aX,X,X-XIXDXD xX, $.GXK k.aX,.M R c R.9.9X.XKXKX,.M RX-XDXKXc.Z.Z 'Xl.,Xl m., :.3 #XI ~.~X1X,XUXeXLXL s.* B.u.uX-.`X1.`.~.`.`.`.~.H.`", +"XJ D DXK T T $ D T.% sX; x.OXD.uXDXJXJ c.DX-X1 B $ m.K RX-.~.Z 3.].DXDXD.Z.D.]XK.D.D.2XV.9 c.a :.9Xl s.w.9XU.9 DX; ).u.r.KXtXt.^.X.o.X.o.o.bXg.bXg.#.#.c.U.U.c.U.U.U.U.U.U.U.UXkXg.cXgXgXg.o.oXgXg.b.oXg.U.o.bXgXg.c.UXg.bXg.U.U.c.c.c.U.U.U.U.U.U.UXg.o.o.o.o.UXg.bXg.o.XXg l.z.o.o.b.o.o.o.X.o.o.b.b.o.b.^XjXj.^XtXoXt.r.kXtXt.k.kXj.kXjXt.kXt.kXt.kXt.u.r.k.rXd.kXtXt NX*Xt cX* cX* cX*X*XXX*X9.K.X N.X.b.b.b.b.b.oXg l.UXk.I.c lXg lXg.oXz.^ eXtXjXtXtXt.K.X.b.X.b.b.b.b.X.b.XXoXo.k.r.kXV.8XVXl 1.} M 1XGXD 3 3.8.HXI.H.8 ~ 3 3 )X3 DX3 `XM `XXXB h x.Z x 1XHXwXKXl UX, h MX>Xi.P ^.{.j H.9XK.5 ) D.K : :Xl D.u TXx q N ).kXt.kXk.^.kX*X* N.rXjXtXjXjXtXt.H.r.uXd.H.`.8.` 3.H.`XV.H ~.u.rXt ).R.f 5.$ IXJ IXJ I c #Xl qXIXIX, v.Y OXp = t n t.3 xXG.T H ^.{XnXe._ t.a c.~ R aXG.jX2.g.TX#XHX.XK.HX,X1XD R x.w.}X,Xl.a `X# }XH :Xl c 3 3X-.8 $XV RX, 3 3XI RXc.]Xw D =Xh.+ 9 v.n.n.n 8 RX- D $ : s xXDXc.wX,XDXw nXh g gXm.;.;.@ L.4X8 S.y S H HXm.>.>X;XOXwXwX+ =X0 =.; ^Xp.s.w U h.i x.9.W t.d U t.i x U h U.MXq._ x.i.9 k $.aX,XD.aXD R.a.Z x.wX,XD $ x.w 1XK.uX, x.ZXI tX5 $X5.Z 3XDX- R xX5 RXD R.MX, R x tXlXU.a $X,X, nXwX..-XJ h $.ZX, RX- RXVXcXK DXc k.9 : :XK.5XMX, R.~ B.`.~X1 U.> = bXm gXl : : D.].$X5 RX1.`.~.8X-.`", +" T :Xc.0 T D gXUXKXD $X,.w $ sXD D.2Xl RX,X1.a aXcXK.Z.~X-X1X-.u D RXDXDXIXIXl.].ZX,XUXK T $.n.'.w.'.n.9 g.wX1.a 3 ).,.f.X.k.k.b.X.bXg.o.oXgXg.c.U. .c.U.U.U.U.c.U.U.U.c.UXkXg.o.oXg.oXg.oXg.oXg.oXg.bXgXgXg.X.bXg.c.U.cXgXg.U.U.c.U.c.c.c.zXg lX@.QXg.b.X.o.X.z.bXx.z.^.X _X@.o.o.X.o.X.o.b.X.b.X.o.b.o.XXjXz.kXt.z.z 5 (Xt.K.rXtXjXtXtXt.5 q IXt.kX*.k.k.kXtXtXt.r.kXtXx.u.kX*.kXt.r ).^.kX*.o NXg.o.X.b.b.b.o.b.o.b l lXx.U.I.z l.UXg.b.X.^XdXdXtXtXdXt.k N N.b.b.X.b.X.b.b.b _XoXzXdXd.k.r 3.8.K 1Xe yXn.@._.M.}XDXI cXIXI 3.8XXX3XM :XX : x x h h h $ x : :.SXc 1 R.WXDXe hXBX+ W.<Xi ^ .X> JXG x tX1X-.8.H FXV.`.HXI ) (.2 )X9.KXtXxXkXkX*XtXo ).k.kXtXj.rXjXtXV.8 ) D D.9.9 T $.kXDXo ~.8XV.r.kX9 ).X.]Xx ) :XX ` [XZXZ.SX5.HX1 3XDXG v O v.M hXD UX,X, v J.PX> ..m U <.aXI.} RX- E.iX4 WX% k.Y `.Z.Z.DXD.D.M.DX,.MX, : c 3 `.] D V.3XK | $ ` R R 3 R.u.a.ZXD c VX3X#.1XH.G.OXm.O.'.w R.~X5XD.9Xl xXZ.wXH.-X.Xw gXc 'Xw sXC gX0.4.C.JXn.xXn.y zX0 o.9 yXm mXP ' gXP g.T.+ HX>X8 v.dXeX,.w.iXrX+XqXq.<XAXr.<X4XqXq.mXp Xp 1Xq x.YXl h RX,X-XD RXD.a 8X, x $Xe $.wXl $X5 'X5 T : TXl g.-XU D.wXD.Z R R.a RX,XDXIXDXD.Z.Z R.a.a R.aX-XK.ZXJ $X, $ $ #.M c h R.aX,XD RXD 3XD R.aXIX- cX- RX-X-.`.~., TX.XZXm.O [.>XJ ` :X9XJ.5.`.8.`.8X-.8.`", +"X1 BXIXD RX,Xl D.2X, BX1.eX-.e.Z m $X1X, R.* R.ZXJ :X- R RX1 3.DXJ $XJX,X1.e.Z.] :XDXDX; T.'Xc.9 gXPXU m x.uXD.aXI ) 5 5 q.^Xk.X.o.o.o.o.o l l.U.#.I.c.U.c.U.c.U.cXk.UXk.cXg.o.o.o.o.XXg.o.b.oXg.b.o.o.oXg.oXg.o.oXg.cXk.cXg.U.c.c.U.U l l.U.z.#X&.X.b.o.X.o.bXk.o.&.(X .t Q l.XXg.b.oXg.X.z.& A l.b.o.b.o.b.XXjXt.5Xo.H P q.r.k.k.k.r.kX*Xx.k Q.|Xt.kXo.u.k.u.k.k.k.kXtXoXx.k.r.r.k.X.z.^.XXg NXg.^ N.o.b.bXg.b.b.b lXgXg.o.z A.I lXg.b.X.b.^XjXjXt.kXtXtXt.kXd.b.bXzXg.b.b _.X.b _ _XdXtXtXt ~ 3XVXD.NXn.).v.EXp s 1.'.0.'Xl x V V :XMXl 1.ZXD.} hXD.M.}X. sX. h.M R 8.Z $ $XlX7X7 WX+Xi.@Xf.E..XG v.aXIX-.H.`.H FXV.8 ~.8.uXo.$ I.$X9.K.KX9XtXt.z q.rXtXt NXtXt.k.rXVX1 $ $XK DXKXKX3XV.8.8.rXjXt.k.R ( 5.| D 7X3 IX#X#.SXhXc T 3XV 3 3XG b.s.s.N C R R R C._Xb ^.@.. E x < <X-.u a R UXe.F.pX7.9 V xXI 3X,XD.M.D U.ZXD x 3X5 cX1XVX1XD.a : m DXH :XD.uX-.uXD R R.a cXXX3.-XwXU.9.9.w.ZXDXI : D.| $X, xX.XwX.XwXK T DXK o.n.q.O & S.4X6.@XnXrX2.LXh zXm s 9.' T :.0.D g T.!Xh zXfX2 S.YXn x U U .XqXAXA.d.m.m.d E.m E U.d u E u.M a.M tXD R.aX1.aX,.M.a h h $.wXl sXl $X5X,XDXcXJXwXUXJ T.9XK x 1X,.a.ZX,.aXI.Z.a.Z R.ZXD UXlXD R R R RXKXlX,XD RX,.e.ZX- R 3Xl RX-.aXI.a.aX-XIX-.a R $X, a R.eX- 3X3X5.w gX0 M oXpXH h RX1X5.8X-.`.`X-XI.~XI", +" R.eXDX1 R BX,XJXK.0Xl.w.9 'Xl.0X..] 'XlXK.ZXl xXJ.w RXI BX1X1.ZXJ.Z.2Xl.]Xl sXc g $X,.' TXwXJ !.GXOXU mXK DX3.].8X*.k.k.X.^.X.bXgXgXg.cXg.U l.c.I.#Xk.U.U.U.U.c.U.c.U.UXg.o.b.o.X.oXg.b.o.o.o.o.oXg.X.b.b.oXg.b.o.o.c.U.c.c.U.c.U.cXk.U.U.zXg.: Z.bXgXg.b.oXg.z.^ f.X.(X XzXzXg.b.oXg N.oXg j.IXg N.o.^.b N.b.k.k.XXtXo ) 7.k.kXtXt.kXt.I q.r.k j q.k.R PXx.kXV.r.k.kXt.5 ,.& f.AX@ ).X.o N.b N.o.X.t.(./.o.o.b.oXgXgXk.o.RX@X . Xg.b.b.b.b.kXtXtXtXtXj.k.rXt.k.XXzXg.X.^.b.X.^.bXz.XXz.kXt.uX*.8.DX1.n 0 /.W.. vXL J bXL b.9X+X3 .lXM.} cXD.}.Z h <XcXHXl x R tXD.a.Z $.wXlXB.-Xr W.j.CX6 .X> v.Y xX,X-.8.`.`X1.H.`.8 3 3 ~.8XVXo q.& q.r.r.k.kXk.zXt.k.^.z.kXdXdXxXo.k 3.8.} 3 h 3.`.8.rX*.rX*XtXtXx NXxXo.k.5Xo : 5 m DXcXD.8.8.8 3XI.jXw v.).WXs R C.a * vX=X4X>.jX4Xq <X, #XIXI.a U EXqX%X7 .Y 3 $X,XI.ZXDXDXD.ZXD 3XI cXV 3X5 R.~X5.u $Xl :XI 3 BXI 3.H RX1.aX- hXX [ nXw s.w.n.a RXIXIXJ ' c $.w UXD h RX1 $.Z.D.ZXG.j.> H.4XfX4 vX+.j.;X0.+.+.jXm.9Xa $X, sXl.DXU gX0 M.; H.@XnXG x s E E u <.m E <Xq._Xe u < UX,.}.M t t < t.aXD $ h $ $ $ $ x $.W xXl : :XK : $XD.DXD.Z x h h 1X,.a $.Z.a.ZX,X5.M hX1X,.aX, hXDX, 1.eXDXDX, a.a R aXD t 3X,.a R a $X5.Z.eX- RX-.aX-.aX- a x ) 1X-X1 a.8 c.eXD v.! b b v.9 `X1.HXVXVXI.`X-X1X-.`XI", +".3.eX5 $.~XI $.,.2XK.2XJ DXc D ! mXJXUXc gXc ! D TXKXl.0XIX..e.5Xw a RXcXwXP 1 m.OX. mXKXHX. mX.XPX5 $X5Xl :.5 qXVXVXd.k.^.X.bXg.b.bXkXg.z.U.UXg./.U.U.U l.U.U.U.U.UXkXg.X.o.X.oXg.bXg.o.o.oXg.o.XXg.o.o.o.b.o.o.o.oXg l.U.U.c.U.U.U.c.U.U.cX d jXk.U.U.b.b.UXgXgXx.b.7.RXgXg.XXg.bXg.bXk.o.:.X.bXgXg N.^XjXtXdXtXo.k.k 5.7.K.rXtXjXt.k.K q.KXo.fX$.kX9X9.r.k.kXt.k.r.K.z q.k.:XoXt.^ N NXz.X.o NXg./.7XgXx.U.U l lXkXg.(X&.I.7.z.o.b.X.X N.^XtXtX*.rXtXtXtXt.^XzXz.XXz.XXz.b.b.b.b.XXo.k.k c cXVXD 8.' 2.W.s.)XG v 0 O 0 0 2.@.[ XM c a 3X, cXc hXK s $.a R.M.a h $X,X5 $XMXc.-X%X% MX>X4 HX>.j.Y 1 3.u.8.`.`.`.HXV ~.8.8 3XI.H.H.rXo.^.kXjXt.kXt.X.r.^ N.zXj.r.^.zXx.K.K.uX* 3.r #.rX*X*.rXtXtXj.k.rXdXoXdXdXdXdXo P.0 ) : : )X9 )XJ 3XJXr.j 0.=Xs.* <.W.N.. v.E.@XqXe x $X-.uX1 c B U._XqX2X+ XB hX5XD 3.ZX,XD UXlX, 3 R RX1 3X1.u.ZX, aX-X5 R R cX1.e RX- BX, 3XI.i `Xc., nXU v.w 8X1 T $XVX, x.ZX,.a.Z R.Z.D c.Z.w.Z s.'.+X0X>.x.+.1 =Xc.< 0X2.;.; 9XG.9.nXDX,.2.Z.w y & =X0 &X> v v.W hXn.[X7Xq._.F >.pXBX+.a.MXDX1 R R t.a.MX1 t.M c.MX, $ $.Z.MX, h $ $Xl : x.9 :XlXDXD.Z.w : 1.MXM x RX,XlXD.a $.Z.ZX1XDXD h.M.Z h.* $.ZX, $.Z $X,X,.} R.aXDX, cXI.} T kXJ 1X-XIX-X-X-.~XIX- : D T.,Xl D.a.K $ RXaXLXC.q o.9 !XD Y $ ]XX 3 D.5.| T I", +" 3X-.~ 3XD R T D $ :XDX5XI.Z $XJXl BX,XDXDX,XlXw sXl T.9XJ.] :Xl.,X,X, UXD.D.Z $Xw.9.0XcXJ gXw.]X1X1.`.`X-.8.8.8 ~XtXtXoXg N.o.oXgXg.UXg.U l l.U. Xk.c.UXk.U.UXk.cXgXg.b.o.XXg.X.o.o.X.oXg.X.oXg.o.o.b l.o.o.o.o.o.b.V l.U l.U.U.c.UXg.U.U.IX&Xu.:.#Xg.z.zXg.U.oXg.X.o.:Xg.o.b.oXz.cXz.o.b.z j.bXg.zXz N.b NXt.k.r.X.uX@ ) j.X.KXtX*Xt.k.k.k )XxX9.$ 7 ) N.k.rXt.r.u.k.k.5.k.5.:.k.k N.o NXg.o N l.X.(X&Xg.UXgXg.cXg.U.6 jXx.z A.o _ N.o.b N N.^ N N.^.^.K.^.^.X NXkXzXoXg N.X N.b NX Xk.5 ).u $.5XIXa v.=.WXeXs =XG.jXCXpX=Xb.@.[ x hXM : xXc x T t R 8 RXIX,X,.ZXDXl x ` `Xw [X+ M SX0.;.T nXKXwX3XcXl.`X1.`.`.H.8.8 ~.8 ~ ~XV.k.u.rXtXtXtXt e.X.r.kXt.kXtXd N N.X.rXdXVXtXVXt q.5Xt.k.k.^X*.k NXj.kXoXtXt.rXo.r P.|Xy ( I : PX3 q kXS MX> 0.v.N.NXD.s / ^X>XnXe p h.M.}XI cX5XIX, h._._X<.gXB XM .}X,XM U RXl 1X,X, RXIXI 3X, 3X- RX1 R.}XD 3XD R RX1.a R :XlX,.aXM.-.YXw y 1.nXD.D ` DXDX5 RX1XDXDX1X,.u.HX,.Z TX1.> o.+.h.y.y [.[X, 8.WXn.C S M.; & 9XG.'XU.w ' $.'.0 9 MX0 &Xm.9.9.Z.iXqXp UXe.iXeXq x UXDX1 RX- $X- R R.M.} R.eX,X5Xl t R h.M $ U x #.iXMXM 1X, $ ` x hXD $.n TXD x 1 U 1.Z.aXD x c.MX, t $ tX, x.Z xXK.a.MX,.aX,.ZX,XDX,X, h $.M.a.9.G.,XK : `X1 RX-X-X-X-XIXIXlX3 )XJXcXcXUXwX, UXK.EXG 2 ! g T.% mXJ D YX3X3.]XH", +".~X1.e.e.a c D `.`XcX1X..DX1.u m $ hX5X- 8.a.'XUX, R.e aX5 # c :.- $XJ.Z :.Y g.w gXc TXw.0.%XlXI.8.8XI.8.r.8.u.8Xt.kXt N.oXg.o.oXg.c l.#.U.z l.z.I.U.U.UXk.U.z.UXg.X.o.XXg.o.b.b.oX9.o.bXg.o.oXg.b.o.o.U.o.b.o.o.o _Xg.c.U.c.c.c.c.I.U.cXkX&.U.I j.t.I l.U.U.I.UXgXg./ jXg.bXg.oXg.o.b.b.b.(X .b./.f.oX9Xg NXt.kXdXoXxX9.k f./ ~.^Xt.k.r.r.k.kX9 N.r f ,XtXt.KXt.kXtXV.kXo.kX9.7 ~ N N.X.b.b.^XgXkXg.7./.cXg l.UXgXk.o X.(Xg. .X.b.X.b N.^.^ N N.K.k.kXt.kXj.^.^.oXjXg.b N.X N.o.XX9.& 5 PX..3XwXc x ! vXs.NXe.[XG U n nXq.) 0XiXrX+ $ # 3XD 3.Z CX,XDX,XD h hX,XDXD # cXX k y.xXp.<X2 H.;._ x x.w.uX5.`.`.HX-.8XV.8XV.8.5X5.8.HXt.K.kXt.k.k.r.X.kXt.rXtXdXtXt.rXdXd.r.k.r.kXo )Xt.r N.^XtX*Xk.zXtXtXx.^Xo.X.XXx.X.5.X.0.X.5 (XxX5X; KXh.+.@ M . v.s .Xn.;.xXGXq 1 1.}.a.u 3XI.~X-.YXH [.T.T.S [.S.S., 1XH `XcXH ` x R.aX1 RX,.uXDX-XI.a R R RXDXD.e.a RX- RX, 3 cXDX,.,Xc [ g s.Z y.wXDX,X,X1XDXD R.Z.ZX1.D.ZXD $ gXw.1.+.h.TXfXp x.9X1X,.W vXn ..+ MX0XC bXL.nXKXl $ gXwX0.> K.j o.Y x.W.M U.w U E xXe.M.ZXD R RX1X5X- RXDX,XDXI.MX5 1XlXIX,X, $X, $.Z xX,.}X, $ 1 : x cXl 'XDXI.Z 1XlXD $XKXK.YXK t.Z 1XDXI.M.D h $ $Xl $ $.' R.MX,X,.MX,X,.ZX, $ $Xl $.Z x hXJ.2X. : :X1X- R.`X- RX-X1 RXD Y.'XJ.-Xc 1._.j b s 2XK ` $ c.H 3 3XIXIXI.0", +" R.e.u.Z.~X1 D `.DX-X-X- B c.2 :X- $.ZX, aXlX..wX-.ZXD RX. kX.X#.] a.*.a.M 8X, x s.2 gXI $XDXD.`XI ~.8 ~ 3 F.r.k.rXd.bXg.bXg.b.U l.z iX XuXuXuX i./.f i./.I././.I.U q.U./.^Xj.^.o.b.X.o.bXg.o.o.o.o.o.U.oXgXg.cXgXg.c.U.c.U.U.U.cXg.U d. .U l l l l.U.c.c.z.I.U.U.U.c.o.X.bXgXz.b NXgXg NXz N.b N.o.kXjXjXj.kXd.^.kXtXd.k.r.rXkXtXt.kXtXtXtXt.kX*.k.kXt.kXjXtXtX*.kXt.5.kX9XxXxXx N.b.X.b.X.o.b.o.I./. XkXg.#Xg.UXg.cXkXu.t./Xk.bXzXd.^Xj.k.^.kXtXtXtXtXj.^ N.^X XzX ].t ]X@ ,.f.f IXJXJXl nXwXU v H.W.).M <.MXD.M v.M.).W..X4 W.p x x.} 3X- aXIXD.M.M.M.M.}.aXI R R.a.a.a # XcXpXp.s v.s pXi.@.E.Y.M RX1XIX1XI.u )XV.5.2.R :.^XVXt.rXt.r.r.kXd.rXoXdXVXd.k.r.kXtXt.kXt.rXdXt.rXd.kXtXd.k.rXtXt.kXtX*Xj.K N.f I q 5.RX9 ).5X5.5XxX5XdX.Xw H ^X=.@ 2 ^X> H.4Xi >Xe.d U U.a aX-.`.~XI.Z.aXq U x .[ [.T.- [X3 .} h.}X, $ 3XDX1 c c.2 $ `., `.9.,X5Xc ` ` B.aX1Xl : $.aXD.a `XKXcX. yXU.'.D.D.MX-.a.a RX5 3XIXD.HXD.D.wXlXa '.EX0.;.@ E n.- ]Xc.>Xq.xX4.<.. 0 o.q & &.nXw T gXUXm & J OXGXL.w $ x 8.DXeXwXw C U.M RX,XIXDXDXI.Z 3 $.ZXKXDX5XDXJ T., g mX..- nX..,X.XJ $XD.a.}XI c c h.,XJXJX;X.Xc U h T xXD $ U $.MX,X, 1 s $ x.w T $X- $ BXD RX, R.- 1XK 1Xc `XK :X, R R 3X,XI.5XH c RX-X-X-X-X-.uXVX-X- R t UXKXwXhXw <.a.a c 3X-.~X1X1X-.` 3", +"X- B 5 $ R R D.0 3XDX-X1XD.2 T 3 B $ :Xc.2XH.GXl., TXlXc.aXIXJXH kXc `.wXD R.w.w TXU.ZXD.uX1.8 3 ~ 3.8 ~ ~.rXt.k.k.k.^ NXg.o.c.U l.#XuX X&.fXuX X X X&X .t./X .t.(.t.t.&.tXj ~.r.XXg.b.XXg.o.o.o.o.oXg.z.o.c l.U.U.U.c.U.c.c.U.#. .6 i.I.c l.U l.#Xg.U.U l.#.U.U.UXkXg.oXg.o.bXg.oXg.o NXg.o.X.o.o N.bXjXt.k.kXt NX5.k.kXj.k.IXk N.rXt.k.kXtXt.k.^.r.k.k.kXt.kXtXt.kXt.X.kXt.r.kXt.^ N N.o.b.b.o.b.b.zXg l lXg.U.cXg lXgXg N.z.^.b.^XtXtXt.rXV ~.r.r.r.k.^ NXg NX@ d.| A ] ]X@.A 5 5 ) TXKXUXy oXpXe.) U <.MXeXDXeX, xXD UXe .XiXp.j.FXq 3.}.aXI.aXD 8XDXD.a.MXD.M.M.MX-.a.aXM xXcXwXGXn p %Xb.v.. 0XGXGXq.aX1XI.u c D T ) :.HXI ~XI.r.u.k.r.kXt.uXtX5.k.k.rXV.u.r.HXd ~Xt.k.kXtXjXt.rXd.r e.kXt.kXt.kX*X* N.kXVXt.H.5.5.5 )X* '.u T.5 '.2X0.E 0XbX= 2.@.@ ^.{ pXn u < < t t.a.~ RX1 $ B.uXDXl.iXp.-.Y.- k.g k.9 h hXD $ R RXD $XlXHXJXcXJ YXJ D.- m.9.9XI.a.a c 3 $.a R.a #.Y `XwXOXh !.w RXI.M.MXDXI #XDX1XIXDX1.Z.'.nXG vXG S MX>._ hXKXlX5 sXw z.1X2.x ^.@ &Xm.OX;.ZXD xXPXy &Xm O.=Xn.wXe.w BXD.ZXc.' 1XD RX,XDXK.e 3XI.a RX, h.a 3 x 3 $XcXc k.-.'.9Xw.9.n.wXl $Xl $X5X, < c xXB.9.w.[XG x.a.MXe.-.MX,XD 1XD $Xl.' x 1Xc.- x nXc.-.9 kXc.,XJXHXJXJX,.Z xX,.Z.9X, 3XV `.8 : )XV ).uX-X-X-X-.5.e RX- R R.M.WXs y o o.9XqX3XJ.u.u.H 3XVXV 3", +"X1 RXK DX5X5 :.]X1XV BX-.5.2.ZX1 R $ $.Z TXw m s T.'XlXlXD R `XKXDX,.9 T.-XU.2.2.2 $X1XDXV.` 3.8.8 ~ ~ 3 ~X*.kXjXtXj.^.o.b.oXk.c l l l l.U.U.#.I.z.I.I.z./.U.zXkXgXxXk l.^ q F.^.o.X.o.b.oXgXg.b.o.oXg.cXgXg.c l.U.c.U.U.U.U.U.U.I.#Xk.U.c.U.c l l.c l.c.U.I.U.U.U.UXk.o.o.XXg.b.bXg.o.b.bXg.o.X.b.X N.kXj.kXtXt.5.^XdXtXtXt./ q q.kXt.kXjXtXt.kXjXjXtXj.kXj.kXjXt.kXtX9Xt.kXtXt.kXt.^.b.X.o.b.b.bXg.c.c.cXg.c.c.c.U lXgXg.o.z NXjXjXjXt.k.r F.8Xt ~Xt.^.X.b.b.o N.^XdXd e.HXt.5.kXV RXI xXL s.NXs.) U t h 1X,.w $Xl.W hXe.sXr.WXnX+.Y x.l.u RXI R R 8.M.M R.a.M.a R.a R.a < h x .YXrXn.sXb p %XiXb 0XnXwXm.Z s.G.2XlX5.uXV.HXI.H.8XVX*.rX*XtX* ~.H.r.u.H.DX5 :Xo.u.`.H ~.HXtXtXtXt eXj ~XjXd e.rXt.k.r.k.5.u.kX5.8.]XJ 5 f T 5 D f.0.%.2.>XCX6Xi LXf ^Xi.sXf p . E U u.Y a tXlXJX5.5XD.Z k RXlXpX< [.[.Y.[ [X7 `.i.a.MX5 x.Z R.aXI xXlX5.a.Z hX, RXD.a.a t 3 R.a RXD R.a 3X, V : nX.XKXK sXD R.a RX,X,Xl.uXDX5XD s.'.nXG y.j.qX0.;.EXq x UX-X1X1XD 1 UXr.{.; S.> &Xw.Z.a aX,.O.O @ & o O 0XnXL $ $X-XD x $.i.Z.9XD hXK :X,.a c a.2XcX5 c $.Z :Xc R $ RXD UXl.ZXe.D.Z.W.a.a.} h x UXc xXn U.w.W.-.M.M.}XK RX,Xq s x.Z x sX..9XcXKXcXJ :.9XlXH '., $.9X,.MX,.MXD x., D mXl c )XIX5 D.u :XIXI )X3.8XDXV.Z.}.D.WXL o O 0 O b.E :.8X-.`.`.`.`X-", +" R B $ RXIX,.] TX-.ZXV '.2XJ.].]XcXK 8XD.ZXl.'X;.'.D.Z $.'XKX;.9X1 R RX5XU.]XU @ m ! D D DXV.8 ~.r 3.r ~.rX*.k.k.k.k.k.b.XXg.U.U.U.U.U.U.U.U.I.z.U i.f.UX .tXgXkXgXg.X.X NXz.^ N.o NXgXg.b.o.o.c.o.o.#.cXg.c.U.c.U.U.U.c.c.c.U.c.c.c.c.c.U.c.U.U.c.U.U.U.U.#.UXk.cXgXg.o.o.o.o.o.oXg.o.o.o.b.^Xj.k.^.^XjXj.kXtXt NXtXtXd.kXtXk.X NXt.kXt.k.kXtXt.kXj.k.^ N N.k.kXjXjXt.XXt.kXt.kXjXt N.b.b.b.b.b _Xg.cXg.c.U.U.U.cXg lXk.o N.zXjX*.^.k.k.rXd I.H.H.r N N.b.b.b.b.XXdX5 e.0.XXxX9 5 : :.'X0 s.!.jXL.9 x [ 1 h x.ZXeX,.W.w & 0X>X=._ >.j x 1.}.}XDXI t R.M.M R.a $.w x <.}.a.} x 1.Y XrX+ 2.mXb.B {Xb.v J HXmXUXw Y.3 D.0Xa.HX1.5XV 3.8.8 ~.uXV.8.HX1X5.D $ D g D gXJ T.D.8.u.r.^XtXtXtXtXtXj.rXdXtXd.r.k.HXoXo.u.`XIX5 : :.0 :X9 :.0.K.2.>.>X0.h.4.T.4X: w.4 S.4X%._._.WX%.* <X,X;XlX1.e : } xX, 1 k.-.1Xq.YX7 [ `.- c h $.M $XD.a.a.D 3 h R.aX1X,XDXD.a.MXI t.M R 3 3 R.ZXD.aXKXB VXwXcXP $ sX,XD h., ` m.,XDX..w sXG J HXr &X0 H oXpXp U 1 RX1X-XKX,X% % ..h wXC s sXDX, 3X5XG.>Xm & J J H.v v x R.' 1 <.W hX, xX5XDXlX, :.Z : $XH : RXK $X,XwXlX,.Z x x.Z.2 n.Z yXe.W x.W > xXq x._.YXe.[XpXqX+XH.Y.Y.[Xw.M $ xXl.9 $ x.w $ t.M.Z.MXDXDX,X- R $XD $X, R h $ $ xXlXJXJ.] cX3.H :XVXX.uXIXV 1 ) 5.r.`X1.e.~.M.a tXs O 2 / / 0.Y s.8.8.`X-.`.8.`", +" R B.eX1.e.DXKXl B B B T D TXU ( TXP TXP TXyXKXyXy.OXyXy.OX; @.Z t RX1 B $ $.'.2X,XD.HX5 ).`.HXV ~.8.8 ~XtX*XjX*XjXjXj.b.o.oXk.c.c.U.U.U.U.U. .U l.6Xu./X .f.UXk.bXg.o.o.o.X.b.X.o.bXgXg.o.oXgXgXg.b.#.U.U.c.U.U.U.U.U.U.U.U.U.U.U.U.c.U.U.U.U.c.c.c.U.U.U. .cXgXgXg.o.b.o.oXg.o.X.b.X.bXg.X.o.bXtXt.kXj.k.kXtXtXk.r.kXtXtXj.k.^XtXt.k.r.rXj.^ NXz N.^ N.b N.^Xj.k.^.kXxXtXt.kXtXtXt.^.b.b.o.b.oXg.c.c.V.c.cXg.c.U.c.o.o N.oXkXt.^.^ N NX9.k F.8.`.HXo N.b.X.o.b N NXtXdXx P 4.fXlX.XwXH.n =.j.WXy v YXlXKXsXa x.Z x.j.j.@ 0.sXb pXGX7 1 1 3XD.a.aXDXDXDXDX, x 1 sXJXc., `.YXc.[., n >Xr.<XiXbXbXi { ^ H y v.w s s.n '.] ( '.8 ] D :X9X9 : q qX9 :Xx.]XOXU.2.'.w '.nXKXPXIX1XV.`.HXdXt.rXtXt.kXt.rXd.rXdXoXV.8 (X9.0Xo $.5.u.5 TXM.5XX.2.3 = =.TX: S SX8X0 r r.T SX4._._.pXeXe x $ h R.a $.u.u a.a C.Y .[.,XBXc.}XD $.,X,X, RXD xX.XJX-X-XD aX,XDX..a.a.aXDXI.aXH.9XKX-.} 1 :XcX..> n.'XlXGXc :.-XJ : #.Z x s o.j.>XZ.;X0 HX0 & yX+XwX+Xc.0.] 5 h.- p %.s.@.>Xm.0 xX1.a RXD.9 9Xm.q o w.@.EXn oX+ n.j.- y nXH s R c.uXD cXM 3 $XDXDXDXD.Z.,XK $.wXlX,X, 1.9Xe.pXp.pX4.pXr MX: WXn.< >X4 WXp xXw x.w xXc.9.a x xX5 x $X,Xl $X, $.ZX,.Z x $ c 3 $ : h $Xw., mX.XH :.Z 3 R.u `X5.`XIX-XIX-X- RXx.`X-.`X- R RX-.} U C.s.WX=XiXGXK.8.`.`.`.`.~.`", +"X1X,XD.DXD '.]XDXD.uXl T.]XD m.2XyX; !X.XyXy.2XUXU '.'Xa gXm g.nX5.D.ZX,.n.wXc ' R.HX1.KXV.8 ~.8XV ~ 3.rX*.k.kXj.k.kXj N.XXg.U.U.U.U.U.c.c.c.6.I i./.U.6.I.#Xu.z.I. .oXkXg.c.o.oXk.c.b.cXg.o.cXgXg.U.6Xk.U.#.U.U.U.c.U.U.c.U.U.c.c.UXg.U.c.U.U.U.U.c.c.c.U.IXgXg.o.o.o.o.o.X.o.o.oXg.o.o.b.b.X.bXj.kXjXtXjXjX*.^.X.r.rXt.kXtXj.kXtXtXj.kXjXtXj.X.X.b.X.b.X.o N.^.X.o N.z.^XjXdXt eXj.^.b.oXgXg.c.c.c.c.U.U.c.cXu. .fXu././X@./ qX9.& 5XX q.R q )Xx.^.b.X.b N.o N.X.kXdXV ( (X@X3.|XlXU.j.q.9 n vXK T.'XU s x s.n y.Y.+.EXnX>Xn.@X+.jXcXp $ h.aXD R.aXD.a RXDXD.D xXD.9 # < $ h x x.[XM.YXr.< {Xb.PXf wX> &.E s.w '.n.nXa 'XU.5XJ D 5 ).] I.$XX (.2 D D 4Xl g.!XK.> yXOXwXy !.n.nX5X1XV.kXVX*XtXt.kXtXd.r ~.r 5.]XJ D.5 m ]XJ.%X3 I.,Xc 4 K !.pXf % {Xf w.x.x.xX>.pXr >Xn EXe.) E E.M < R a.uX-X1X-.a aX,Xp X7.S V h.}X-.OX, hX,XDXlXHXKXlXD RXD a : Y.'.a.M RXDX-XJXc D a.MX,Xc 1.,X#.O @X;XwXU 1 3.a R B R.wXLXmX0 M.;XhXr &.T.O nXrXHXK g m D 5 h u EXiX6Xm & '.' sXDXI.a.M s.'.!X0 =.+ =XnXeX0.j yX>X>XGX0.9 1.Z.ZX,XIX1.a.aXDXDXD RX,XD.aX1X,.a.ZX,X,.w x._Xp.FXe.FXn...JX4.<.<.JX4 >.d >.MXGXpXD.W.-.9XK x :.9.9.9X5.w xX,XcX, xXIX5 $X1 $ 1X1XD.aXJ.- x.9X, R.aX1XD.8 c.8X-.8XI R.aX-X-.5.u.k.~XI a a.a a.a t.M.W.).s v T.H.~.`.`.`.`.`", +".w.n $.wXl s $.w.n.w '.0.2 KXy Y.O.> ! g mXU g mXOXUXO g.wXLXPXU !X;XJ ! 1.0.2 $X1XDX1XV.H.HXV ~.8 ~XV.rX*X*.k.^Xj.^Xj.^.bX9.cXk.U.c.U.U.U.U.6.IXuXu.I iXu.U.(.6.U. .bXu.6Xk.o.b i.zXg.6 iXg. .6.cXuXu.U.U i.U.# i.c.6. .U.#.c. . .c.6.U.#. .U.#.c.#.# l.U. Xg.bXg.o.o.X.oXg.o.b.b.b.b.oXg.XXzXdXdXdXt.kX*Xj.kX9.$.k.kXtXt.k.rXjXtXtXtXjXjXjXj.X.o.X.o.b.X.b.o.X N.o.X.z NXj.kXjXj.k.b.XXgXk.c lXg.c.c.c.U.c.#.AX X&./.f.f f }.A ).f I./.A 5X ././Xx N.X.b.b.b.^Xj.r.rXdXdXV.rX* 3XD s sXLXs.*.M R 8XDX-Xl.w.M._XGXLXn._ &.p.[.[X7.[ X, $.aXD.M.a.M.}.M R R R RXD.a RX, < R t.a h.lXqXpX2..XA.@ H.E O H.'XP.W R 8Xs.w 'XcX5XIX1.H R.8X9.K.8.HX-.HX5XU $XO.w y.'XPXK ! !XU g gXO.'.D.Z.uXV $XV.u.r.kXt.r 3.k 3.KXDXIX1X1XI.` 3.}XI $Xw 1.9 zX> %.4 r S.; M.xX4X:Xr WXrXrX2.F._XeXe E t a RXV 3 3XI a.a 1 x k.[ `XBXX : h.S 3XDX,XD 1XJXcXIXl.a R.~ `X,.-.aX, a RXIXJ a $ R R.a ` 1 :Xh.3XZ ! sXl 8.DX1X1X1.M.w v H.E.E ^ o.@XnXLXe.M.'.w E RX- 3 R R.d.s ..@ &.! b.nXsXK R.MX1.ZXeXP y & o = M.@ O..XnXi vXn v.OXL.jX1 $X1 hXIX- t R R R.9X,Xc x.9XJXJ.wX,X,X, x xXq.W...@ M.; S.C SX2X2X8.{.J.p.M.- U.wXhXwXK xXc.' k.'XHXK.%.-Xc k.%XcXH ) KX,XVXDXI BX5X,.a.M.aXDXIX-.H : : c R R.~X- RXDX-XV.uXM 3XD.~X- aX-X,X,.a.WXe.) v T.H.`.`.`.`.8XV", +".'XKXU.0 T g 1 'Xl.0 g ! D gXU.0Xy.]X1XI.nXl.' $ 8XDXc T T.'XP.> @XwXOXUXyXU m s.DXI.Z.K.` 3.H.8XV.H.H.rXj N N.X.X.X.b.bXgXg.c.U.U.c.U.U.U.#.#.#.c. .cXu.U.U.#.#.U.#Xz.U.U.o.c.c./.I.c i. .c. Xu.UXuXu.#.I i.U.6X&.c iXu. .U.UX& i.UXu. . Xu.c i.U iXu.U.U.I.UXg.oXg.o.o.o.b.X.o.^Xj.^Xz.X.oXz.k eXt.kXjXj.k.^X9.A qXtXt.kXt.kXtXt.k.rXt.k.^ N.o.b.b.X.o.o.b.b.b.b.XXgXg.bXtXjXj.^ N.o.oXg.UXg.c.c.cXk.c.c.cXg.zXgXkX9.&XxXX )X9X9X9 ).X qXx NX9Xk.b.b.X.b.X.^Xt.k.k.kXdXt.k.k 3.uXDXGXLXmXe nX,XDXDX,XlXMX, U nXn ..EXr.g >XM .9 x xXDX,.M.a.a.a R R RX1 RX1 R.a R.a.e R.a.a.a < #.lX4XrX6X6 S o v vXL.w.9 xX5.w R 8Xs T g RXI 8XV.H.`.H.H.H.HX1X5 m.w TXs B RXsX,Xa s sXLXG.>.9 ' s.w x $ 3.H.5.8 #.8XVXJXHXJXlXUXl $ BX,.~.a.M.ZXO g.EXn.. w.{.TX:.y z WX4.1 z z M.y.TXrX4XA EXe U < < aX1X1 3 c.}.Y `.g.[.[X3XMXMXX ` # h.MXI 3X1XIX,X,XV aX, R R.aXDXD.MX1XI xXlX-.a R a.Z xXMXcXwX. y.n.wXI.DX1X- BX,.wXGX0X>.@.sXpXe t.M.M.M 1X,.ZXD R.Z R.M p.s 0 &XC.nXa.D 8Xc.aXl h T gXlXU x s & K.+X> S H M M yX0.+.OX; s x xXK.9 xXl x n 1XHXwXcX..SX.X. TXHXD hXD.WX,Xe.wXe w z.y.;X8.4X8 WX8 WXnXL xXL 1Xw.9X;XH m.3 n.%XhX.XH mXKXK `Xl Y T 3.~ R.u $X, aX,.MXDXl B RXD.Z #X5.K.~.`.a R.e RX-Xl 5 I., c.9.'XK.9 : kXlXh & &.+ m c.`X1.`X-X1.k", +" @X. KX;X.XO g gXOX.XOXwXO.2XOX$.GX. ' cXV 3XVXV.uXV.Z.'X. gXK !Xw !.O g !.O.OXKXwXc.%X.XJXJ I.u.8 ~.8 ~.r.^.bX9.o.X.b.b.o.b.o.c.U.c.U.U.U.#.U.U.#.c.U.c.U.c.#.c.U.U.c.o.o.o.b.b.o.o.bXg.o.b.U.U.c. .#.U.U.#.c.#.I.U. .#.U.c.U.6.#.U.6. .UXu.U.6.U i i.U.I.#Xk.o.o.b.o.b.o.X.o.b.b.^.k.^.^.^XjXjXdXdXj.kXj.kXj N q NXjX*Xj.kXtXtXtXjXj N.o.X.b.X.b.o.o.X.o.b.b.b.o.oXgXx.b.^Xj.^.b.b.X.bXg l.cXk.cXk.c.cXk l.cXxXg.X N.&.$ I.% I kXJ 5 |.RXx N.b.b.X.o.X.b NXdXtXt.rXtXt.kXt.r.` c $.YXmXwXGX, h.}.Z xXq $Xr v o 0 0.jXrXB ` 1 1 x c U R.a.M.a.a.}.MX- t R R RX1.u.aXD R.a RX-X-.a.a # .x.@ ^ & b.sXL.* RXD c # ' xXa.Z.n g.'.kXd.HX1.H.H F.H.H.H 8 D.0.nX, t B R.*.M.Z.W.nXm @Xm oXK y 1XUXUXc m T.9 :.>.1 s.9XL.Y sXK.'.ZXeXLXGXPXU.q.> JXiXiXb ^.;.;X>.x < v.p.YX+.<.x.x.{.p.J E EXe a.a a.`X-X- cXB.l k., k.[ k V X3 ` 1 $X,.M hXDX1 3XlXlX-.aXDXD a.a.MX, BX.XK :X,Xl $ 1XX., |.,X;XKXL.D 8.DX1XD.Z.w s b.; o HX2XpXr xXe 1XJXJ.9.]X- cX- R u.).@ w &XP s s 8XD.-XK kX.X..%XwXPXU.> @XhXh.1.1 nXrX%.+.j n.jXw o.'.1XwXwXw.9 `XHXwXl xXlX, $ sX,X,X5X5X,.ZX, $ y n oXh.+ =X0.+ M w ^ ^X> v.YXe.9X,Xw.[.' 1.' hX5 $ m.9 xX..a R B 3XlX5 RX1XI RXIX, $XDXD RXDXDX, c.H.u.u.uX-XI a.eXD.} RXlX3 `XJ.9XHXc.9 :.5 ` ` yXm O.q ! c.~.`.`.`.`.K", +"XwXy K g 8 8.D 1.]X, g.]XO.0 TX;XJX.XlX-XIXI.8XI 3XIXIXD 5Xw D.D.nXK.0.'.9 g n $ 1 :.] )XK ) q.KX5.k.k.k NX9XkXgXgXk.cXgXgXg.c.U.U.U.#.c.c.6.U.U.c.#.c.U.c.U.c.UXg.U.o.oXg.oXg.oXg.oXg.oXg.U.U.U.U. .I.c.c.#.U.c.c.U.c.c.U.#Xk.c.U.U.U.c.U.c.#.c.c.U.U.U./.cXg.oXg.o.o.o.X.o.b.b.X.oXg.X.b.^XdXj.kXtXjXtXj.k.k N.o.kXt.kXt.kXt.kXj.kXt.X N.b N.o.o.b.b.o.X.o.b.o.b.XXg.o.o.^Xj.b.X.o.b.bXgXk.c.UXk.c.cXk.cXkXgXkXg NXxXxXx.$ ) ) ).$ I q.IX9XgX9.b N.^.^Xj.k.rXdXt.^XoXoXt NXxXXXJ.%.j.EXG 8 U.aXe.i x.Y uXnXnXn 0.EXp.-XBXMX,.}.a.a < R.aXD.a <X- <.a.a R R B R.e.ZX1.*.a.aX-.a.aX-.a.lXM.pXp ^ HXmXL.w 8 aX- a.a.a $.w '.9XKXU g g.2 TX5.HX1.H.HX1X1 D.'.wXa B R.e.a R.*XD.w.q.OX0X0.E.>.E y nXyXwXUX0X; y.OXG g v b.' &Xm s s s v H.q &.q.@ %X6.PXi.@X2XrXp E.*.Z.d vXnXn.<Xf.<.p.J._ U h.M tX-.aX-.M 1 xXq.[.S.,XX.,X3., `X3 1.a.aXDXDX,XDX1X1Xl a R.a.M R.aXl : `XcX.., xXc.-.3XHXH k.j.9.!.'.'.nX5 :Xl s s ^.; S M M M =.-Xw.[XK TX.., #Xl 3XDXn.xXf H.q 9 s.ZXD.a R RXI $.K.0 D.!X;Xy.G.GXZXw n.[.Y.[X<.1 n.j.j.Y.T.jXmXpXwXwXc 1.,X. 1 $ s xXc.wXl s x T 1.Y = n =.OX0X0.>X0 M = M.; 0 0.jXq yXnXe C.Z.W $.ZXI.Z.ZXD.Z $.u 1 x `Xl #XDXI R RXDX, c.0 1X1.aX,X, $XV 3 : :X9.Z.uX- R R R.a 3 a.a <.a R tX-X- RX- R tXa.= o.'.u.`.`X-.8.~.`", +"XJ.0XKXJ DX- RX1XIXI R D.2.2XUX. (XV.2 ( 3.HX1.H.HXI.`XI 3.H.aXI RXP.n.wXa.'XK RXIXD cXI.8.H.8 ~.r ~.r ~.XXgXk.oXkXgXgXkXk.U.U.z. . . . .6 iXuXuXuXu.t. .6. .6.I.#.#.UXk.cXk.c.U.cXgXg.cXk.U.U.U.U. .U.U.U.U.c.c.c.U.c.c.c.c.U.c.c.c.c.c.c.U.c.U.UXk.U.c./.cXg.oXg.o.bXg.o N.X.k.^.^.^ N NXo.^Xt.k.k.kXj.k.k.rX9Xd.k.kXjXtXjXjXjXjXj.^.b.o.X.o.o.X.o.o.X.b.b.X.o.b.b l.o.X.b.X.b.b.b.X.bXg l.U.c l.cXg.UXg.UXkXg.o.X.b.X.b.XXx.X.^Xg.X.b N.X.b N.X.^.rX*XtXt.uX*.r.|.f.$ I.f VX9 k xXL.s.s.iXeX, xXp.YXe v v v ^.EXwXr.[ xX3.}X-.a < R <.a.a R R <X-.M.}.Z 1Xl R.9X5XDX, t t R.aX- <.a #XqX+.@Xn.q o x.w R R a RX- B.a 8 'Xw.> s.'.n s.0 g gX5 8XD.D.DXO.'.w.9.w RX1X- a R 8XL bXP J.s.s *XsXs.W.W.W.WXa O /Xa.N $.'XK v.ZXGXp JXm J y & M H.4 M.4 r S S.+.TX<.Y aXDX,.M.M pXqXp.J.x.p ..m E U.} t.e t U h E .gXH.S.3., | }X.XJ.- k $X,.aX,XI 3X,.5.Z 3X, h hXDXDX,.Z.u x x 3 c c.,.- mX;Xw.j.!.'.0.! 1 o y.E.j &X0.;X> JXe U h R.a R 8 $.~XV.rX- aXpX=X6 HXG.n.w R B R R.a RX,X-X1XDXI.D TXU.>Xh k.[.,.[XB [.,.g n.9.Y & &.T = o.- y k.9.,., x R 8Xs.MX,.W.w.wXG.j =X> &XC =.q.> o HX0 & &.E J JX0XGXG y.M U.ZX,Xl 3.ZX,XD.ZX, : TX5XDXD RXDXD R.a.ZX,XwXDX.XcXK T.GXJXwXJ mXw.3.,., R R R a BX,XI.a.}.a.aXDX1X- 3.a < C.v 2 b :.8X1X-.`.`X-.`", +"X,.uX1 I D.5XI.`X1.~XIXV : c D.` 4X5 B q.2.8 ).u.8 3.8.`XI.8X-X1XlX..'.!.9 yXwX,.Z.u.u.H.8.8XV.8.8.8.r.^.b N.o.o.X.b.o.b.o.X.o.o.c.cXk.c.#.I.6.6Xu i i.#.U.U.U.U.I.U.U.c.cXg.c lXk.U.U.I.I. .I. .6 d. . . .6.6. . . ./. . .I. . . .I. .I. .I. .I.I.U.I.# i.z.UXkXg.cXgXgXxXgXg.^.k.k.k.^.k.^.kXtXt.^.rXt.rXtXj NXjXtXtXj.^.b NXj.k.^.^ N.b.b N.b.b.X.b.b.b.b.b.b.b.X l.X.o.b.o.b.X.b.o.bXg.c lXg.U.c.c.UXg lXgXg.b.b.b.X.X lXg.b.X.b.o.X.b.b.b.X.r.k.k.r.8.8XtXdXVX@.2 qX3.5 c cXI UXG vXn.).W h._._.YXp.s.W J.j.>X+ ` XM h h.a.a R a R.aXD < R.M t.a $Xl 1 x $Xl TXK `XcXJ.M <.a aX-.i x.Y.p o H 9XL.Z t RX-X- R R R R a.D.' TXwXKXU s.'.' T gXD.D gXK.D x.D.w B.eX- a tXDXL bXC 0 /.) C u 8 8.).N.).= /.NXe 8 R.jXU.> H H & 0 o.E J wX0 S S.CX>Xf H.; MX0 [.iX1.ZX5X,.M U._Xn.p.<.x W.< . .._Xe hXe._XnX+ zXS.3X#.,.] 6XH.3 K.S [X,XD c $XJ.].K : :.aXl.}X,.}XIXI.a.a.a.a 3.aX-XK :.- n y o.EXm 9 H.j M.;X0 H w J.4XfXG._ hXD.a.M.a.M sX-Xt #.uXe._.vX6 H 9 xXD 8 R a R BXD 3 R RX,.*XD.w.9XwX; k.-.[ kX<X#.g.- [.1XrXGX+.E = M n s y n 1 y x.MXLXeXG o y.j &.T z H.@.q.>X0XmXw.j y.q.q.; H w =XhX0XGXp v.* $ hXl c ` R.Z $X,X3XI.}XD 3X, U $ UX,X,XD.9XcXJXJ.,.9XK :Xw xXlX,X,X,X- RX,.aXc.9.5XD.a h.a $ :X5X5XJ $.j.W.) 0 b $.`.`.`.`.` R.`", +"XIX-.8 R ) m.5XIXI.`XIXIX-X1.u R.u.8.HXI.` )X5.$.`.`.H.`X-.`XI.~ DXyX;XU !.GX;XK D ).%.`XV.H ~ ~ 3Xt.r N.X.o.X.o.X.oX9.o.o N.oXgXk.U.c.c.I.U.U.U.U.U.#.U.c.U.U.#.U.UXkXg.o.oXgXg.o.oXg.U.UXk.cXk.U.#.cXk.U.c.c.U.U.U.U.c.U.U.U.c.U.U.U.U.U.U.U.U.#.U.I.I.6.UXkXg.U.UXk.UXk.UXk N.o.X.X.XX9.X.XXx NX@XxXkXxXx.X q.XXgXgXk.U q.z.U.z.U.z.z.z.z.z.zXk.UXk.UXkXk.cXkXkXg.IXkXgXxXgXg l.cXg.c.U.z.I.#.z.U.#.z.#.U.z lXgXgXgXg.b lXx.o.o.XXgXgXx.X.XXdXoXdXdXt.H.rX*XtXV.kXV.H c.kXV.H.DX, o.s.).N.W.= MXpXG.s.sXn.jXcXB XMXM #.} 3.a a.aX-.a RXD R.a.e.a.a R.M $ $ R xX,X5 hXD xX,.a.M.a.}XM x.-.;.jXC bXaX,.a R R R R RX-XD.M.aXD.W.w 'XK g.'XU.' gXOXU.] gXl.wXD RXDXIXD 3.a.n s.!.q 0.s...)Xs.ZXa hXLXeXL 2Xa.nX,.wXK =.O.>.> H H.; &.;X8 zX0 wXfX6 ^.4.;.pX+.Y CXDXIXD.a.M.M.M.dXnXG >X+.x >XA E EXe p p._.@Xr.1XZ T V 3X5XVX3XJ.3.-X,XM.G.a m.,.% T.] T.% :XcX-XI.aX1XI R BX,XD aXM : `.[XmX+.4 &.;.4.@Xf.J.@.@ 0X6.@Xn..Xe.Z.ZXIXDXDXD.Z.aXlXM.aXL.sXi HXCXL.>.> cX,.ZXJ.a :.ZX-XDXI R 8.D sXKXH.-XK.-.SX#XH.-.gXr n [Xh M.T.1.j.+.>.E yXw.YXG o JXnXC W.j z.+.;Xp J H & &.j.jXG gXe J.jX0X0.>.+ H.T n M =Xs.9 $ # D.]Xl.Z.Z.ZXKXDXD.Z $ h.wX,XD.MX,.aXDXD.ZX1X-XDXI xX5 t.a R.MXD $.*X. :Xw :.,X..- |.9X. T.2XJX.XK n.).= b vXVX1.`.`.`.~.`.`", +"X-.`X-.8XI V )X3.u.` R.`.`XI.u.`.8 3 ~XV.u.K.$.$ ) :.8X1X1.8XIX-XVXUXOXKXmXPX. : :X3 D.uXV.8.8 ~XtX*Xj N.b.UXg.bXg.b.oX9.oXg.bXg.U.c.U.U. .U.U.U.c.c.U.U.U.U.c.U.c.U.U.o.b.b.o.o.c l.U.U.U.U.U.U.I.#.c.U.UXk.U.U.cXk.U.U.c.U.c.U.c.c.c.c.c.c.U.U.U.c.U.U.I.cXg.o.b.o.o.X.b.bXz.kXtXt.kXtXtXtXtXt.k NXkX9.rXjXtXz.k N.X.X N.b.XXg.o.X.o.X.o.X.o.XXgXgX9Xg.oX9Xg.oXgXg qXgXgXgXgXgXkXgXgXk.#.z.#.z.#.U.Q.Q.Q.z.Q.QXxXg.z lXx.Q l.zXk.zXgXk.X.z.X.^Xo.^Xo.5XoXo.5.5 N.K.k.K.5XoX5X5X5 $.Y.s v ^ oXp.E y H.Y.E n [.[XB.,.l.l 3X, cXlXDX,X,XD 3 hXDX,X,.MXD h hXDXDXDX,XD 3X,X,XDXDXDX, 3.}XX .- MXw yXL.wXDXD.a 3XD.aXI 3XD cXD.aXD.MXD.M $XlXPX5.n.0.0.w.' $.a tXD RX-.a.aX-X,XL s.q OX=.) u t.M 8.M t.w t t x hXcXcXwXOXL v o o 0.v.).s v.; wXiXi {XfX2 ^X+XGXG C R RX1X-X- R a.*.a._.FXn.<.pX4XA.m.m.m.m...jX+ M.O :X5XlX-XI c x.-XJ.lX,XMXKXJXJ mXc., cX..]XKX,.a RXDXD 8 R.*X-X- c `Xr WXp 0X6 ^.BX:.{ % M.. v.;X2 vXr vXcXcX,.,Xw.MXc.[.}.1X+X>X= 0 w.E.WX; 1XHXHXlXJ mXJXl I.eXIXD.aXD.n 1.>Xw n [Xw.1 n.-XwXH [ n WXHXS MXnX> &X0.+Xw.E J ^.@ ^.y zX%X%.j.4 0 0 H H b s y.w oXG =XG.>Xp H.T nX<.1Xh.jXh n.,.% `X..2XUXlX,XcX1 hX1 hXDXD hXD R.MX,.} c RX,X, R.M.ZXD.aXD R RXDX, RX-.e : RX5 : 3XcXlX,X, 8XI h.a.E.w.s.s.!XD.`.`.`.`.`.`.`", +".8.8.aX-.8.~ 5Xl }XI RXI.`.u.8 3 ~.8.r.rX*X*.`.5X9 qXV.`.H R.`X1 8 T.0.n x gXw m.aX5X*.H.`.8.k.rX*Xt N.bXgXkXg.b.b.b.X.oX9.b.o.oXg.c.UXk.6.U.U.U.#.U.c.U.c.U.c.U.c.U.c.c.oXg.cXg.U l.U.U.U.U.c.U./.U.U.U.U.c.c.U.U.c.U.cXk.c.U.c.c.U.U.U.U.c.U.UXk.U.U.I.UXg.o.X.o.X.o.o.X N.^XjXj.kXj.k.kXj.kXt.kXtXkXxXj.k.^Xx.b.X.o.X.o.o.b.X.b.o.X.o.X.o.oXg.X.o.o.oX9.o.bX9.o N l.b.X.b.o.b.b.bXg.cXk.c.c l l.U l l l lXx.z.bXz.XXo _.z.XXz.^.b N.o.X.^XtXd.rXdX*Xt.rX*.k ~ 3.8.8XI.H.H.` FX1.nXa.N.s...s oXrXrX0Xr n.[.9XM # a a aX-XD s.~X- a a a 3.* a aX- R a a R < a.e.a a a.a.e t R a.a a h.lXl.Y.jXm.D.W.*X- a a.~X-.~ R aXI.e t R t R R.* t R.D.wX5 $ $ $ R.e.MX5 RX-X- aX-.aXaXLXm o.s.).d C t R aXKXqX, n `Xc k :.9.'Xa 2 J J.s 2X=X=XiX8X> w.P ^.4.<XpXqXnXs R tX-X,X-.~X-X-X- a RXeXpX4.<.{.{.< >.J.<.@.; H = K g kX5XX ` I V 6 V .u h c 3 RXIX-XD :XIXDX5.H $ cX,XD 8XD RXDX-.} hXXXBX<.x ....sXb.y S p.+Xr.MXh.j <XwXl T !X1XlXl t nXZXeXr.{.;.B b.q 9.w gXUXDXc $ xX5XlX, Y mXI 3 BX1.n.wXU.>Xw !XH n.,.-.gXZ [.-.,.[ [Xh.1X0 o zXC &X>XG.@ ^ ^ SX:X:.y >.x & H =.q.q.9 v.Z.9XG.'XG bX0 n = W [Xh MXw.j.9XKXDXD $X..e $X5 1X1X, RXDX,X,X,XD.MX,.Z $ RX,X-.a.aX,XlXDXI R.a RX-X,.a aXD aX-XD R RXD.a RX1 R BX, U.M p.s.W.jXD.`.`.`.`.r.8.`", +".a.`.8.`.8.8.~.$X9 I.k.` 3X*.}.r 3 ~X*X* ~.kX*.8.u I.$ :.~X1XI RX1.].'.w.n.j @XJ m q T q D.X |XxX9.k.X NXgXg.b.o.o.X.o.bXgXg.o.o.U.U.U.#.I.c.U.U.U.c.c.U.c.#.U.U.U.U.c.cXg.c.U.U.U.U.U.U.U.c.U.c. .U.U.U.U.U.UXk.c.U.U.U.U.U.U.U.U.c.c.c.c.c.c.c.U.U.c.IXkXgXgXg.o.o.X.b.o NXjXj.kXj.kXjXt.kXj.k.r.kXdXt.^Xt.^XkX9.b N.o.b.X.o.b.X.b.o.b.b.oX9.b.X.b.X.b.b.b.X.b.b.o l.X.o.b.X.b.b.oXgXk.cXk.c.c.oXg l lXg lXgXg.o.X.XXz.XXg.X.b.X.X.^.^.XXtXtXtXtXt.u.rXtX*.r.r.` F 3.8.8.8.HXV.H.0Xs.s vXnX>X0Xw.-XcXK Xl.lXMXX h.a.a.aX- R 8 RXI a R R $ aX-X- tX- t t RX- R R aX-.a a < R B tX- a.a #.i.9.j yXL.Z <X-X-X-X- RX-X-XD 3 RX-X- a <.e R R R RX-XDXD BXD t B h $ RX-X- a R t.DXL b.E...N.).M 8 R.e.3 $ |XM # cX- a.wXa 2 b v J 2X= 2 0X> wX8.;X8X>.<X4 v.M t a a RXI.~X-.`.~.~X- a.MXeXqX4.<.<.<.p.{.<X>.4X> & &.9.D cXl.u VX* #.,XX.l.a.a #XIXDXDXI BX1XIX-XIXIXIX, $X,XDXD.eX1XDXD x.F.pX< WX4..XbX:XF vXe y.M.-XK 1 1 s.wX5 RX,X,XD.-Xn .Xi.B.B 0XCXC v.nXD.e t.e.* a RX- R VX. cX-.ZX1XDXl s.9Xm.jXw.>XH n.,XHXH.[ [XZ.T.O.L.T = &Xh.+ y.+ = MX:.L.T.y.T.j.;.+.+.>XC.jXG.wXwXD.W.9 sXG 9.Y =.-XB n.1Xw v.wXK $XDXD `X,.aXK.aXIX,X, t.Z xX, <XD hXD aXD RXDXDX,X,X-X, aXDX-XDXDX, R.aX-X-X1XDXI aXI a B 8X1 R.a hXe.)Xn.j yX1.`.`.`.`.5.8.`", +"XV.8.8 3.8XV.8X1 : I D.$.8.5.8.8.8.rX*Xt.k.rX*.KXt.` ).,.RXVX1X1 B @.]Xa.n.nX.Xc.K c D.$.5 ).$.fXk.^.X.bXgXg.b.o.o.X.bX9.b.o.b.o.cXk.U.#.#.U.U.U.U.U.c.U.c.U.c.U.c.U.c.c.U.U.U.U.U.U.U.U.U.U.U.U. .U.U.U.U.U.U.U.c.U.c.c.c.U.c.c.c.c.U.c.U.U.U.U.c.UXg.zXg.o.o.oXg.oXg.X.o NXj.k.kXj.kXtXj.k.kXt.k.kXt.kXt.^XkXg N.o.b.X.o.b.b.o.X.o.X.o.X.o.o.bXg.b.o.X.X.b.o NXg.bXk.b.b.b.o.b.bXg.c.c.c.c.c.c./. d d.f d.& AXx A A.z.R AX@X@ AXkXtX*.rXt.^.u.rXdX*.k.kXVX*X9.r 3.8XIX* ~X1X1.w.'.sXn.@X+Xr.p.9 1 x 1 h h a aX- a R.aX- R.aX-.~.a c.e a RX- a RX- t a R RX- a.a a R a t BX- aX- 3 #.F.- gXL.Z tX- tX-X- B R RXV.~X- a RX- aX- RX-X-X-X- R.e RXDXD R a RX- RX- a.a a 8.n bXC O.).d C.* a R.a.' R.a.aX- 3.aX1.wXD.=.sXG.s J.).= 0 ^.4X>.{X>X4.FXq u t a RX- aX,.~X-X-.~.`.~X1 a.* EXnX4Xn.F .X4 >.@XpXp.EXwXUXD RX1.KX9 3.8 VXXXXXX # $.a.} a a 3.aX-XI.8XDXIXD 3X, RXVXDX1X-X, h 1.F.[.g M nXn.)Xe.* t BX,.a h.a h.D.D RX1.M.MXqXeXn .X> LXi J SXC.! $X1.a aXK `.ZXK c $XIXl.aX- RX,.Z.Z g = !.' oXw n =X.Xw [ k.[ K kXhXSXZXhXH.>Xh =Xh.+ M =XZ.T.jXrX+.; M =.; y y.w $X, $.' sXG.!.j.>.SXH.Y k.1 n y.- x : R.Z.9XIXDX. $XD.w $X, $ x.9 $XK.a.aXD.a.a 3.e 3XD RX,.}XDX-XDX,XDX-.a a.a RXVXI R.a.,XDX1X, $Xc.M.jXn J JXKX,.`.~.8X*.K.8.`", +".8.8XV.8.8XI.8.H.8.H.$.AXXXV.8.8.rXtXtX*X*.k.r.rX*X*.8XV.K I 3XIX1 mXU.O.' sX..uX5.`XI.8.8XV.rX*.k.^.oXg.b.oXg.b.o.o.bXgXg.oXgXg.U.U.U.I.#.U.c.c.U.c.c.VXg.c.U.U.U.U.U.U.U.U.c.U.U.c.U.c.U.c.U.U. .U.U.c.U.U.U.c.c.U.U.U.U.c.U.c.U.U.U.c.U.c.cXk.c.UXg.U.o.b.o.o.o.o.o.b.o.X.^.k.kXjXj.k.kXj.kXj.r.^Xt.kXt NXk.oX9.b.X.o.b.o.b.b.o.o.o.X.b.oX9.b.o.b.b.o.b.o.b.b.X.o.z.b.b.b.o.b.o.c.UXk.c.cXk.c d.6X .t.t.&.&.RXx.&.&.R.t Q.& A.fXx ~Xx ~Xt.u.r.u.kX*.r.u.rXt.5.8.u 3XI.aX-X,Xl.n s.. 0X> WX+ ` ` x $ h $Xl a hXI.aX- RX-X1X1X- RXV aX,X,X-X- a RX- a R R RX-.e.a aX- < R R R R.~X- <.a # 1Xc.j.nXa RX- aX-X-X-X- R 3 a R R a R.* R R aX-X-X-X-.aX-.a R R a B BX- a tX-X- 8XL.nXm vX=.M.N B RX-X- BX1 aX- RXDX- R $ s.N o.s J.v / o 0 yX>.@X4Xp.F.d t R.aX-X- a 3X-X-.`.~X-X- a B < t.MXeXnXn.FXnXp.FXnXpXp y y y RXI.`XXX*.8., V `X3 ` ` h.aX,.}.aX-XIX-.}XDXD #XD c R R.DXDX-.D a c.F 1XBXB.-XpXG p.M v RXIXV :X, $ h.Z.a B a $Xe.s.. w S w H.;X0 =XyX.XcX.XD.9XlXJ TXcXcX-XIX,.eXIXD R.2 g.9.w s.9.nXKXU.>X;.1X..O.S.1 |XHX#XhXw k.1 n.O.+.+ =.T.T.1.+ M z.O.hXh.>Xh x.9 $ s x sXm ! = =.S.SX7X7 n =.j o ' 1.a.Z `.Z $.,XUXcXJXKX. g kX.XwXH x.OXIX, cXI hXD.a.aXDXDXI.a 3XD.a R a R a R B c aX1X. #XJ TX3 m.j M M =XZ.>X5.`.8.uXxXV.8.`", +".8 ~.8.8 ~.H.HXI.H.u.`X9.KX*.rXVX*XtX*Xt.r.kX*.k.r.u.8 3.8 3.`.a RXJ.n g !X..GX. 5 D 5.`.H.u.r.k.k.bX9.b.o.o.bXg.b.oX9.o.o.bXg.U.U.U.c. .U.U.U.U.U.c.cXgXg.c.U.c.U.c.c.U.U.U.U.c.U.U.U.c.U.U.#. .6.#Xk.U.U.U.U.U.U.U.U.c.U.U.c.U.U.c.U.c.U.U.U.U.UXgXg.z.bXg.o.X.o.oXg.bXg N.^XjXjX*.^XtXk N.kXt.kXt.kXjXj NXk.o.b.o.b.o.o.b.o.b.b.b.b.b.o.b.o.o.X.o.b.b.b.o.b.b.oXgXk.b.o N.b.o.cXk.c.U.c.c.U.c.c.UXk.I./XgXk qXk qXkXk ).RXk.z )Xo.8Xo.`.H.u (X9 ]XlXo.5 ` DXV.k.].u x 3 $.9 v.wXi.v 0XrX+ #XD X, 1 : x RX-X,X1X-.aX-X-X-.aX-.aXIX-XI.e RX-X-X-.e BXI t RX-.a a.a a a RX- R.eX-X-.a #XM gXUXL.Z 8 aX1 a R RX-XDXDX- R.e R RX- a RX- t aX- a R aXD.aX- R s c.e RX- t B 8.ZXLXC 0X=.N u t R BX- R BX-.~X- 3 a c 3X3XeXs v J._XG O o vXmX+XGXp.. u u t R aX-X- R 3X-.e.e R.~X-X- a B a.a t t C t u U.d uXnXnXpXp yX, RX1.8XXX*X*XJ.$ V XMXM.}.aX,.}.} a h :XM kXhXX 1XK.u D.0X5XJ.DXKX3.l.l.F .<Xq 0.N.YX, kXc.,.- kXw.j., TXwXG....X6.; HXCX> J JXG.9 $X1X, a h.Z.MXDX,.aX- a 3 3.~XJXJXJXc.w $XD.wXw gXGXUXw.>.G K.GXSXZX. [ nXJ.-.3 k.1.O.+ =.OXZ KXh.O.O.+.O K.O =XU.a $.9 :.'X. [Xw.-.-X. V k.1.jXa x.9 RX, T :.aXU.,XK T.ZXK xXl.wX,XJ $Xl.}.Z 3 R R.aX- 3 RX,.M.a.a aXD.aX-.aX- aX-.DX1.a #X1 : c c h.d.s.s v b.0.Z.8.`.`X* 3 ~ c", +".8.8 ~.8.8.8 ~.8.8.8XtXV NXtX*.rXtXtXt.kXtXt.rX*XtX*.r.8.8.}.8.` RXc.n.'.' gXH.] D.k )XV.H.8 3X*.k.XXg.b.o.b.b.o.b.X.o.o.bXg.c.c.U.c.U. .c.U.U.c.U.U.U.c.U.c.U.U.U.U.U.U.U.U.U.c.U.c.U.U.U.#.U.6.I.#.U.U.#.z.U.#Xk.c.U.c.U.c.U.c.U.c.U.c.U.U.c.UXkXgXg.U.b.o.b.o.o.bXg.b.o NXjX*XjXt.r.K.fXkXj.^.kXtXjXj.^ N.U.X.o.b.o.b.b.o.o.b.b.o.b.o.b.o.b.b.o.o.o.o.o.b.o.o NXgXg.b.o N.o.bXg.c.c.U.U.c.c.cXkXk.zX@.& 5.fX@ q.AX@.A.&X X@.f.$.K.u.8XV.KX3 ].u m.|.%.] P ] ] $Xx.9.'.j =XC ^ 0 ^XfXi.jX7.- ` # xXJXc $ x.a B R R 3 RX- R.e RX- RX-XD.e.a R a a.e a R a.a R.aX-.a a a a.aXD R B RX- a 3XMXM.-.q s.W B.aX-.a B RX-XI B RX- R B a aXD $XIX-X-X-.a.e.uX, $ R.M TXD.a R h a R 8.n OXC 0.=.) C R.~ RX- BX- R R.e.ZX-.u 3X, xXs.=Xp vXLXGXG.9.-.YXpXqXq a.}.* R.8.~X- aX-XDX- a.eX- aX-X- R.~.e.eX- BX1.* a a aXq .Y o.Y yXDXI.8.r.K ~X*X*XX.$XBXM # h.} 3XX `.-X#.3 Y.- DX. mXJ $.u 1XX a #.l.FX+.<Xn.sXmXGXK c x 1XB 1.w $.ZXl.W ..P w & b bXL v.w._ 8.uXl R cX,.aXDXl.e R RX-X-XIXl TXVX,X,.%.9X5 TXw 4Xw.OXy.O.OXw.3 m.O.1XH [ n., k.- n.O.>.+.O.+.OX;X; =.+ MXw y.' xXl $ $ s.jX. nXcX. V.-XBXB.,.S &.s v `XlXl cXl $ x T.e.aXDXDX-X, U.aXD.a a.a.aXDXDXI R.a a R.u.aXD a.aXI aX-.MX- R BX1 3 a.aX-.`X-X- < u * / 2XL.9X5.8XVXX.8X-X3.5", +" ~.r.8.8.r.r 3.rXt.rX*.k.5.k.rX*XtXtXtXt.kXtXtXjX*Xt 3.8.8.`X-X-X1.2XKXa.'.'XJ DXIX*.`.H.8.H ~ ~.^ N N.bXgXg.o.o.b.o.b.bXg.c.U.c.U.U.U.I.c.U.c.U.U.c.U.c.U.U.U.c.U.c.U.U.c.U.c.U.c.U.c.U.I.I.#.6.#.#.U.#.I.#.#.U.U.U.U.U.U.U.U.U.c.U.c.U.U.c.U.c.c.o.c l.b.o.o.bXg.bXg.X.X.^XjXjX*X*.^.kXtXk.z ~XjXt.k.k N.b.z.b.X.b.o.b.o.b.V.o.o.o.b.o.b.b.o.o.b.b.b.o.b.b _.b.oXgXg.b.o.b.o.b.c.cXk.c.c.c.c.c.UXgXk.UXkXg q.XX9XxXx.X.X q.X.X NXV.u.8.kXV.5.u 3 5 $.H cXl.` 3X1XaXGXG oX6 2X=X=XiX= %X2 yX< :XBXM h.a.a.e.a RX-X-XDX1 a R R aX-.e a.uX-XI.e RX- R a R t a.e R aX-X-.a a 3 R.* B RX- a h # .-XUXaXa.M.eXwXD R.*.* R RXI.e aX- R a #X. `.*.a BX-XD.ZX. :.e R a R BXD.G a.a B 9XaXm J 2.N C R t.~X- R R.eX-.*X,.~XI #X5.M.WXsXaXm.W x.9.}XI `XcXp Xe < C a R B R B R.M a.*XD.e R a.~X1.e.`.` BX-.~X-X1.}.e.gXq MXqXGX+ TX,.`X*.8.5XVX-X-XMXJXXXM ` ` V.G.,.,X3 1Xl R.ZX5.H.Z c.uXIXI.}XM >X%X: ^ pXe.D R R 3 R.MX, 3.e cX,.W 0X6.; wXa.n.n.D.W t t $XK m `Xc mXc TXHX,X- R RX- ` cXI R.~ 1XJ.' :Xl x.9 'Xl 1 ' s sXP.9.j MX; =.>XH.O [.+ =X0 =.>.+XC.!XcXm.'.E !.j x $X,XcXK = @X;Xh [.-X3 .9X7 n &Xa v.-.9XKX,.ZX.XlXD 8XDX,.MX, RXDXI.} RX,.a.M 3X,.}.ZX,X, a.Z.aX,X5X-X, :.ZXIX,X-X-X-X,X1.a.a.~.a.a < C.s /.v s.0XoXV.K.u aXl $Xc", +".kXtX*.r.rXtXt.rXtX*.r N NXtXt.k.rXjXj.rX*Xj.kX*.kX*.r.8.8.`.` 3.a.0 D.w ' : mXK.` c.u.5XV.k.K 3.^.XXg.b.X.b.b.b.X.o.X.o.c.c.U.c.U.U.#.I.c.U.U.U.c.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.c.#.#.#.6.I.#.I.#.#.#.I.U.#.#.#.U.U.U.c.U.U.c.U.c.U.c l.cXg.b.UXgXg.bXg.o.o.o.o.oXgXjXt.kXt.k.rXj.kXjXt.^.k.^.^.^Xg.b.z.b.o.b.o.o.b.o.b.b.b.o.o.o.b.b.oXg.cXk.UXk.c.cXk.cXg.#Xg.b.b.bXgXgXg.c.c.c l.c.cXk.cXgXkXk.XXk.f 5.& q./.X.X ) N.XX*.rX9.8 3.r.rX* ~X3 ~.u.H 3XVXDXl gXG O 0 0.vXi ^X6Xi.P.jXBXJ :XlXMX-.aX-XI.a.~XlX,X1 RX- a RX- $ )X1XD.a.a aX1 1.Z a.e R RXlXK $ R aX-X-X,XlX5 R.eX-.a c `.3.[XU.n.w 8.*.,.a 8 R R.e R.a.eX- RX-X- $XJX. RX1.* C R.eX..Z.aX- a.a.eXc.,XlXD.'.wXLXC b 2 / C.a.~X-.e R aX- R R 3 R R # c sXsXs.sXGXpX,.a 3 3.}XK.9XGXG a t R.e B R.eXDX1 t a.* t R RXD.eX-.e.H.H.` B.~.e.a h x.-.F.1 = y.-XcX1 c.`X*.5 #.8X* :X3 VXXXMXX :X3.,., `XX 6X. n.3Xl., ` 3 3XV a.a R h.FXq.pX2.xXf v CX1 RXD R.M.Z.}.eXl BXeX6X6.4.q.!XL.nXs t.M aXKX5XX.ZXJ.Z $.a $.a R.e.aXIXIXIX5 cXIX-.ZXV.~XJ.ZXV.ZXK.0.'Xa 'Xw y.' b.9X0.> = n nX0.+ M =.+.O &Xm.j y [.>XUXUXUXK n.>.GX;.GXSXHXH c 1 $XB.[ n M b v.>XJ 1 kXJ m.9 R U.a.ZXD.M RX,.M.M.aX- R.a.a R tX- RX,.a 3Xc :XMXKXKXcXcXKXl R RX-X,.aXIXIX-X-.M.* u.W 2XLXm.Z.8.r.5 3 `.O.GX,", +"XtXt.rXt.k NXtX*.r.^XtX9Xt.k.rXt eXt.r.r eXtXt.r.rX*XV 3.`.`X-X-X1 ' g s.w.n.2X5XV.8 q ).]Xd.KX9 N.X.b.o.o.oXg N.o.bXgXg.c.U.U.U.c.U.#.#.c.U.U.U.U.U.U.U.U.U.U.U.c.U.U.U.U.c.U.U.U.#.U.c.#.U. i.#.#.#.#.U.#.#.#.#.#.#.#.U.U.c.c.U.U.U.c.U.c.U.cXg.b.U.oXg.b.o.o.o.b.o.X.o.kXj.kXjXtXj.kXjXj.kXj.^ N.b.X.o.b.z.b.b.o.b.b.o.b.o.o.o.oXg.o.o.oXg.c.U.c.U.c.cXg.cXk.c.I.c.o.o.bXg.c.cXk.c.c l.c.c.c.c.U.UXg NXg q./.$ q q.XXk l.b.^XtXt ~X*XtX*.k 3X*.8.u.uX*.8XVX1XKXG J.@ ^.C J J ^ wXf ^Xr.jXc : #XZ hX-.}.eX- a.-X, R.e.* R a xXlX,X-X,X-X1.aXDXH c R R t.e `XJ T B RX- 3 a 1 $ R R.~ a.} kXZXcX0 s.nXD t T.'.Z t R t B 3.eXI.eX-X- h :X, a a R R R t 1X, BX-.uX5.a h R xX- B.wXaXm J.=.) C t B.aX- aX- a a.eXD.~X- c 3 1 RXs CXLXGX,XIX-.8 3 c.-.YXn s t t.9.eX-.a aXHXI R a aXJ.M m.eX1.e ` DXJ.~XI.e )X5.a a.}XnX7 [Xh.1XcX,.H.`.8.u 3X*.u 3XX 5., V V kXJ., 3XM.,X#XHX# XJ.- #X- 3X- 3.}Xl X+Xr.{ ..s v.MXIX1X,XDXDXDXD RXl.* UXnXi L.; &.!Xa.n.Z t R.e B a.}XI a RXI R.*X, c.aXlXl :X- 3 3 c 3X#X5.G $ 4Xc m g.%X. m.2.w.9.9 &XyXZ.9XGXG.qX0 H &.;X0 M.EXL vXLXL.9 T.wX,XD s.!Xw.O.> ` 1 h 1 1 kX7Xw &.E.w x 1.2 1XJXJ TX,XDXD xXKX-.aXDXD RX,X,.ZX5 tX5.a.aX-X, 3.*Xl.a.9Xl c.Z hXDX, RXI aX, R.a 3X- R.M R.) 2.= v 'X-.`X9.5.a sXw [XG", +"Xj.r.^X9XgX9Xk N q NXk N.z.X N.k.X.X NXk.X.^.k.k.rX* ~.8.`.uX*X5.DXlXK.w ' TXJXIXI.8.H.u.`.8XV ).k.X.X.X.b.bXgXg.b.XXgXk.U.c.c.U.U.U.I.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.c.U.U.U.U.U.I. .#.#.#.#.#. .#.#.#.#.#.#.#.U.#.#.#.#.U.c.U l.c lXg.o.U.bXg.o.X.o.o.o.o.o.XXjXj.k.k.kX*Xt.k.k.^ N.b.X.o.b.X.oXk.b.o.b.b.o.oXgXgXg.cXg.U.c.c.c.c.c.c.UXk.U.c.U.c.c.c. Xk.cXgXg.c.c.c.c l l.c.cXgXgXg.cXkXg.b.b.bXx.X N N.b.X l.^XjXd.rXtXt.rX* ~.kX*Xt.u.k.uXV.`.5XGXG.sX=.v 2.v.v.v ^.vXiXr.j `XMX. | k a.a.aX- aXJ :.Z R.a R a.Z VXJ hXD 3.a.a.aX. $ RX- t aXKXwXK RX-.a.} a :Xl.e aX-.a.} [ | =XU s.n.M t.9.M R $ xXI #.e a.e R.a.e.a.eX-.a.eX- R.e c RXDX-X- 1 s R.a t a R B.w.nXC o 2 O.w a.aX,Xl.aX-.aXl.Z $XDX1XKXJ cX,XK.q o v 1.a 3XV.`XD :XK.Y v U t :.MX-X-X, Y.'.e R.eXJX- m.eX- RXl c.-XD B.~ T.u RX- < a UXB.j [.O.SX,X1.`.8.8.K.K.K.KXX.5X3XJ c ) 3X1XIXIXJ VXM #.} h RXI h.a aXM xXB.[X+.@ %..Xe.M tXDXD CXDXe.W R.u $ t._ % % ^ HXC b.w.nXD.e R R.u.~ R RX5.*.MX5XlXc mXc 3 #X-X-X-XIX9XMXIXXXl $.ZXD : $XIXDX,.5 TXy T g s.n s vXC.q H HXr M =XG v s.' s.n s v.n.DXK.'XwXHXw XMXDX, 1 kXBXH HXm U x $ h.a.aXD $ $XDX, mXJ xXKXcXJ mX..-.,.S.,X.X, 3 R.M.u.M c $.e a.* R.aX- RXD.aX- 3 :Xl 'XDX,X,._ 0.@.@X0 h.`XVXo.ZX1XG v v o", +".kXt ~./.rXxXk.^ q.^X9 N.$.bXj NXgXg.X q.b.kXt.r.kX* ~.`.`XMXJ m `XK @ !.' gXJXI.HXI.8.8.8.8 ).k.k N NXk.I.f dXgXgXgXgXk.c.U.U.U.U.U. .c.U.U.U.U.c.U.U.U.c.U.U.U.U.U.U.U.U.c.U.U.U.U.U.U.U.U. .I.#.U.U.#.#.#.#.U.U.#.#.#.#.#.#.#.#.#.U.U.c.U.c l.c.o.U.b.o.b.o.b.o.o.o.b.bXj.kX*Xt.k.^Xt.k.k.^.b.o.bXg N.bXkXg.o.X.b.o.oXg.c.c.c.c.U.UXk.cXk.cXk.c.c.U.c.c.cXk.cXg./.cXk.U.c.c.U.cXk.c.c.c.c.c.c.c.c.c l.o.X.^.b.b N.X.X.bXg.rXd.rXt.rXtXtXtXt.rXtX*.uXt.u.`XV ' yX>.@ M.+.;.; H J.;X0.v.EX%.- `.-XlXc h.a < aX-X, c.a a a a.a a 3X, R R hXI aXD x 3.a a.a.eXDXDX, R R 3.a a.a.a RX- tX-X,XMXqXwXwXL.wX1 R x TXw.9.'XKXcXlX- R a a BX-X- a.a.a.aX-.aX-.aX,.e.aX- aX-.a.e R a B s.'Xm o 2.; y RXI.' $.a.a aXK m.aXIX-.|.,XM R R.>.=.v 9X,X1.8 3.8.} yXGXpXG.e `.}.a.eXKXlXJ R RX- $XcXKXD t.e x.9 h.eX- B $.Z.~ B.e a a UXpXpXp =XlX9 R.8X-.~.8X*X5.u.`.`.8X1X- FXI.H.a VXXXBXBXB ` 1 #.iX3 `.-.[ JXnX6X6._.N E._ v.s...s.mXe 8 c.M u.mXA.B H.qXC.!.ZX5X1XDXIX-.~X-.eXlXJ mXU kXlX,X-.aX-.e.a 3.uXVXV cXI 3 3.eX-X-XD.uXJ.2X..] D.5 'X5Xl.nXa bXC & H H =X0Xm s 9 9.!.qXP.!.' s o s !.1.-XMXMX, h : [ k [ JXL y h x.w cX, RXaXDXJX..9Xc `XJ :XKXc TXc $ $X5.SXIXDX, R c.a.aX, R.a RX- R t.eXI.a.a a `XKXUXJXw gXwX0.;.>Xw 3.`.r NXV.ZXGXG.s H", +".r.kXt.^Xk.^XgXkXkXk.IXg.zXtXtX9XkXk.X.zXt.r.k.kX*.rXV.8X-.u.5.K : T.2.O T.G.0XIXI.8.` FX5XV ).KXo.RX .(X Xu./XgXgXk.UXk.c.c.U.U.c.U. .c.U.U.U.c.U.U.U.U.U.U.U.U.U.UXk.U.U.U.U.U.U.U.U.U.c.U. .#.U.U.U.U.#.U.U.U.U.U.#.#.U.U.U.U.U.U.c.c.U.c.U lXg.o.U N.oXg.b.o.oXg.o.b NXtXjXj NXtX*.^XjXtXzX9.o N.o.o.b.UXg.o.b.b.b.o.cXk.U.cXk.U.c.c.c.c.c.U.U.U.c.U.U.U.c.UXg. .c.c.U.cXk.c.c.c.c.c.c l.c.c.c.cXgXgXz.o.b.X.b.XXzXzXx.bXd e eXtXtXt.r.k.rXtXt.uXd.rX1X1.Z 'Xs.@ ^ ^X4.@.v OX6 b O..Xr.-XJXwXK ` x 1 c a.a a R aX-X-X-.a a.aX- RX- a.u.a RX-X- < aX-X-X- R t B RX-.a a.a t R a R R a # x `.[.j.n.w C RX,.MX,X,XD R h a tX- B RXK R R t R a.a a h.a RX, a B BX- B t RX-X- B.DXa 9.E / &.Y tXIXU.9 $X-X- hXKX-XI RX. a c #.e.>.N.=XL 1X1 3.8 3XDXl yXGXn.i < a tX-.~XV.~.~X- a.e.e.eX- a t a.e < < $ RXVX1X5.D x : <.F.M [ MXw.O mX5XI.u (.HX9.k 5.k ).H qX5X- DX5X-XM., VXXX3XB 1XBXBXB V .g.jX4 % { %.m.. vXq.s.mX6.P %.. $XD x < uXAXbXf ^XCXP.n '.DX1 RX-X1 RX-.9 R.M RXD.e RX-X- R a.HX-X-X- 3X- 3 c c.K.u 3.] }XJ : 3 3.8.] D.|X..2 ! & 9XCX0X> M MX0 & M &.>.> ! y s.!.' sXw KXHX< kXKX. k.SXHXr J b pXcXG R #.uX,XDXD ' x $X-.aXD $ $ RX,XD RXD.MXl.}.a.a.MXDX,.aXDXD B R RX-.a.a a.a a.a 3X, xXD.M.NXe.W.vXnX,.a.8X9XV 3XG =.; H.+", +"XtXtXt.r.kXt.rXtXtXt.XXt.k.kXtXt.^XtXt.kXtXtX*XtX*Xt ~.8.aXI aX1 RX1X1 D.] g.u.H.`.8.`X-.K #XH I 5.t.RXx _.o.b.c.c.U.c.U.U.U.c.c.U.c.I.c.U.U.c.U.U.c.U.U.U.U.c.U.UXk.U.UXkXk.cXk.U.c.U.U.U.c.6.U.U.U.U.c.U.U.c.U.c.c.c.U.U.U.c.c.c.c.c.U.U.cXgXg.oXgXk.o.b.o.o.b.o.b.b NXjX*Xj.k././Xk.kXj.kXj N.bXg.b.b.oXkXg.b.b.o.bXg.c.c.c.U.U.c.U.U.U.c.c.U.c.U l.c.c.cXk.c.c./Xg.cXk.c.cXk.c.cXg.o.o.o.c.U.c.c.cXg.b.b.o.b.X.b N.XXg.^XtXt eXd.r.kXtXtXjXtXt.r.8XI.H.w s.s.)X=X=.) 2 2 / 2 /XiX= O.q 9XGXUXUX+ 1XM.l 3 <X-.a RX- a.~ R t aX- a aX- tX1 R.}.u 3 aX- a a RX- R RX-.a R a R a t R a.a.i xXB.- g v.w C t 1 x t <.e < R.a a B $X, x c.- :XJ 1XKXK `.9.aXD R R R.D $.e R RX-X-.DXLXC H 2Xn 9.* RX,X5 t RX-XDX, a.Z.~X, RX- h c.DXs.N.WXnX, h ~ ~ ~XVXmXGXp 1X, <X-X-.~XI.`.~.`.* t t RX-X-.~.~ a R.eXwXKXKXK.] kXl.3X,XHXq [ MXh mX5., $XJX5 : Y 3.RXI Y.5.%Xl 8Xc.9 R.}.KX3., 5 k., V V V VXB nX+XiXi .XfX6 .....X+.@.@X2Xf.. v.a U U u.d.. .Xi.@XC b.0.DX-X1 R R R RX-XI RXDXI.e RX-.e.eX-XIX-.~.eXIX-X-X-XI.a 3X, c.aX1X- :XI R.eXlX1 :.9Xl.O.jXm.qX>XCX%XrX2.jX>.x H M & 9.9 bXw @XZ.SXH.SXc :XHX#XHXrXn w v.. y h # 'XDX,X1 :Xl.aXV 3.uX,XD.aXDXD.MX,.a #.a.a aXD 3 3 c hX- R.a t a <.aX- a.a a.a.} t.M 2 2 2 sXG.aXVXX F.8.` sXwX> H H", +"XtXtXt.k.rXj.^XtXt.rXx.r.kXt.kX*XjXt.^.k.rXt.rXtXtX* ~.8.`.8.`.a.8XIXVXJ.2.5 3XIXI R.` # c cX5X5.RXV.^.X.X.X.oXg.U.c.U.c.c l.U.z.#Xg.#.#.c.c.#.c.U.c.U.U.c.U.U.UXkXkXkXk.I.U.U.c.U.U.U.U.U.c. .U.U.U.U.U.U.c.U.c.U.U.U.c.U.U.c.c.#.U.c.U.c.cXg.b.oXgXg.o.o.X.o.o.o.oXz.^ e.kXj.k N./.^XjXjXj.kXg.b.o N.o.b.U.XXg.b.o.oXg.c.U.c.U.c.U.c.c.U.c.c l.U.U.c.cXk.U.cXg.c. Xg.U.c.c.c.c.c.c.o.b.bXgXk.c.c.c.c.o.o.b.b.o.b.b N.b.X.^XtXt.r.k.rX*.kX*.H.r.8XV.8.`XlXLXL / 2 * 2.s.v 0.v 0 O b O 0 H b O.n.jXU V XM # h.a t.e a.a RX- R tX- a a aX-XI.M.u 3.uX-.e.a a R aX-X- B.a a.a t.aX- aX-.a # xXB.[Xc.n.Z R.M.Z.* a :X,.* a.* R.a.e RXDXIX, $ h x h $ hX, RXD B RX-.'XlX-X-X-X- BX, s.>.;.s / C t B.* R BX- t.eX- RXJ a 3 c cX5 `Xc sXs.=XnXeXDXI ~ F.8.ZX; yXp ` R a.a.~.8.`.~.e R t t a.~X-X-.a a R aXc :XlXl 1 cX5 xXl.W xXGXc.YXw.Z gXy.9 m `XVX5X5 cXV x $ $XG vXK a.8.}.8X* 3X*XMX3 k k.[XJ.,Xr HX+X>.@X>X>X>.Y.E.Y._Xn *.x 0.w.WXe E t t.m...s b.;Xm 9.w.DX-X1 a.aX- xX1X,.a c.'X-XD D 3 RXI RXHX.X. 3.~.aX-X, 6 3X1.~.a R K V a.M.a R B.e.Z.n yX0XCX>X+X2X2X4.<X>.x H.; &.E y s ' =.OXc `X3XDX, x.-XpX<X>.@ bXnXe h xX,X5X5 BX,X,XlXI # R.a <X, R 8.M 8 <.M $X- h $XDXIX5X1X1.ZX-.a RX-.a a.a R a <.} < u.W / v 0XpX5 RXI.`.k.~ c 'XG.s 2 w", +".rXt.k.b N.^ N.b.X.XXkXt NXt.k.^Xt ~.k.r.kX*.kX*Xd.u ~.8.`.`.8.aX-X-.` c.5.rXt.HXIXIXD : m ,.K.`.5.kXt.5Xg.o.b.U.U.U.U.UXk l.U lXg l.U.c.U.U.U.U.c.U.z l.c.U.UXk.U q.IXu.IXk.U.U.U.U.U.U.U.U.6.U.U.U.U.c.U.U.c.U.c.U.U.U.c.c.U.U.c.U.U.c.U.cXg.o.b.cXgXg.b.o.oX9.o.b.^XtXt.kXj.k.^.I.^.bXjXjXz N.o.o.b.o N.U N.b.b.XXg.c.U.c.U.c.c.U.c.c.U.U.c.U.c.c l.U.U.c.U.c.c.IXg.c.cXk.cXgXk.cXg.o.o.c.cXgXk.cXkXg.b.b _.b.b.XXz.X N.^XtXtXVXtX*X*XVX*Xt.uXV.`X-X, vXe /X=.) / 2XCXC HXC H H & HXCXC '.nXL.n.EXw.[XB.l #.lX1 R RX- a a R R R aX-X- aXD R.ZX- 3 a aX-X- a R RX1XD.M a.a R R.a t R a h x `.[ yXL.n.M RX-X-X, ' RX-Xl RX- aX- aX- R.*.e tX- <X- tX- aX,X-X-X-XD B R R.~.~X1XD.n 0XC.v.NXs t $ $ : $ xXIXD.a.eXc.5Xc DXK.]XK $ g.M.N.sXG.WXI F.k q.u .-X+.j U.M RX-X-.8X1 R t t t aX-.eX-.~.e R a a.eX- a.e R a t a < a tXq.9XK x = @ mXK.].uXV :.8XV.a R x o.9.E.M.`.`.r 3 ~.8.8.8.8 #X*.K `XJ.- = n.WXK 8XqXc x $ xX; xXw.EX> 2Xn.) E E pXA ^X= o.qXC.wX, RX1 a RXI.G RXDXI R 6.3 a.| a 3 R.e.%X5 :.G.e R.`X- YX,X,XI cX5.,Xh.aXD.e R 8 R.Z s.'.>X> o JX%Xr.<.<.pXrX> M H.'.qXUXOX;X..Y.-X,.a c :XJ.- MXp M.x vXG.j xX,.ZXlXDXD.M.w $X, U.M.ZXs._ v._.W.W.M.M T : BX5.DX5X5XVXV : DXVXl ' $.MXGXs.*.W G.= 2 2 J.Y xXDXI.rXtXt.` :.9 y v O H", +"XtXj eXk.I.z.b qXgXj.I q.^ q.b NXtXk NXk.r.rXtXd.rXt.r ~ ~ ~X*.rXI #X*X* ~.rXVXIX1 RX5XlXJ IXt F q.8.k.^ NX9.X.zXgXg l l.QXgXk l.UXg.U.U.U l.c.z.#Xg.c.U.U.UXk.#.I iXkX d.6Xk.I.U.U.U.U.U.# i.I.U.U.U.U.U.U.U.U.c.U.U.U.U.c.c.U.c.c.c.U l.U.cXg.X.cXgXg NXg.b.o.o.o.^XjXj.k.kXj N.X.X.X.X.b.X.b.b.o NXg.b.zXzXg.b.oXgXk.c.c.U.U.c.U l.c.c.U.c.UXg.U.c.c.c.c.c.U.c.I.c.U.c.c.c.c.U.c.c.c.c.U.U.c.c l.cXg _Xz.b.b.b.b.X.b N.^X*.r.k ~.r.k.r.u 3 3.` cX, $.E.s.s.W p.=.s.E oXG b J bXmXGXG sXLXaXa.s.n.YXw.,.Y 1 x x.} a aX-X-X- tX-X- R a R.aX-XI a cX-XI aX-.a.a :X,X, c $ t RXDXD R R R.} # 1Xc ! 9.wXa BX-X1X-XD.~XD.9XI `.a aXD R.eXD R R a aX-X- aX- 3X-X- R.e.a a.e.a R B 8XL.n w.v.N.) RXIXK : ' : $XlX-X-.Z.e RX- a RX- $ R 8.WXs 2 sXD ~X* N 3 h yXpXG u.M a RX1X1.~.e R t t a RX- R a a.eX- R RX-X-X-XIXDXD $ R.M t C 1 yXc gXh ' D :XJ 5.] T m a x oXGXCXO 8 3 ~X9.k ~ ~.r 3 3.K.8 ~.`.8 3.G m :.G DXU 5.%.% :.%.,X. !XhXnXCXe p.. ..s..Xi ^X0.9XL.D.M aX- R R.3.e 3XD a.| D.3X..aX1XI a.| 1X-X# a.aX1X, KXI R R.eXcX. Y T.*XD R R RX,.wXG.> MXr.<X+.p._.x M M.L =Xm 9 !.G.O.GXH ` `.}XI $ hXc.- [ = z.Y.;.O.EXU yXJ.- g.-XcXc n.wXs U GXe 2Xe.s v .XqXsXcXl T D.2 ( Y } IXJ.%X. m DX; y =XL.s OXa 2 O O.E.9 tX1.`.`.~.`.~XD RXK v.s.E", +"XtXt.kXx.z q.b./.oXx./Xg.X N q.8.^X9.rXxXj.k.r.kXt.k.r ~.8.`.r.`.`XV.` ~.8 N.8.8XI R : :XVXI.`.8X*.K.K.$ P.X.(Xk.(.tX@Xu.Q.&.z.t.z.f.t.zXk.U.U.U l.#.U l.U.I.#Xg.f d.6.6XkXg.#.c.U.U.c.U.U. . .#.#.U.U.U.U.U.c.U.U.U.U.#.U.U.U.U.c.U.U.c.U.U.c.o.b.UXg.b.o.o.b.b.bX9XzX*Xj.kXj.k.kXzXg.^Xg.o N.o.X.b.o.o.b.I N.o.b.o.c.U.c.U.U.c l.U.c.c.U.U.U.c.U.c.U.U.U.cXk.c.U.IXg.c.U.c.c.U.cXk.cXk.cXk.c.cXg.cXgXg.b.b.b.b.b.b.X.^.^.kXj.rX*X*XjXtXt.HXV I I.,Xl.+XC.EXwXn.;X> & HXmXLXL sXa.9Xa.n.w.wXDXa.n s b.!.jXwX+ .l cX,.aX-X-.a aX- a a BX-X1 B R RXI.a aX- aXlXl.9 TXJXwXK a tXD.MX1 RXI.M xXM.9Xw y.q.' gXD '.u B.`.` 3X- ` 3 aXl.Z.eXl : R 3X1 a RX-X- 3 aX- R RXD a.aX-.e BXDXa o.O J / u.*.MXDXIXIXDXD BX-.eXDX1 RX- B.~ R 3.K B C.=.= bX, 3 ~ ~.8 3X,.-Xp p u tXD R.HXIXDX-.* RXDX- a.e.~ R a RX- R.e.~.ZXJ D $XH x s 1 x.YXH.hXw.j $X, 3.8.H 3 3XD .jXq z &.+.'XD.H.5.^XoXtX9.X.kXt F.r e ~.H qXkX9 D.X.kXx.5.XXxX*.H.uX1XG nX+ p..XpXn ^X> J.E.j.EXe x R RX- R RX#X- c.a.eX.X-X3X$.eX,X-.eX.XJ T D.eXI.Z B 6.ZXIX-XD.% aXlXHXD RX-.aX- R.w.w.Y y = M zXrXp.hXS.+.1 K K.+X$ K.G K k : xXDXD xXD.Y.Y.g.[X% nXrX0 &Xh.Y nXK.[ =.j.Y.) bXn b.....@ ^X>..X6.@Xn & n 1.-X3 1 $ mX,.Z $.Z xXs.'.s v.v 0 O.N.=.=.= v $ aXI.`.`.`.` F.` RXq yXL =", +"Xt.r.k.^X*.^.k.X NXk.k N.k.r.k.X.rX9X9.r.8Xt.K.rXtX*.r ~ ~ ~.u ~.8 ~ ~.8.8X*.`.H.`X1.H T.H 3.`X-.`XVXX.$.A ).7.&.( Z./.7.t X Z.7.I j.7.I.QXg.IXgXg.z.U.c.U dX Xu.z.IXkXg.U.U.U.U.U.U.U.U.U. .#.U.U.U.c.U.U.cXk.U.U.#.#.#.U.U.c.c.U.c.U.c.U.cXg.b.o.z.b.o.b.b.b.o.bXg.bXjX*XjXjXtXj.^.b.b.o.b N.b.b.b.o.b.b.U.b.b.oXgXk.U l.c.U l.c.U.U.c l.c.c.U.U.c.c.U.#.#.U.c.U.#.UXk.c.c.U.c.c.c.c.c.c.c.c.UXk lXg.o.b.b.b _.b.b N e NXtX*XtXtXt e e.r.rX-.u 3.KXGXwXn..Xp v . bXn yXmXa.w.DXs.'XDXsXIXs R.Z.Z.!.q.qXC &.j.- 1 .l h.a a.a.aX- aX- a BXD.* R.e.a.uX,.a B.} RX-X,X, h.M.MXD RXDXD R.a R # x.9Xw = !XUXUXUXyXl.~X-X- R.e RX- R hX, tX, c.eX-.~.~.`X- aXIX- tX- aXK $ a.eX1 R BXLXLXCXiXe.N a a.~.eX1.eX- R.~ BXD.e R.~ R RX- R cX, 8.=.NXL.'XI 3.8.8XVXD yX+Xn.i.MXDXl c DXJ $ x : :Xl.u x.a a t B.e a R.e.`.,XK $XJXc xXK.[Xc.1XH n nXD.MXIXIX1 R R x.1.+X8.+XZ.O.G :X1.H.r.XXkXxXk.r.R.X.zXdXx.o ~ ~.r.r.r.r eXj ~Xd ~ F.`XI U.j yXn.YX+ v...j vXs.j.' x.Z R R RX- R.3.aXI R.aXJX,.e #X1 3X-X1XlXlXIXDX1.eXI 3XDX,XI aX1.a RXDX- R.a R BX1 R R.w s y.j.j.Y.p MXh.hXHXh.+ @X;X; @XHX. | : $ h c 1 R 1Xw.,.,XH [.1Xm.@.>.s xXe.w._ vXp o...sXf ^Xi.@ S.4Xf .Xi 0.s v C a a RXDXD.M < t.a a 8.W.).@ w 2 2 O 0 J 9 sXD R.`.~.`.`.`.`X-XI.Z.G.jXZ", +".kX*.rX*.r.kX*.r.r.5.8 ~.`.`.8.~.8.8.` ~XtX*.r.kX*X*.uXVXI.8XI.8 ~ ~.H.8Xt.k.H.8.`XI.`.] c 3 R #XIX-.K.5 ) q.X.&.A AX X@X X .t XX .t.7.6Xk.z.c.Q.I.I.6X Xu.I. .I.UXk.U.I.U.U.c.U.U.#.U.U.U.#.U.U.U.c.U.U.U.c.U.U.#.I.#.#.#.#.U.U.U.c.c.c l.cXg.o.b.U.bXg.b.o.bX9.b.X.X.kXjX*.kXtXjXj.bXg N.bXg.o.o.b.b.oXgXk.o.bXg.c.c.c.U.c.c.U.c l.c l.c.c l.U.U l.U.U.#.#.U.U.#.U.U.c.U.cXk.c.U.cXk.c.c.c l l lXgXg.X _.b.b.b.X.b.^.r NXtXtX*X*XtXj e F.H F.`XI.aXD v 2.) <.*.s /.sXC y.n.n 8 B.ZX- R.e t B $.n.E o O O O 0.Y.j x x x.}X-.}.a.a a aX-X1 BX- R R R.a.eX- <X- tXDXD.Z R R RXDXDX,X1 RX-X, 1 `XwXwXc gXG.Z.n.D R R BX- RX- R R.* a RX- a R.~ RX-X-X- BXI R aX- RXD a a < aX-XD.wXL.q 0 G.).* <X- t.e RX- aX- t 3 $.e t.e a.ZX-.a 3.*.NXs.=XG xXI.8.H FX1 '.[XnXpXe.M.-.ZXK T `XJXc : T :XJ h aX-.e RX1X- RX- R R R.~ RX,X,.a CXeXpXG.jXJXDXD hX,.w x x =.x.J.4 H ! g m.DXt.` F.HXtXt.^ NXx.bXd.bXk q.X.zX9XxXjXd.rXdXt.r ~.`.`X1 hXwXc.Z t R RX,.}XD 1 s $XD BX-.a a R BX-XIXD.~X-.~ R.~ R R.Z R RX- BX, aXD aX,X-.a.aX1 R RXD.aXDXDXD $XlX, $Xl.' g.>.+ n.1XrXZXh.hXhXh.G = !.>.>X..-XJ.i.a.aXI c.}XDX,.i .-XB.j &XG.;XG U EXpXnX=.. 0.@ J ^ ^X2X8.CX2 SX8.4X6.s .._X,.M.aX, U.a <.* < 8 C.W 2 0 oXp v.1 =.'.Z t RX-.`.`.~Xo.HX5.`.DX1 $XKXU", +"X*X9X9X9X9X*X9X9XX.K.uXVX*XVX-XVXV.u.uXt.5Xj.K.k c.K c c.Z cXD 3 3XD.8XIXVXI FXI.`.`X-.5XV 3.a.a 3XI.`XI.`.8.K NXxXkXk.z lXk.UXk.U.6.z l.z.U d.I.6.tXuXu. .U.z l.U.U.UXk.U.U.UXk.c.U.U.U.U. .#.U.U.U.U.U.U.U.U.#.#.#.#.#.#.#.U.U.#.U.c.c.U.cXg.o N.# N.o.bXg.b.oXg.b.X.^XjXt.^XtXjXj.b.b.o.b.b.b.X.o.b.bXg.c.o.o.c.cXk.c.U.U l.c.c.U.c.U.U.c.c.#.#.#.I.#.U.U.c.c.U.U.U.cXk.c.c.cXk.c.c.c l l lXg l l.o.b.b _.X _ N.bXj.r.X.k.rXtX*.r.rXj ~ F.`XIXI.j.j.jXrXp yXe.T b =XU y.n.ZX1 R.D R R RX-.a.WXa.! o 2X=.=.).s.F.jXK 1 x #.}.a a a aX- aXI a RX-X- RX-.a.a a R R R.Z.ZX,.M R R RXDX,X1 R.} # 1XcXH nXwXU o.w.w.M t a R B R.* R R t R B R B B BX-.~ B.eXD.a a R a aX- a R.~ B BXaXLXC & v.N u a a R t a a t t a.ZX. x.- :.Y.-.9 VX.X, C.N.NXe o $.8.H.XXxX, x XGXpX, tX, t a B.~.e R a.e t a RX-X-X-X-X1X-X-X- BX,.a a R a.Z t tXp.9X+.jXpXqXKX+.9X+XpX4 p.C.;Xh.O.>Xy 4XO FX1.`.H.H.K.kXo.rXd.^.k.^XxXx.oXxXtXtXtXt.r ~ F.`.`X-X1.~ $Xx TXlXlX5X5 $X1 :.DX1X1XDX1XD.aX,XDXIX,XIXDXI 3.a.3 c.3XKXKX,XD $XIXDX, c.ZX-X,X,XD.aX1.a.9XlXlXl m DX..' !Xw.>Xh =.OX;.+.hXZX#.OXh.q.O.>Xh.,.- V `XIX, R cXDX,X, c.aX3.[.YXw.j.E & E.s..XfXf ^ w.@.4X:X>X8 WX+..XfXfX> w...s G.).WXe.WXe t u u CXsXs.W 2 vXq.-.GXHX#X3X. : m.5 TXx.~ D fXd 5 : ].2 D Y", +"X*.rX*X*X*.r.u.8X*.`.`.`.a.`X-.`.8.8.K I q.%.$.% I |XHX3XH.9.GXHXG h U R.kXI ~.8.8.`XI.`.}.8.` ~XI.H T ~XVX*.rX*XxXgXkXk.z.I.I.I q d.6.IX .6.(Xu.Q. .6.Q.I.#.I. ./.U.I. .#.I. .U.#./.U.#.#.6.I.U.#.U.U.#.U.U.#.#.#.#.#.#.U.U.#.U.U.U.U.c.cXg.o.bXgXg.b.b N.o.b.b.X N NXt.k.k.^Xt.^.X.b.b.o.b.b.o.b.b.o.oXgXg lXk.c l.U.c.c.U.c.U.U.c l.c.c.c.c.U.c.c.c.c.#.c.c.U. .U.U.c.c.UXg.U.c.c.c.U.c.c.c l.UXg.o.b.o.b.X _ N.bXdXt.5.rX*Xt.r.kXV.8 ~.8X1XD y ...XF.).d * p.).v vXm oXl.Z 8 R c R.a a.a a.ZXL 9Xm O / / * *.)Xe.s.9.j 1 # h a.a aX-.a.~X-X- B a R R.M t R.M.M U x.Z UXD RXD B.a RX1.M.a c x `.9 x.YXwX+ vXL.wXLXLXD.M.D.w.w.W.w.w.Z 8 BX1 BXD B RX1 t.e.aX-.a #.a <.e R 8XaXLXC J 2.W.*.M t < a a a <.* a u < a.e < a t.e.l.*.M.M C u.N v TXD.H.H F F 3 hX7XpXH.1 U.a RX1X.XJ.eX1.a RX. n.e RX1X5.,X.X- RX- D.DXDX-X,XH.3 a U y M.O.+ z MXpX>.+.x z.xXi.4X0XG.n '.].0.0 ( @X$ D D ) I.X.X.XX9.UXt.K.k.K.kXtXdXt.r ~.8.8 3.8.`X-X1 B ' (.0.0XOXOXP.DXa.DXa @.'.% ' a BX1 RXD cX-.]X1 RX, :X5 x :XJ.,X..%Xc :.a.aXl mX5XcXKXKXlX,XI $.9Xc T g.'Xw.q KX0.>.E.Y.j.-X..-.9 K =.O KXhX#XH.- kXw k `XH.'XK 1 x 1.,.Y [X0Xp.@X> 0...4 S.4X8 S wXn ..p..Xq._._XnXnX8 L {.v.. O 0.W 2.s *.) 2 p v v oXG $ h : aX-.`X-XI.8X1 5.5.`XV.H.H.K.k c.KXJ.$", +"X*XdXt.r.H F.8.`XV.`.a.`.`.aX-.`X- 3XV.k.K (.5 ` ) 1.- nXH n.O zXn.<.Y.-.0X1.H.HXtX-.8 3X-.8X-X-.`.`X9.u ~.8.H.r.k N N.XXgXkXg l l.6X@.tX&.Q l.U.#Xg l.#Xg.U.U.U.zXk.z.z. ./Xg.I.#.#.U.#. i.#.U.I. .I.#. . . . . i. . . . . . .#. . . .I.U.U.U.I.zXg.z.#XkXg.z.U.zXg N N.X.XXtXgXk.UXg lXk.UXkXg.cXk.c.z.I.z.#.U.c.U.#.U.U l.#.U.# l l.#.U.U.U.#.c.U.U l.c.U.c. .c.U.UXg.U.U.cXkXgXg.cXk.cXg.U l.X.b.b.b.bXz NXz.X eXt NXt.k.uXVX* 3XV.8X-X1 s.xX>X4XnX4..XnXn.@ ^X>.q.9.w.Z B.e `X-X- R.e RXD v vXC 2X= * C.d u.N.s OXGXm.F xXM 3 a a.aX- aX- aX- R a t t R tX, R.Z $ x.M.a.aXD.aX-.e 3.ZX5.l VX< |Xq 1X+ n.@XpXnXLXe.nXa.w.n.' y o.n.w.w.Z 8 BXD RX-XD 3.a.e R.a <.a a.MX1 B.nXLXC.E.s.) UXp h.} UXe U h._.iXqXe.M._Xq._ x x.g xXe.WXn.vXn o.DX5Xd.r.r # $XKXw.T.1Xw.MXD $ mXcXl.} R.9 h., xX1 aXl D TX- R.` `X,.a.e : R 1X,.*.wX+X>.jX>Xp.@ ^Xn ..{ ....xX>.w.wXsXa '.!X5.].GXJ D.2 I 5.|./.R qXtX*XVXt.rXtXtXd.r.H ~ 3.8XI.8.`.HXV B.n ]XP.0XP.0.n '.DXa.' D m g.DXlX-X1 R.O.wXc k D nX5XD R B B 1.Z hXD.aXI B.ZXc 1 TXD aX- aX,X,X5.0.w.Z.D.'XcXy =.GXwXGXwXcX3 x.Z.>XU = = [XBX7 1 UXl.aXD ` c.Z.a :.aXB k.S nXh M.@.; {Xf w S.; SX8.p ..iX7.d U U v .X>.{ wXi 0Xm J v.s ^X= 2.s bX> s.'.jX.XJ ` q.].X I : cX-XI.8.8.8.H FXdXd.rXtXo.r", +"Xd e.r F F.` F.`.H.`.`.`.`.`.`.8X-.8.8 3.8.u.8XIX,.9.Y.9XcXq x X> pXAXq.YXa RX1XI.8X-.8.`.` F F ~.`.`.`.5X9 ~ ~.r.r.k.oXg.b.U.z./.IX&. .I l.c.U l.#.U l.c.#.U l.U.IXu.t.:.I.#.U.U.c.U.U.I.#.U.c.U.U.U.c.U.c.U.U.U.U.U.c.c.c.c.c.c.c.c.cXg.o.b.oXg.X.bXg.b.b.b.b NXg.^XjXjX*Xt.^Xj.XXg.b.oXgXgXgXgXgXg.o.I.#.U.#.I.U.#.I.I.#.U.U.U.6.U.U.I.I. .I.#.I.I.U. .6. .U d.IXu.t iXuXu.6.#.#.#.I.#.#.I.#.I.Q l.U.z l l l.zXkXo N ).X.5.k.X.5 cXV 3X*.Z.' O ^.. % EXe . ^X> & & & gXG.ZX,.Z $.}X,X, hXD.wXG y H 0 v p p u EXe.s O.sXm n.-Xq 1 .}.} 3.a 3XD 3 a.ZX,.aX, h.ZX,.w.Y.9XK $.Z.9 T : ` ` V kXBX3 V.-.-X7.j.jXrXr.; H.j oXLXm.q & 9XC &.! sXL.n.ZXD R RX,X,.a.aX1XI.a h.a RXDXIXLXLXmXC.@ 0 pXGXnXq v.F v._Xn._Xe._.) E._.F p._X7.F.F U.)XFXb.s.E.wXI F F.H.` 3.}.-.YXG.Y t aX- R.~ B B a a R a.e a BX-.e.eX- R.e a.~.eX-.e.a.e.e.M.MXGXpXp.TX:.T z.y z z.+X6.x.YXL x 8 8X5.D s s.wXwXKXIX5.KXtXt.kXj.rXtXjXt eXtXt.r.r.r.r.H.8 ~ ~X- 5.]X5.u D.D D @.0 sXaXL.! D.' T.] DX.XJ ' $ : :Xl.2 1.2XJXw.,XlXcXI $X-X- R a.a R.a R.e.a RXI.aXD R R B B.D.n.wXP.-XyXyX;.j.O.Y RXI t.w g [.1X<.- V $ h hXl a cXc :XwX.XK.3.3Xh.LXhXZ =.+.4 ;.4 ; wX2Xr.pX+._ U Xe U E._XnXfX+.j s.w.N 'XG oXL 0Xm.nXDXDX,X1.5.5.5Xk.5Xo '.kX*.8X- ~XI.8.8 FXV.rXdXd.XXt", +" e.H.` F.`.`.` ~.H.8.`.`X-.`X-.8.a.8.8.8.H.r.u.`.9.9XKXp.MX, h.-.<X> ..EX+XK.j 1XK #X*.`.8 F.`.`.`XV.u.8.r ).8.k.k.r.kXt N.X l.(XuX .zXgXg.z l.Q.#Xg.#.U.U.cXk.IX&.6.7 dX .U.U.U.U.U.#.c.I.U.U.U.U.U.U.U.U.U.U.U.#.#.U.U.c.U.c.U.U.cXg.cXg.o.o.b.UXg.o.o.bXgXg.bXg.bXtXt.kXjXtXtXd.^.o.oXg.o.bXg.o.b.oXz.I lXg.U.c.c.cXg.c.c.U.U.c l.c.c lXgXg.U.UXg.c lXg.o l.c.I.c.6 i.#.6.6.#Xk.cXg.cXg.cXg lXg.bXz N _.bXzXz.X.bXo.rX9 ~.uXdXV.H.H 3.`XI 8 s 2 / u C u.w.).vX> y.E.9 vXaXD RX-X,.a aX- aXl U.w bXC O /.) < a t <Xs G.= 2 0X+.YXq $.l a.} aX-.a.e.a R RXD t t a.MX,.Z.[.9XcXcXJXJX5X,.a a.} c # .l.YX+Xp._.s v..XpX> yXmXC b 2.s 0 bXC o vXL.wXsXs R.aXDX- a aX-XD x $ a R B.DXL.E JXb.) *.d u.d.d C u u C u.s p.*.d.d.)._ E ..d uXF...BX6.@X>XG R.H.8.rX9XIXD xX+.F.Y < t aX-X- a t a t.eX-X-X-X-X- a.~.a.eX-X-.e R.~ aX-X-.~.a.*XeXpXp n z.y MX: z z rX>.;.j vXL.wXsXs 8 8.w.w sXUXc.D.u.kXdXdXtXtXj.k.rXtXtXd.rXdXtXt.r ~.` 3.8 ) ).,.$.G m.G.>XKXy.w.n y !Xy.OX.XD 'Xc.3 m.%.9 :Xc RX,XDXl $ c.9.e c R.a R.aXI aXIXD RX1.a.aX- 3 a.~XDXa.w.w.'.2XP @Xy K.G.3.,X,XI $X,Xw.jXHXBXB.-Xe $ $ $X5.a RX, T sXK $XH k k [.T.+ = r w.4.C.{XfXr.< >.-.F xXB x 1XH .XqXw.jXs B.Z B.DXm 9 g 8XI.~.8.`XI B.`.`.~.`.~.~X-.`.8.8 ~.`.8.H F.r.r.r.r.^Xd", +".H.H.`.`.`.` BXVXIX-X- RXIXI.`.aX-.8 3.rXd.`.u.] D : $.a x cXDX,.9.[Xr z z vXhXh YX3.H.8.8.8.r.8Xt.r.`X9.`.8X*X9Xt.kXo q.X././Xu.z l.U.zXg.QXgXg.#Xk.U.U. .U.t.7 d ZX@.#.U.UXk.#Xk.UXk. .U.UXk.c.U.c.U.U.c.U.#.#.U.c.c.U.c.c.U.c.U.c.U.c.o.b.b.U N.oX9.o.b.b N.bXg.^XjXt.kXtXjXj.b.^.b.b.b.b.b N.o.b.b.6.c l.c l.U.c.c.c.U l l.UXg.U.U.U.U l.cXg l lXg.Q.U l l. .c.U l.c.U.c.c.c.c.c.cXgXg.cXgXg.o.b.o.b.X.b _XdXo.b.kX9XV.u.rXtXt.8XI.`.a.Z.n 2 8 * <.MXq.) O & o vXLXl.Z R t RXD a.M < `.ZXDXGXG.qXC vXL.N h h.M t.WXs.=.s bX+X+Xq $ x.aX- aX- R R.9X,.' h T.Z.M.M.- sXc.Y xX,XD.a.a a.} # .lX7X7.p n v.W pXeXeXqXLX+ H 0.v /.v o 2 0XCXCXG OXa xXLXD.aX- RX1 R.e.}.M a R R.DXa o o / /.).sXF.).).dXFXF.d.)XF . ....d.<.< WXA >X4 .Xb.J.xX2.<.x .ZXI ~.k.8 cXD.-XGXp.W R.*.e RX- t R.*.a.eX- aX-.aX- a.eX- a aX-.eX-.~.e a $ 1X, sXw M.pXrX+ = MXhXr.yX>X> HXwXGXa.n.* 8 8 8.Z s 'XUXdXV.HXtXt.r e.r eXtXjXt eXd.rXdXtXt.r.r.8 ~.8XI.`XJXJXJXK s.nXGXG.! @ T.GXU.0.Z 8X1XDXD :XJ.-X.XK.,.wXJ a.a a RXDX, RXIX-.a.a 1 $XD 3XDX- aXIXD R 8X5.n gXJX5.]XJ.]XlXl : : D DXJ DXHXH.1X7.- V.} $XD.ZX,.~.ZX-X,XD R.M 1.l.- k.[ n MX8 wX8.4XfX8 r r .X4 W.-XpX7XhXhX<X<XhX.XKXJ.] DXwX.XhX.XUXc.`X-X-.`.8.`.~.` BX1XI.`.8.8 3 F.8 ~.8.8.rXtXj eXdXo", +".H.`.`.`XIX1 RX, a tXD 3X,X,XD hXI.8.8.`.rXt.k.K 3.u 3 x `X5.H.H $.'X5XhXhXp z =X+.OXh R 3XI.r.8 ~ ~.k.r.`XVXV.`XV.KXt.8XkXk.R.X./Xx.U lXg.IXgXu.6.z.z.cX&.(X .UX q.UXgXk.U lXk.c.UXk.#. .UXkXg.U.U.U.U.U.U.U.U.U.U.c.c.c.U.U.c.c.c l.cXkXg.o.b.z.b.o.o.X.oXg.b.o NXjXt.r eXt.^.rXk.o.b.o.o.o.b.o.X.o.b.IXg.#.c.c.c.c.U.UXg.c.c.c l.U lXgXg l.U l.U.#Xg lXg l l. .U lXg.U.cXg.U.c.c.c.c.U l.c l.o.o.b.b.b.b.b.XX@.zXoXtXo.z.5.u.r.X.8.`XI.a s.W /.N 8 t U.W.= O & &.>XG y.n.w $ TX,.a R R $ 1.2 & ! = = &XC.YXq 1 ` a.W.wXs G.=.sXp.-Xq.i x 3.} a.aX- x :.9Xc 1.9 U.Z x x $X, R U 3X- aX,.l #XB >X%XB.F.Y.j.j.-.[Xw [X%X0.@ ^X= 2Xi J.. J.s J H yXG.w s.9Xl B R BX- R tX- aX-.~XaXa 9 w.BXbX=XF.).)XFX=XFX=XvXFX=.J .XfX=X2X2.J L L.P.B %Xf.{.{.JX4.x.-.ZXI ~.8 R R.Y.YXp x U.a c R.e.e.*X-.e RX- a.e.e.e.a aX-X-.e aX-.~ aXI.~ #.,X.XcX+XHXwXH.1 [.j.T MXhXp.@X> & y v.w R R.} B.Z.w '.2.`XVXdXtXdXtXjX*XtXt eXt e.r eXtXtXtXt.r.r.8.r.8XIX-.Z gXP.9.n = g.G.O ' DXOXlXD RX1 R.aX-X- RX5.'XcXJ.9.e R RX-.}.u R.aXDXDX- DXJ $ x :Xc c : T 8.Z.wXP TX1 RX-.`X-XIX-XI cXVX5.0XlXJ K.SX%.- [.[ :., T cXK.ZXwXK sXJ x `., $XS [XH z.4.{.C ;.JX:.h.T.y.+.h.y.1 zXp [.F.g XDX9 :.5.0.DXKXc x 1 :.`.`.8X-.~XI.`.`X1.`.`X- 3.8.8.8.H.8XV.8.r.r.r.rXt.b", +"XV.8X- 3.`X,X- $ x x vXGXn vXnXK.ZXI.8X*.rXt.k.rX*X*XIX9 ).`Xt.r.H.kX5 cXl.Y.p.x .Xn.xX+X,XI cXtX*.rXt.rX*X*.rXIX*.K 3 ).K.8.r.k lXg.z.z.U.IX&X& d.#.I.:.6.t.f l l.zX ./.UXkXg.#.U. .U d./Xk.#.U.U.c.U.U.U.c.c.U.U.c.U.c.U.c.U.c.U.c.c.c.cXg.o.bXk.b.XXz.b.b.b.bXg.bXg.I.$ NXt.rXj./.bXg N.b.b.b.X.o.o.o.IXg iXg.U.U.V.c.c.U.I.6 d.6XgXg.#XkXgXk.U.c d.(Xu lXg l.Q l l.U.U lXg.c.c.cXk.c l.c.cXg.b.b _.b.b.b.b.XXk.I.|.& ) I.$ ] ( 5.]XJXB x ..sXs.N C C E.)X=.vXm.'Xm.n.9XK.9 $Xc x R a t R RX, v v.q oXaXa 8 8.a.e.a tXe.M.)XsXe.).Y y xXq x.}.a a.a.M.a a <.a.a R.wXq $ $ UXI h B.} xXM x Xc.gX+XeXeXe.iXD.WXDX,.WXe.. p.C.s *.) G ^.@X=X> O.@ HXm o g o.Z 8X- BXD.e <.a.~X-.DXL 9XC 0X6X6X6...@Xi ^XiX6 0XiXi ^X6X6.J.;.C.4 ;.{ w {X8X8X:.{.<X%.< = & 3 3 ~ 3XIX+ Xp._ $., mXl : 1.9 $ 1.~X-X- a RX- a.e a R.e.a.e a.~ aX- 3 x.aX,X,X, hXI.M h.Z xXqXnX+Xn.E & 9XL.w $ R R.a.wX5.!.0 BXo eXtXt.rXt.r.rXtXtXtXdXt e.rXtXtXtXdXt.r.r.H.HXV 3.D @ @X; 4Xy.9 T.'.ZXUX5 m.u hXIX-X, cX, 3X-.e 3.a.aX-.aX, 3XDX-.aX- hXcXK :.,XcXJ D ` `X,X-.w.w gX1.H R.`XI.` RX1.a.u.`.~.`X1X-.[ k [XB.L K $ m cXK YX5XJX. sXH.YX.Xh.- 6XH [.1.; L L.PXfX2X8.y.y.y M.+ z.jXqXpXq.Y <.aX-.`XIX1X1XDXJ sXVXI.`X1.`XI.8.~.~X-.`.~X-.8 3.8 ~.8.H.H.8XV.K.^Xo.^Xo l", +"XJXX qXM.- 1.YXwXn v.W.)X=.W 2XG.n.kXV.rXt.b.X.X N.K.r.`.` F.` F FXdXtXoX1X- uXp.. %X6Xn.@ xXD 3.rX*XtX*Xj.8 3.u.u.8.8.8XV.r ~.k N.bXg./X X X .I A d./.(.A./Xk.zX@ PX&X l l.IXk.6.f.UX d.#.UXk.U.UXk.U.U.U.U.U.U.c.c.U.c.c.c.U.c.U.c.c.o.b.X.o.U.b.IXuX .I.X.b.b.oXk.z.X.r.X.I.zX N.o.oXg.b.o.^Xg.U l d.QX&.cXg.U.U.c.U l.#.#.U.7 d lXk.c.#.c.b.z.b.b ZX .oXg.I l.# lXg.U.c.U.c l.c.U l l.o.o.b.b.b.b.X.b.b.b.R.zX@ 5.X (.5 (.5.K.KXl 1 y.s / / /.W.N...).= OXCXG.n 8 8 8.e.a aX, < R `.9XD R.n v.! 9.=.N.M R t R a B t t t.d.NX0 2XpX+ $ x 3 tX- aX- t.a tXDXD.9 $ g x.Y.a.a.} xXMXM .-XB.p._ E E.M 8X- <X- x.[ u.W pX6 %XFXF G u * oXC.v o bXmX0 =.OXyXa.D 8 a.aX5 `X1 BXD.w 9 HX>X>.CX>.4.L.4.C.@X> w.@.4.4.4X>X8X2.CX>.C.4X8XfX8X>.J.<Xq.m.CXp [X,.H.8.8X,Xc.YXpX% U.9X5 TXlXl 1Xl T.~X- t.~ a.e aX- a.~ aX-X- aX-.eX- a 3 a t t a.e.aX-X- a < <._XnXp HXC s vXD $.% $XDX5.nXOXdX1.k ~XtXtXtXtXtXt.k eXt eXtXtXt.rXt e.rXdXt.r ~ ) ) T ]Xy 4Xy.n.nXl g '.ZX. 4Xw ' DXJXKX.XJXK.~.a R t R aX-.9XJXcXK hXDX, 3XlX, h.Z c $ hX- R.e.D '.0 mX. R 3.K.5.8.HXV ).D.`X1.8X-XI 3 k V k k.,., ` ' $ $.'XlX, $ 1 $ `., kXc nX#X0Xf.PXiX6X6.@X4X6X>Xi.@X8.C.p..._.p.Y.a.8X-.`.`X1 8.MXG 1.Z.'.].HX5 5.u.KXo.K.u 3X*.KX*.kX*.rXd.u.k.KXo.k.^.^Xj N", +"X3.K #XXX3 n n o vXF.).s 2 2.NX0 T.X.5 ).R.R q./.$XgX*XjXt ~ ~.r.rXt.k (.$ $ R Xq v %.s .XpXpXl 3XVX*X* ~X9.$Xt.k cX*.K 3 ~.u.k.XXtX X .t.Q A Q Q X.A.zXk././.7 Q.7 AXk q./ d.( iXu i./. .U.c.U.UXk.U.c.U.U.c.U.U.U.c.U.U.U.U.c.c.U.o _.b.o.bXgXx A.(.XXk jXg.X.bXg.k.b./.R.(Xo.zX .b.b.b.o.o.X.o./Xk.:.tX X&Xg.U.U.c.U.c.c.c l l.I jXg.QXg.z.c.o.b.o.b.X.: AXx.t Z.6.z l.cXg l.c.c.c lXgXg.o.b.o _.b _.b.b.o N.b N.^.k N.r.uXV ~ 3X1X-.w v.= 2.= 2.=.) 0Xv /.vXC 'XLXD R RX- R RXD R R m.aXD R.wXLXm o 2Xs 8 t R tX-X- R t R.MXK MXeXe v.pXp.i x 3 < a.eX-X-.aX, cXlX, =X. s.M h.l.l.FX7.[Xp._XqXGX, <X- a R R.*XwXc a.N pXn %X=.) t.N t.MXe y o O b.E.T.G HXLXL.Z.D BXIX1.~ B.DXa 9 H.EX> W ..y.+.jXn . ^XnX4X4Xp .XpXrXnXn MXr.@.x S.;.xXp.Y.MXpXpXpX2.9.` ~.8XI `XSXp.j t.aXI.eX1.eX1.e.eX-X-X- a.~ aX-X-X- a R a a aX- a a tX, a R.e.aX-X- a a R a.MXpX4.Y.q o.w.n.MXy 1.ZXlX5.0 (X1 FXdXt.rXtXt eXtXtXtXt.r.kXjXt eXt.k.r.rXtXt.rXtXd Q : (XI.Z g (.0 g (X1X1.] @X..w : $XD :XDX5X-.e R.~.eX- R a.e.,.GXl.%XwXcXHXc mXcXl.aX- $ 3.D.Z.n.'Xy.] T )XJ.$ T.% ) f.5.H.8X1.`.`XI 3 | 5.,XX k.,X#.Z :.9 :X. hX.XlXS., |.[.O =.O HXi..XnXp.Y v.T.x.P ;X8X8X2.x >XwXcX, c.HXV.uX,X,.n.Y &.>XwXcX. D m D DX3 D.8 ~ ~.8.8.8.8.8 F.8.uX*.r.rXt.r.kXt", +"X1.a.a a RXq b /.).) *XG ^.N v.'XD ) q f q.A.$X .f q.b.^ N.^.^.k NXt N IXX.KXM X+Xn.<XiXbXi ..<XDXD.r 3 ~X9.K.8X*.`X*X* ~.rXdXoXo.k q.R.z.7 X Q f.IXk q./ fX Q.I.R.IX@.t./.(Xu.z.z.U. .UXk.#.UXk.zXk.#Xk.U.c.c.c.U.U.c.c.UXk.c.U.cXg.o.b.o.XXkXg j.zXg.o jXgX9.b.b.k.kXjX$ N.^ N.I.bXg.b.b.b.oX9 N N.:.Q.R.I l.cXk.c.c.U.U.U l.z.t.:.z l.c l.c.b.b.o.X.X.tX$.z.z A.XXkXg l.U.c.c.c.cXg.o _.b.b _Xz.b _.b.b.b.b.b N.k.k N.rXtXt.u.8.HX-.n s J 0 J ^Xn ^ 0 0 0 b.q s.w s.e R aX- RXD.a R.wXc.eX1.WXL.E 9 2.N.N t t a.eX- BX- R.aXU.j v.) pXn.<X+ x 1 $X- a.aX-XD.a 1.Z s TXwXe h .l .[XB.F._ p E x R R R R a a.9 $Xw aXD pXn .X=X=.N u.M R C.n v v HXC.+.O = o.nXLXaXsXD.eX1X1 8.n s HX>X4X+X4.gXr.xXqXGXqXnXq v.j 1.pXGXpXqXrX+ [.j.jXr.pXG.- R.' vXp.x.j $ F.8 ~X,.[Xr zXn.wXc ' :.Z : :.e RX-.~ RX-X-X-.e.e a.~X-.~X- aX-X- aX,.e aX- a.e RX, c h t._XnXp.j H.n.nXs R a sXl.n.0 gXaX1.`X5XtXtXtXtXtXtXtXtXtXj.rXt.rXt.r eXtXjXt e.kXt.r.k.r.`.HXV.` '.2X5XD.`.`.Z.].wXD.e.a aX- BX-X-.~X- R RX- a R a $Xl xXl :XcXc R $.Z.MX-X-X-X-XD.'.0 4Xy.].H.k cX*.u.u.u.`.k.uX-.8 3.`.8.8X*XX.,.,.% k.3 1XK V T.- x.3XH.3.SXh.3 = =.>.T.; & &X+Xp.E.<X6.P.P ;X8 ;.< >XMXIX-.~X-.` B R x v.. 0 v v.ZXDXIX1.`.`XV.8.8.8.8.8.8 ~ ~.rXVXt.rXt.r.kXtXt.rXt", +"X1X1XI.a.M x O.) C t.).< / v.nXX.8.8.r.kX9 N N.b N.o.KX9X9 NXt.^X*.rXM.kX*.K., # h.i v.@...s.CXpX+.9X, 3.r.8.r.r.a.r 3Xt.u.kXt N.X (.z A ZX@.t AXx l./Xu.7.tX@Xx l.t.( dX X .z.z.UXkXk.z.I.U.c.z.z.zXk.6.U.U.c.U.U.U.U.U.c.U.c.c.c.UXgXg.b.o.bXkXg.:X9.X.z.7Xg.o.X.bXtXt.kX$Xd N.XXz.b.b.b.b.oXg NXg.z jX X .U l.U.c.U.cXg.c.c.c.6.&.: i.U lXg.o.o.b.^.o.z.R ( jX@Xk.bXgXg l l.cXgXg.o.o.b.b.b.b.bXz.b.b.b.b.X.b NXjXjXtXoXtXt.u.8.8X-XIXK gXCXP.q H & yXC yXCXCXP.n s.Z a a a R.a.a R.ZXcXD.a t.ZXa o o.s.N.d t t RX- RX-X- R.a h.M.W.N.)XeXnXp .i c.} a a.aXDX,Xl.M x $ x h `XBXBX7X7.FXe.m.W UX, a.e.aX- t aXD.eXD t.* E...@.sX=.N.* t.M tXDXL v y o.. y 0XC.q 9.n.w.nX, R.*.MXaXG.q oXq C.d.M.M <.M.M.M t.M < h.M 1.M.M.M.M.W.W._Xq._XL.M.* RXD UXpXp.j `XI.8XIXDXJXHXh.1.1.-XwXK.%Xc D 3XDX-.aX- aX- BX1X-.~ R.eX- a a a a.~X, a.a.eXIX-XD.a x.9.M.9XnX>Xr.!.w.w.*Xl $.n.w T g DXV F.8.kXdXtXtXtXt.rXtXtXtXt eXtXt.kXt.r.kXt.rXtXt.r.k.kXt.u F.8XVXIXI BX-XI.~XD g s RX- aX- B.~.e.~ a.e.e.e.e.~ R aX-X, 3 RXDXDX,X,XD RX1X,.MXDXI '.0 ' TXy.DX5.u.uX5.KX5Xo.KX5.5.k.u.kX*.uXt 3X9.$ k | `.-XMXD hXI a.aXKXc k kX.XUX0.!.>X0 w w.. y._ *Xn %.P.CX8X2.<.F.p h a.8X1.`.`.~.aXG v 2 v v.9 RX1X1.` 3XV.8 ~.`.8.8 ~.r.r.rXtXtXtXt.rXj ~Xt e.kXj", +"Xd.D 3 cXG 9 oXL E E.xXG.vXK.}X*X* NXk.XXkX9XkX9.f qXkXkX9Xo.KX5X*.rX9Xt.K 5 ).8.a.MXGXnXb.. % . v.9XK 3 3Xt 3.rXVXI.HXI.rX*.r.& ].R.t.7.t X.I.I ZX&.7 X.&.U.z X.t A.7Xu qXg.z.UXk.zXk.IXk.I q.I./.I.U.&.I.UXk.U.c.c.c.c.U.U.c.U.c.U.U.c.o.b.b.U.XX Z.U Z q N N.XXj.k.r N 7 ).X.R.o.X.o.b.b.o NXg N.z.:.z.z d l.U.cXg.U.U.c.U.z.t.IX&X XgXgXg.b.b _.o.X l lXo.t.:Xg.o.X.o.o.oXg.o _.o.b.o.b.X.b _Xz.b.b.b.b.bXz.kXtXtXd N.uXt.r ~.H.`X1 T.!.! 0XG J.nXn.wXGXa bXL '.Z RXD.e R a RX, R.* aX- R R.WXa 9 o 2.N.N t t a aX- B B a t t a C u.N.sXsXn y.Y.F # $.} <XDXD x.a.}.} #.l XBXr.- vXeXe U u C h t.~ RX- a R aXI B R 8 E.)X4XiXb.W vXe 1XD 8.WXe x v.w H 9 0 vXCXC 9XaXaXLXD.DXL b y.E J t < aX- a R aX- tX- aXD $ 3X- R.e $.9XD.Y.W v.YXD 1XI.'.dXnXp [.Z.8.HXIXI.K n.-XwX+XpX,.}X,.`.aX,.eX-XIX,XIX-.~.eX-X-X- aX-X-.~X-X-X- R R 3 $Xc tX3 1 s xXqXnXp.x H vXLXDXDXwXw.' 'XU.0.0.k.`.8Xt.^.rXt.r eXt.r e.r.r.rXt.r.r.rXt.rXjXjXtXtXt.r.kXt.r.u.8.u.`X1XI.H.8XVX,.2 TXlX,X,.aX,X,X,XD.u h 3 3 hX, 3 c.,.,.]XK.ZX5 :X,Xc T xXl TXl.'X..2 !XJ.Z.HXIXV.H.`XI.H.~ F.8.u.`.H.`.8.8.8 ~X-.8 #XJ ` `XM 3.a.}.a.aXc.[X.XwX..>XK b & =X0X0 HXr.s.m GXAXA.C.{XA.J.{X2 # R.`.`X-.`XI < v.sXb.s b x BXIX-XIXI.` 3.r 3 ~ ~.r.r.r.rXtXt.rXd.rXtXt eXtXj.X", +"X-.`.`.M vXL vXs tXp.s.) 0 v.}X*Xt.XXgX9XgXkXkXg.f.$ } I.A.%X# IXX.|X9X5Xt.5.k :.0XJXwXUXr.j.p nXr g.Y.K 3XVX* 3XV.u.Z c.ZXdXx ,.X.f ,.7.&.z.I.I Z fX d.I.(X XuXu.z.U l l.QXg.zXk.UXg.f.zXkX q././Xk.IXg.c.#.c.c.U.U.U.UXk.UXk.U.c.c.c.c.o N l.o.b l q.bXzXg.b NXjXj.kXt.k ).IXg.b.b.o.o.o.bXg N.z.7.: i.7. .zXg.c.U.U.c.UXu.7 i.U.(.:. .z l _.X _.X.z.7.t.zXxX .^Xg.b.b.o.b _.b _.b.b.b.b.b.b.X.b.b.b.X.b.b.kXj eXt.kXoXt.u ~.8.H.`X1.H.' g.nXmXL xXa.w.w s.wXaXy sX5X, c.a R.aXI R R R B.a t.DXLXGXm O.N.N C tX- RX- RX-X- t R <.*.* C 2.N 2 v.EXBXM.l #.} < <X,.a h h .l X%XcXqXeXe.W < u.* h R.aX- RX- t t a R a a U pX6.@ 2.)X+.Y.> nXH n.jXe._.W.>.= 9XC v JXCXm bXeXLXLXe b H.E s 1 t.a aX-X-.~.e.` B.~ 3.KX1X-X1.~.uX, <X,.M.M.M.MXDX-XD.dXqX4XwXlXIX1XI.uX1.0.,.YXpX4Xn t R.a R 3.e a a.e R 3 3X, RX-.~X-X-.e R.eX-.eXI.ZX..e.[.9 sXq.wXnXp.EX> WX> s.w.D R RXc.w.0 g 8.H 3X*.K.5.XXo N N N N.X.XXo.XX9 N.X.X.X.X.5 NX9 N NXx N.K N.5Xt.u.kXI 3.H 3.8 3.DXJ 'Xl $.a cXIX-.~X-.e.e RX-.e.~X-.e R D 1 `Xc.,XcXK DXJ xX.Xw.'Xw !X;X; 'X5XV D.u.5X9XoXo )XoX5.$XV.8.H.8 ~.8 ~.8.8.5 I DXXX3 #.a.}X-.}XKXKXHXw yXUXm s.qX> w & SX0X6.sXFXf...JX8.{XA +.y x.aX-.`.`.~.` t v..X= 0X+.w.9X5 ( ) q D ).f.r.8.rX*.r.rXt.r.r e.r NXg N.r eXj.b", +".`X-.a h b.s.s u UXn.)..XG x.`.8.^ N.b.b.b N N.5.kX9Xx.KXlX5 c cX*.K.X ~.r.r.^.&XxX5.wXDXeX, x x hXDX,.ZXV V I.,XMXl.-XK.%XJ : T.$ } Q.t.AX&.:.tX& XX .7.7X .(X&Xu.6X .( Z./.6.6.fXu./ Z.f./X ././.I.I.I.I.I. .I.U.U.z.#.z.U.U.U.U.U.U.UXkXg.o.QXgX9.oXgXkXg.X.b.b.k.^.r.k.k.^Xj NXg.bXg.b.b.b.b.oXg.bXkXk l.o.c.c.cXg.c.c.c l lXkXg.z.#Xg.oXg.b.b _.b.o.b.X.^XgXk N.b.bXz.b.oXz.b.b.bXz.b.^.b.b.bXz N.b.b.^.k eXt.r.r.k.k.r.r.r.H.`.8.` BXI.!.0 sXa RXD.MX1 8XD T.n 1 :.,Xl aX- R R R a B.M R RX,XaXGXC.sXv.N.* t aX- a B.e aX- a a t t.* 8Xs.N.)._X+XB.FXM # h.a <X,.i.l XB.[Xc._.WXe U 8 t t <XD B.e B B R a R a a t.* U E pXfX6 2 vXL ' xXG.9.wXe $ UXsXsXG.) J J OXC.q o.s v.E J.q.E v.M a.~.eX-.~.~X- R.~X-X1X-.K.eX-X1 R R RXD.M <.M.aX1 R 3 tXG.x [.9.u.uXlXxXxXIXJ.[.jX+.pXp U.a #.a 3X,XIX,XDXIXDXI 3XI 3XIXD cXDXD.ZXD h $Xw.9.wXl._.9.jX> y.jX0 H o s.w $X.X,.nX5XP.0.HXV ~.rX*Xd.X.rXtXtXtXtXtXtXtXtXt.rXtXtXVXt.rXt.rXt.r.rXt.r.H.r ~.H.u.`.`X1X-.`.~.HXU 1.GX,XK :XK `.] 1 5 hX- RX1 a RX-XIXDXl.a.aXI.a RX, a RXD $ 8.0.w.2.2 5X9.% q.$ ] 5 Q.A.R.$ 5 )XI.H.8.8 ~.8.8.r.`XI 5X# |.,Xc.}XD c h.,X# K.>XwXw 9XDXm yXG HX0 SXn %XnXi . w.T.T.{ rX% aX1.`.`X- B.aXG.s.v.. y s.5XX ).5 )XxXX.5X*.rXtXtXtXt e.rXtXtXjXg.IXj e e.b.^", +" 3.a.}._XL...=.WXp *.).).9.w.r e.^Xg N.X NXgXo.kXdX9.5Xl )X3X*.5.rX*Xt ~.^.^.^Xx N.KX9.KXM.5Xl ` : cX5XV.uX5X3 I.,XH.Y nX>.j.9Xh.0 5 ).$X .7.(.t./.& PX ZX@./ i.& d.7X&.6 d.z lX@.&./ d.I qXk.z.UXk l.U.I.U.U.#.U.#.#.#.#.U.z.#.#.#.U.U.U.cXk.IXgXk.UXkXgXk.cXk q./.XXx N N N.XXk.U l.U.U.#Xk.IXk./.6X@.6.I.6. .I. . .I./.6.6. ./. . .I./. .I.U l.z l.z.z l.z.I l.UXk.UXk l.z l l l lXk l lXk lXkXg lXkXg.X.bXo NXo N.X.XXoXo.K.rXt ~XVX,XD ' ! 'XlXDXD.ZX1X1XD RXs.aXD.a.}XI.M.}XDXDXDXD R RXD.W.n 9 & b.WXe.M.M.MX1XIXIXDXD.M.M.a.MXI RXDXs.WXL 0X4.p kX+.F `.i ` n W [.9Xq x.w U.M.}XDX,XeXDX, 3XIX,XDXD 3XDXI h h.. .X>.4Xn vXG s.' '.9.9.YXG x sXDXL.w M b.@ 9.E &X0X0X0.;X0 y yXDX,X,X,XDX,XDX,XDXDXI c 3 :XI 3XDXJXl 3XDXl $.9XcXDXV ' xXp nX%Xw 3 3.k.XXVXVXl x.YX+XpXn h.M c RX-.eX-.~ RX- aX-X-XD.e.a.e tXD UXJ.M h.M h._XnXGX4 J.YX> & yXGXL.0 s.,.2 $.Z.nXP 'X1.`.8 ~.k.r.X.rXt eXtXtXdXtXtXtXt.5X*Xt.rXt.k.k ~XdXd.rXoX@.z.RXV.8.kX1X1.K c.8XVXD.2 g.OXcX.XKXM DXKXJ : 3 R.e.~X-X1.a a.`X5X-X1XI RXI RXI R 8.M s x gXIX5 3.r.uXtXV.r.r.X N.K ~.8XV.kXt.k F.8 F.r.H.k ~.$ }X.XHX#.% kXc.-XJ K K.O @ !XUXD.wXK J =.xX8.@..Xi.v w S.y.4.4.{ LX2 h RX-.`.`.` R x oXe ^ T.*XI.8X*.8XtXt ~.r.rX*.rXt.r e.rXt e.r.^Xz.^.^ e e.k.b", +".u c s ..)X4 vXp.).s.)XL.9X1.HXo.b.b N.b.b.k.rXtXt.k q.KXkXXX9X*.r.X.^.X.o.bXg.^Xg P./XoXtX*X* I.|.K Y.k D I )X#.SXh.T & . OXn.j.3.5 N }.(.f./ qX@ f.7 Q./ lXk l Z.(.6.I.I.IX&X .#.6.U./ l l.U.U.z.z.UXk.U.U.c.U.c.c.c.cXk.c.c.U.c.c.cXg.o.b.b.U.o.o.b.b.o NXg eXt.^./.kX*.kXt.r.b N.o.b N.b.b.b.b.XXg. Xg.cXk.cXk.c.c.c.c.c.cXk.c.cXk.UXgXg l.b _ _.X.bXg.X.b.zX9Xg.o.bXg.o.b.o.o.o.o.oXg.X.b.X.b.X.X.b.^Xd.kXd.^Xd.k.5Xo.k.kX*Xt.r.u.8.HX1.' g.n.nX1 $XVXDXIX1 8XD.aXDXD.a.aXIX1.Z.MX1.M.a.MXDXDXLXG.q 0.= 2 C <.a.a R RX1 RX- <.aX- R RXD 8XL.s.).)...<.[XBXM XB XB.pXw.Y._XeXe U.a <.a.a.M t.Z RXl R 3 a R.aX-.aX- t.M E.m.@Xi.)XeXsXD.W UXa.M xXe x 1 $ t C u.WXm.NX> O.@.;.@.@XGXGXG $ a.e.e.e.*X-.* a a aXD R.u a.* RXJ :Xc DXc.Z h D.]XJXcXJ.1 z WX#XD.H.8.H.r.8XV.Z.M.pX4XnXq.M h.~X-X-X-X-X-.~.~ RX,XJX,.w hXc.9.eXeX+.FXpXpXpXpXnX4Xp.jXrXrXG.nXa.'XD.*.9 'X1.nXa ' DX-.8 ~XVXt.rXo.rXtXtXtXtXtXtXt N ) PXk ) ) q.$ ( )XxXx (.XX$ Y Q D.R.2 Q.| ).%Xo.%Xx.2XU.'XD R.~XDX,X- RXI hXD.u 3 3X,XI.u RXl 3X-.eX1 R.aXD.a R x.n T mX1XI.rX*XtXtXd.k N.$.XX*.k q F.k ).u.r ~.rXd.r.rXV.H.k.,.-.,XK.}XDXXXX [X..OXGX;X,XD.w.jXU zX0 MXi w ^ z = & = w L.{.CX+XBXqXl.`X-.`X-X-Xe s s.WXI.8 ~ ~X* ~ ~X* ~ ~ ~XtXtXtXtXtXt e e e.^ N e eXt.bXj", +" <XpXeX=.).. ..) /.sXpXG $.8.rXz.o N.b.^ N e.rXtXtX*.rXt.kX*X*X*.^.UXgXk.o N N N N.5.k.K 5Xo.kX@ 5 5.& (.5 5.K 6X7.hXpX6Xi..Xi & yXc } 5X3 N |.( Q Q.$Xk.5.A )XxXkXg.z.&.(.IXu.I.z.U.Q.Q l.U l.U.UXg.Q.U.c.U l.c.o.o.V.o.V.U.c.cXk.U.o.b.o.b.o l.bXz.oXg N.o.bXjXtXtXtXjXjXtXj.k.b.b.o.b.o.o.X.o.bXg.o.I.c.c.U.c.U.c l.U.UXk.c.U.cXk.c.c.U.c.o.b.b.b.b.o N _.b.U.b.b N.b.b.b.b.b.b.b N.b.X.b.X.b.X.^.^Xt e.rXtXt.rXt.u.k.k.rXd.uXt.8 ~.8X1.`XK.0.w.w.D.e RXI B R R RX1X1X-X-XD R.aXD RX1 R R R R R.nXLXC 0.N.) t t a R.e aX-.* a a t a a.~XIX,.* u *.)X=..Xr 1Xq kX+.-XpXnXe.W.} < t.a RX-XD tX,X1XJ.5 TXJ 1 :.MX-.a <.M E.sXfXi.)Xe U.9XK ' y y nXK.9XK xX- t C C CXG.E 2.v ^.xX4 .XGXq.Z R.a xXI t.* a t.eXD.M.a h.e a RX,X- :.5Xl 3XD.ZXI 3 c.M xXp.YXw.M.8.8 F.r ~.H cX- $.pXpX4 UX,X- RX-.`.~X-X-.e R.uXH.a.[ $.YXqXqXqX4 ..<.J.<.<.x.xX2XrX> v.n.w.n.nXOX5 BXaXaX5.0 (XP.H.8 ~.rXt.rXo.r e.r.rXt.rXtXt.5Xk f.f }.&.|.f f P.R 5Xx.X ].R I 5 QXJ 5 ).] 5.5.| : '.0XKXl 1 '.a.e R R BX- a aX-X-X-.~X- 3XD cXI R R RX1X1XDXs.9.' g.]X1.rXVXt.k.r.rXt.X.z.X.^X9 )X*.5Xx ~Xt.rXt.rXtXt.r.rXI #., `Xc.}X-.} ` [.%X.XhXy.jXw., @X;.GXZ.T.O.L =Xh.OXC.E =.@X6.4 ;X2X# X1.`.`.`X-X1X- tX,.H.8 ~.8 ~.8.8.8.8.8.r.rXtXt.r e.r.rXjXj.bXg.b.r eXzXt", +"XLXn.sXvXF..XFX=.v 0XGXBXI ~.r.X.^.X.b.bXjXtXjXj.rXj NXkX9XgX9.bX9.IX9.o.k.k F 3.H 3XV I.k.HXoXdX*.r.K.K ~ NXMXJXh.1Xp..Xb 0 SXh.O.OX..K.kXt.X 5X5.K.AX9.A.$Xd.5 N q.A.&X@.I.z.z. .#.U.Q.U.c.# l.#.U.c.U.U.c.#.c.b _.o _.o.o.U.#.o.b.b.b.b.b.oXg.o.b.b.b.b.b.bXj.^.kXjXt.rX* N.o.X _.b.b.o.b.o.b.bXg.b.I.cXk.c.c.U.c l l.U.c.UXk.c.UXk.c.UXg.o.b.b _.b.b.b.X.bXk N.b.b.b.b.o.b.b.b.b.b.b.b.X.b N.^.kXdXdXt.rXt.rXd.rXt.^X5.rX*XtX*.r 3.8.8X1 T.'.DX.XlX..e m.* DXl c kXK hXc `.,X,XHX. x $.2 a.>X1Xa.wXC 0.=.N C a R.eX- R.e a t a.e R.e.~X- 3.e C.* *.) 0.j.p.Y.p.[X7Xp._Xe v h U a.a R a.a.a.a 8X, RX1.Z.~X,X,X,Xl.e a R U E...CX=.s.).M.9Xw sXK.YXK x hXD.aX- t a < R uXs / /Xi.CXf.F E < t.*X,X,.YXlXK $ :.9 1XcXl.9 a R RX- 3.u.~XVXI t aX-X-.~ R.MXp.< [XD.8 F ~.r.u.rXt R RXBX+Xp v UX1.~X- RX-X- R aX- UX,.a U 1.FX4Xn.F.J.<X2.p.pX+X+ .X4 HXqXLXa.D.DXd.D.].*X5X5.0XP 'Xo.`.8 ~.rXt.r NXtXt.r eXt.rXt.rXt.k NXt.kXt.kXtXt.k.k NXV.rXdXdXV.rX5Xd c.8.~.`.`.~.~.~ gXO.O gX. : ' D TXJ 3.aX-.`XI.~X-X- aX1 3.Z RX1 RXIX1XDXl.0XKXy.Z.DXVXkX*XdXxXx.bXo.^.K.kX9.z.kXx.KX9XxXdXd.r eXt.r.r.r.8 VX3 :XMX-.} `., [.2 nXw.'Xl.n.] !.q.>.+.+X0.+ @ = 9 b H.;.C ; r.{XrXp.aX-.8.~.`.~X1X1.HXV.8.` ~.8 F.8 ~ ~.r.rXt.rXt.k.r eXd e.^.I./ l.r e.kXt", +" ^.v 2 2X6XnXbX= 0 JXc x.`Xt.^ N.oXoXtXt.r eXjXtXjX9Xk N.z.f q.z.A./ qXx ).u D.0XUX5X5XD.8 ).R.r.H q.$ qX3X9XM IXZ KXp o oXG.j.O !Xc :.8 3.k.5XoXo ( T.A :.uXx.0.zXx.f.X.XXkXg l.z.Q.#. .U.c.#.c.U l.U.#.U l.U.c.b.c.oXz.c.U l.b.o.b.bXgXz.oXgXg.b.b.o.b.b.b.bXj eXtXtXj.k N.b.b.o.b.b _.b.o.b.o.b.b.o.IXg.c.c.c.c l.c l.c l.cXk.c.U.c.cXkXg.b.b.b.b.b.o.b.b.b.UXz.b.b.o.b.b.b _.b.b.b.b N.^.^.^XtXjXtXtXt.rXt.rXtXVXd.k.k.r.uXtXtXt.8XV.8.`Xl gX5XyX..2 xX.X5Xc T x mXJ $ :.Z 1X,.% :.-XlXJ h.2 1.w.sXC 0.= *.M.* < aX-X-.e R.* a R.eX-X- R 3 a a t C.) v.@.EXp.YX+Xp.W.i.W 1.a.M < R <X-.aXI.a.aX, R B.~ R R R R aXI a R U E.s ^.B 2Xs <.}XD.} RXD.M t RXD R R B RX- a R C.)X=XiXf.JX4 U t.}X- RXMXDXlX, $Xc c.u : #.u.e R.eX- $X-.~ 3 3.e RX-X-.~.a t xXp.Y U 3.8.8.8XxXx.K.`X-.'X+XnXpXe RXD R R RX-.aX- a a t u._XnX4Xn.<.<.{.p.{X4 ...XA.mXn WXn.wXaX1 B.H.0.D.n.nXa g.Z.` B.` FXVXt.r.rXoXdXtXtXtXt.r e.rXtXtX*Xt.rX*XtX*Xt.r.kXt e.kXtXtXdXd.k.kXo.r.8.8 F.`XIX1.2 T 'XcX1 TXc 'Xl TXI.eX- RXl R.eXIX-X-XIXIX, RX1 8XD.w.nXP @.].2.R.| ].I Q X.R 5 f.&.t f Q 5.f.A P.f.fXtXtXtXtXtXt.r.r.a ) VXX V h #XX ` k =XUXP.9.wXD.nXP.! &X0X0 yXCXU.!XL s 9.;X0.yX8 r.C.p.w.a.8X-.` F.` B F.k.8.8.8.`.` ~.8.` ~XtXVXt.rXtXt eXtXz.bXg.XXgXjXt eXt", +" /.v 0 ^.j.@Xi 0.@Xn.9 3XV.r.^ N.k.X.X AXk N N.XXgXgXkXz.XX@X Q.|.&.& I.] DXJ T.GXq m |XV.$.8.H.$.KXX 5 q.$.$Xc.% n.'XmXG.9 TXDX,.u cXV.H ) (.2 ] YX5X9.8 cXVXJXVXVXo.k.KXgX@ dXu.Q d. . d iXu i.I.U.z.Q.6.I.#.c lXg.I.z.I.zXg.o.b.o.bXz.b.oXg.b.b.b.o.b.o.bXj.k.kXtXt.k N N.b.b.b _.b _.b.b.b.b.b.b.#Xg.cXk.c l.c lXg.c.c.c.U.c.cXk.c.cXg.oXz.b.b.b.b.b.b.b.U.b.b.X.b.b.b.b.b.bXz N.^XjXjXtXt.rXt.rXtXtXdXt.rXt.rXt.^.kXt.r.u.rX* ~ ~XI.`.DXU '.'.M.ZX,XD hX, $X,X,X,X,X,XDXD.ZXDX,X-.aX,.Z R.ZXaXa.E b.=.N C t tX- a.e a R.e a aX- a B.aX-X- < <.*.N.s O.s..XpXn U E UX, h < t $XI.e RXD.aX, tX, RX- RX- t.a t.a.e.e < U U.. ^.v / u 1 h aX- t R R R tXD R.* aX- a a.a 8.N / {.CX4 . U < x cX-.eX-.e.eX1XD a.aX-.~ c.~.a.e.K RX-XI.eX5 R a a.~ R.~ t EXpX+.[XI 3XI.8X*.H.k F.`X,.-XG.YXp.Z RXD.M.a t t t t t t <XnXG.<.p.x.{ >XA ..m E p U p._X>X> x.nX1 BX1X1 $.wX5 ' (X1X1.`.8 ~.rXt.r.r.kXj e.rXt.rXtXtXt.rXt.rXtXt.k.rXtXtXtXt.rXt.rXt.rXt.r.rXt.K.r ~ F.~.`.~X1 g.'XPXDX1X1 B.~ B.eX-X-X-.eX-X-.a.~X-X-.Z.~X, R R R $ T sXO.] B ' :XxXoXx ).X.XXoXx qXx NXjX9.k.XXo.k.kXdXt e.r.rXtXt.r 3 # VXXXXXJXM.,XBXJXH nXwXP.'XaXs gXLXO &.q 9 s.n.n.w.wXL 9X0 rX:X:.{.@Xr.- k ~.`.~.` F.~X*.r.8.8.8Xt.`.8.H.`.HXtXtXt.r e.r.b.X.b.b.^.b NXjXt.r", +" ^ 0 &.jX0 &X0.xXpXp xXI.8.rXxXx.& ].R PXk.X.^ NX9.o.X.X.R 5.z (.R IXX ).$ :XJ.2 k IX# 6 V 5 c D D.u.u.r.8Xt.r 3X1 'XK.Z.D.u.K.r.u 3.8.K.~Xx ]XO.2 (X5.8.8.8.8.H.8.K.8XtXtXo fX@X@.Q ZX X Xu.6 X.tX&.f X ZX&X .I.7.&.(.6.t.t.(Xg N.b.b N.o.oXgXgXz.b.o.b.b.X.b N eXtXjXtXj N.oX9.b _.b _.b.b.b.b.b.bXg.IXg.U.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.o.b.b.b.b.b.b.b.b l N.b.b.o.b.b.b.b N NXz.^Xt.rXt eXtXt e.rXtXt.r.uXtXtXtXo.kXtXtXt.rXt.r.8.8XVXDXOXl.nXD R R t R tX- R.aX- t B R.aXD.a a.a R a a R.*.DXaXm bX= /.M.*.a a a R.~.e.aX- a R.e aX-X- R a.e tXsXs.) 2.).@Xn E h t.}X, 3.% 3.9XI RXJ.ZXD $XU x.~X-.9 D a a hXJXK.e.} p.m.@.B.) u.Y 1Xc :Xc.Z U.a aXD a BX-.eX-X-X- t.N / 2 wX6X4 E a R aX-.~.eX- R.~.~.~.~X- 3.u R.~.HX,X-X-X-.` 3XD a RX-.` a.a u vXpXr.- RXDXI.` ~Xt.8.8X1 x.-XG.pXG U U UX, U.M < t < tXe.F >X+X4XA.m p U . E U E.d.W EXn n v.nXD BX1.n.n.0XU D T B.`.` ~.8XtXt.r e.k.k.rXt eXtXt.rXtXtXt eXtXt.r.rXt.rXj.r.r.k.r e.r eXtXtXt.X.r.r ~.8.`.`.` g.0Xl 'X-X-XIXD BX- aX-X-X-.~.e.eX- cX,X1 R.ZX5.D.D.w.0X;.].DX1X9.uXd.r.rXd.rXt.k.r.r.k.rXt.r.kXt NXt.rXtXt.rXt e.rXt.r 3X*.,XXXM VX3 k V V.-., =XU 9 sXD.!.n sXm.' 9.n.n $.DXs.w v &XCXA {.{.4 W.TX+ a 3 c.`.`XIXtXI.`.8.8X-.r.5.8.8.8.H.kXV.r.r.^.^.^.b. . Xg.^XtXt e", +" w J &.!.!XG.;.@X+Xp :XV qXk 5.K.A.A.A.A.z N N N.^X*.^.k.r.r.HXt 3 3 ~X-.8XI.`X1.HXI 3 c V ).5.HX5.k.k.KXk NXo.k.u :.5X*.KXt.XX*.rX*Xt.^.rXd.H.H.H.H ~.8.r.8.8.8.~.8XV.` ).^Xo.z.IXk d.I.I.I.z.I.I.I.Q.R.Q.I./.z q.I./XxXg.I.$Xg.XXg.^.b.X.b.cXg.b.o.b.o.b.bXgXg.^XjXtX* N.o.b.o.b _.b _ _.b.b.b.X.b.c.UXg.cXg.c.c.c lXg.c.c.U.c.c.c.U.c.cXk.c.b.b.b.b.b.b.b.b.U.b.b.o.b.b.b.b.b.bXzXjXt e.rXtXtXtXtXtXtXt.rXd.rXt.u.rXo.kXt.r.rXd.HXt.H FX1XI @X; : 8XD <X- t tXD B.eX, BX- a.e.aXDX- a a R.e R R.ZXa o J.=.N.W.j.aX3.e.a.eX-.e.ZXc.e a a a.a.u T.e B RXs v H 2X>...W U U # c 3XK.|.Z R.e nX,.M.- x.'.eX- :.Y.M.a.}X. `.*.M E pXfXb.) 8XeX,.9 x 1XD 3.a aXDX1 RX- a aX-X-.*.N.=.B.CX6XnXe a.e.~.~.a R.e BX-.eX-X-X-XI.eXx ` DXl 3 1X5X- 1XK.Z.a R.~.~ t tXeXpX+ nXcX,XD.H.`Xo F.8 RX-.9.YX+XpX4Xp.Y.<Xp 1Xe.M C.* xXpXnXr.m p E E U h U t t <.WXeXn M.YXe.Z 8.H.D.'Xc.DXVX-X1.`.` F.8.rXtXt.rXd N.rXtXt.rXtXt eXt.r.rXtXt.rXjXtXtXtXt.r.r eXtXt.r.rXt.r N.rXt.r.8.r.~X1Xo g '.' R.~.~X1XDX- a.` aX-X-.e.% c mXJXJ.9XJ.]Xw.3XU @ @ (XJ.$.A.r.rXdXt.r.kXj ~.k.kXtXtXdXtXt.kXo.rXtXtXt e eXtXtXt.rX* 3.$XXXXXX VX# V.[.[ `X.X.Xm.!.w.n.' s.'.n x.DX, 8 B R v.n.q HXf.vXi ;.{X2.g.i.,.] : (Xx 3.r 3.r.r.k.`.kX9XVXVXV.k.r.kXt.z.X.b.o.#.IXg.^ eXtXt", +" =Xh.OXO.G.>.+.T.h [XJ I I.R |.f./XkXg.^.KXj.^Xt.rXj.r ~Xt.r ~ 3.8.r.`Xt.8 F.H.HX1XV.8XV.`XX.].2.kXt.r l.(.zXx.RXd.H.r.KX9.XXk.^.^XtXt.rXjXxXzX5.^.k.r ~X* ~.8.8 3XV.`.$.r.K.z ) AX@ f.&X@ AX@.RX@Xg.I.I.R.f./.z./.zXk q.z.$XgXk.z.z.X.#.^XzXk.b.b.b.X.b.b.bXg.z dXxXjXj.bX9.b.b.o.b _.o.b.b.o.b.o.bXk.#Xg.cXg.c.c.c.c.c.c.c.c.c.U.c.c.cXg.U.c.b.o.b.b.b.b.b.bXk.b.b.b.b.b.b _.bXzXzXd e.rXtXt.rXtXt.rXt.r.r.r.rXtXd.r NXtXtXtXtXt.rXt.H.`X1.H @X;XP n : $ h $ $ 1 x $.9 x.w.'XKXcX1 a R a aX-X-.e.WXa b o O.=Xe = [ D.eX- a B t.'.3 R R <.a < c 'X- 8 8 C.W.j *X4 v p x.a.}X- 3 :XIX, R R 1X,X,XDXJXlX-.eXl 1XD.*X, xXM R.} E.sX> ..)._XDXD.ZXDXD.M $.} R.a R.e a R.eX- R RXs.=.s.@ ^XnXe tXI.K.e.~.e R a R.eX- BX-XI.~ 1 :X5XKXDXM.KXJ :X..Y k.uX1 R.e u v >.jX2XH 1X1 3.`XdXI.`XI.8XI.Y.YX>.J >X4.<X+.<Xp.F xXe.FXn >.< . EXF u t RXD.e R a.M EXn yX> v.w.Z.wXaXP.0 3XV.H.`XI ~.8.r.rXtXtXt.r N.rXtXjXtXt.rXtXtXtXtXtXj.rXt eXt.rXjXtXtXt.r eXt.rXt e.^.k.kXtXt.`.`.H.D gX5.0.Z.~X-X- RX-.u.aX-.aX- a cX, : ` : 'XJ.9XUXOXP.G D.0 5X9.fXjXj.rXt e.r.rXjX*.8Xj.kXjXtXt.5Xx.rXtXtXtXtXtXtXtXtXtX*.8.,XXXX |.,XS.l V |X3.[XHXU y.' sXD.W $Xl 8 '.ZXl 8 BXaXL yX0 ^.B.PX6 ;X2 ;.T h #.5XoXd.H.u R.`.`XV.`X* ) D.$ I ) ).$.k q./ N.bXz _.b.bXt eXt", +".@Xm =Xc.!XK.j z.1XB : ].$ )X9.K.K N N.KXt.r.r ~ ~.8.`.8.8.8.8.8.8.8.r.`.8 ~.r.kXV.`.8.`.HXIXV ).f.R.XXxXxXg ( QX9.k.AXgXk.IXk.U.X q.6.fXkX NXg.b NX9 N.kXV.r.H.8XV.5X-.`.k.AX@.(.f.tX X .A.tX Z.6.&.(.(.tX ./.:X .( ,./.7X .f.tX .6.(Xg.b.z.o.o.b.b.o.o.bXg.z A.oXtXj.b.o.b.o.b.b _.b.b.o.b.b.b.b.U.I.c.U.c.c.c l.c.c.c.c.U.c.c.cXg.c.c.cXg.b.b.b.bXz.b.b.b.U.b.b.b.b.b.b.b _.X NXj eXtXtXtXt.rXt.r.rXtXtXtXtXtXt.rXoXtXt.rXt.r.k.rXI FXIXV g.n T x gXc.9XcXJXJXK T x :Xc 1Xl.9.a aX- aX-.e tX-XDXa o o.= G b x $ V a.eX- < R.'.w x a a cX- cXJXl.e t C._XC pX4Xp.F U <.M 3X-.~X1.eX1 R R.MXD <X, a.e R a.e a.a a a a t U E.m.xX>.j.jXGXcXw.]Xw `X, a t RX1X- tX- B c R.*Xe / 2Xf.@ ^Xe a.eX-X-.a.e R.e.e R a.e RXD R.aX1XDXD a 3.a RXD 1 h R RX-X- R._Xp . WXr.x.jXDXD.HXo :.k.8X-.a.a.pXp >.x.{ WX2.pX4XnXpXp ..JX2.F p E u RX- R.a.e $.* <.WXnXn.jXGXL.n.n ' T T.~.8 3.8.8.r ~XtXt.rXtXt e N.rXtXt.rXj.rXtXtXj eXtXt eXt.rXtXt eXtXt.rXdXtXt e.rXt.K.k.r.r ~.r ~.`X- g 'X5 :X5X5 R.`Xl.H 3.` R RX1XI R.`.e x $ B.ZX5 '.0 g B F.`Xt ~Xt.r e.r.^.rXt.k.rXt N.X.zXt.5XkXxXt.rXtXtXtXtXtXtXt.u ~ 3.,.$X# }X# V.} 3 |.[ VXH n.q g x $ $X. T 1.2XKXJ.9 gX..! b.q.qX6Xi ; r ;X8X+.TX,X- BXIXI.k.`.8XV.`XI 3XI qXX.5.KX*.r ~.k.X.o _.b.o.b.b eXjXt", +"XiXn H y v.Y M hXV.5Xt.rX* 3.rX*Xt.r.r.`.8 3.8.8 ~XI.8 3.8.8.8.`.8.8 ~.8 ~.8.8.8.8.8.8 ~XV.K.&.R fX (.X.^XoXj.k./.^./.cX@XgXk.&.A.6Xg.tXgXgXg.^Xg N NX* ~.8.`.8XV.8.kX* ~.X.X.I./Xk.I.Q.z. .z l./.Q.U./.U.z./.I.I.z.U.zXk.I.UXk.UXkXg N.U N.b.o.b.X.o.X.b.z./ NXj.^.b N.o.b.o.b.b.b.o.b.b.bXg.c.U.U.c.cXg.c.c.c.c.U.c.U.cXg.b.b.o.b.bXg.o.b.b.bXz.o N.bXgXg.b.^.XXz.b.b.XXz.bXzXd.r.r.r.r.uXt.rXtXtXtX*.r.uXtX*.r.5.rXdXtXtXt.rXV F.H RX5Xc.w.w.w.w.Z C t.* t a t t a a t R.a.a a.e a t a a a 3.Z J.E.v /.N R aX-X- aX- R a a.* aX- aX, a a a.e t <.* *.d 2.xX4.m U < <.}XI RX1 R R aX,XDX,XDXDXD a a R.a BX-.~X- R t <._XeXf ^.sXe.N.9.a.M.a.a R aX- R 8 a B.aXl ` 1Xl y.E.sXfXf .._ a.aXI 3.~X-X-.eX- a.~X- aXIXIX-X- a RX- a RX-X,XD R.u a R a.MXnXp.<XfX6X4 &.w.MXI c.5 FXIX-.8 a 1.jX>.x >X2.<.{Xr.<.@.<X4.<X2XA.m U t t RX- cXc.g h C E v x.j.9.'XPXU.2Xx.u.8.8 ~Xt.rXtXt.rXjXj.rXt.r.bXj.rXtXt.r.k.^XtXt.r.kXj.r.^Xj.bXtXj e N.^XjXtXjXtXt.kXg.^XxXt eXV.8.8X-X9XP 'XO.2XK.5XKX3Xc :.%.].].'.$.a.aX*X, s.0.n.0 gXO (.`.HXtXtXtXtXtXtXd ~XtXt.rXjXt.bXxXg.r.X NXoXdXt.rXtXdXt.kXx ) N DXJ 6 , } V.,X-.a.a # VXX.-.>XOXGXK $ cX,XJXKXcXKXl $ '.wXKXa.! &X0.4.T.{ L.xX2.TXw RX1.`.`Xd F.8.8.`.8.8 3XM.5 V ` q :.$.kX9 N.b.bXzXg.^Xt.^.r", +".v O J & bXGXr .aXV.8 ~.rXMX*.r 3 ~.8.8.r.8.`.`.`X-.`.`.8.8.8 ~.8.8.8.8 ~.8.8 ~.8 ~ 3 ~ ~X*.r.K.kXx q f 5.&.k.r.^ N.X lXk.6.zXg.$.zXk.b.c.bXz.b q.b.RXkXx.5.u.5 #XV.`.8 ~.r N.X.X.Q.z.z.c.z l.U.Q.cXk.UXkXg.UXkXk.UXk.cXk.b.b.b.b.o.b.o.b.z.b.b.X.b.b.b.^.rXj.XXjXtXj.X.b.o.o.b.o.b.o.b.o.b.bXgXk.#.c.cXg.c.U.U.c.c.cXk.cXg.o.cXg.o.b.b.b.b.o.b.b.b.b.b.b.oXg N.o.b.bXz.oXz.b _Xd e.r.5Xo ~X*.r.rXt F.8.rXtXt.u.r.r.XXtXtXtXtXtXVXt 3.` B :XK.w.n.w.w.w.w.Z R RX- R R a R.a.eXD RXI T.a a.M.aXIXIXe b H 0.=.N tX-X- R B.eX- aXD RXI R a.u.~X-X-.a < t u.)XvXn.< . E U < a.aX-X- R a RX5.'X,X,.a 1.aX,.a.e.e.~X- R.e R t U.W p.@.B *.).*.a.aX- R R a R.*.aX1X- R.eXIX, :XG y w 0.@X4XnXe tX1 # R aX1.e aX-.e R.eX1X,X,X-.eXI.e R.eX-XD.% #X- R c a a.MXp ..4Xf %Xf.@.j.aXIXV 3.H.`.`X*Xl.}.-X>X4.J %.mXAX4X+.x.{.x.{.{.mXe U a.`.~ R.M :Xe E.} UXqXq.YXwXU.0.Z 3.H.` ~Xt.rXt e.^.^Xj eXtXt e.r.X.b NXg e.rXxXkXkXtXjXt.z.rXj N.IXk.rXt.IXdXtXt q N.r.rX@Xk.X.r.kXt ~.`XV.DXU.nX5 sXlXM :XM c ` ` DX5XlX1.a.uX-XD.9.n.0XP.0X5.H ~.r.rXtXtXtXtXt.rXt eXtXtXtXt.rXd.r.^Xd.r.X.rXtXd.r.rXt.5 fX9 7 D 5 | , k.$X9.`.a < 3.$XB VX0 y.'.' ` x.,XD R BXDX1X,X1.eXD sXa o.;.@.C...@.{.CX4X+XqX-X-.`Xt ~.8.8.`.8.}XVXMXMXX : :X9XxXo N.b.b _.^Xz.X.^ ~.k", +".@ 0.!.q bXU yXp <.}.`X* ~.8 3.8.8.`.8 3 3XV ).`.`.`.8.`.`.8.8 3.8.8 ~ ~ ~.8 ~ 3.r.r.r.rXV.r.k.rXj.k N.X.X NXk.k.^.r NXg NXk N.b N.o N.b.X.bXgXg NXuXk.& qXx qX9 ) qX9XV.` ~.` FXk A.zXkXg.I.Q.U.z l.U lXg.z./XgXkXgXkXgXk.c.bXg.o.b.b.b.b.b.U N.bXz.^XtXtXj e.r.rXtXjXj.b.o.b.o.b _.b.b.b.o.b.bXg.c.I.UXg.U.c.c.c.cXk.c.cXg.o.b.cXg.c.c.o.o.b.b.b.b.b.b.b.b.oXk.b.b.b.b.bXz _.XXz.XXz.rXdX9.r.8 ~.r.r N.`Xt.k.rXtXV.u.X.rXdXtXt I.X.ZXVXVX5XU.' s T yXK.'.wXa.ZXI B.~X- RX-X-X-XIXI.~Xl.5.9 TXc TXUXU.j.O.;Xp.j sXlX-.~XVXD.DX5 3X, 3.uX-.u.~X-.e a.*.* u.N 2XfX4._.W.M < R RX-.a 3 R :XKXcXcXJXw T k 1 $ a R.~X- B aX- t U.d...@.s.).) U.* R 3.a 3 a.e.a 3.a B R $ 3 t t t G.N - ^.@XnXq.}.aX,XI.e.eX-.~X- R.eX-XI $.e RX-.e R.e.aX- `XJXIXlX1.~ 3 R UXG.JX> {XA %.@.j EX-.uXV F.`.`.$ k.a.wXr.@.s._.m.m.m p ..<.JX2 >.m E.a R B.0X- 3 <XD t EXe.F.9 : x.`X1.HXI.r.rX*.k eXt.r.b N.^.r e.kXt.r.b.o q.I.rXtXg./.kXt.kXk AXjXjXg.zXk eXj q.r.kXgXkXkXjXt.z q.XXkXo.r N.H.HX1 g.'.n.'XD R.eX-.a aX-X1X-X, cXI RXI $.' TXU mX1XV.H.HXtXtXt.rXd.rXt eXd ~XtXjXtXt.r.rXt.r.rXdXd.kXdXoXx.R fXxX9Xx )XV.`.`X* #X9 3X-.~.` aXM V.,.>Xm.9XaXU.ZXJXwXJX. !X.XK T.e R.n s.w H z ^.vXA.{.4.JXpXB 3.} 3 3.r F.H F.8.`.8.uXVXV.u.rXo.^ N _.b.o l lXzXtXjXt e", +".> !.q.q b.q.jXG c.}X9.` ~XVXI V #.5.$.u }.K.A 3.`X-.`X-.8.8 ~.8 ~.8.8.8 ~.8.rXtXtXtXt.rXjXt.kXtXt.^X9 NXjX*Xt.k.r.^.^.k.^Xk.o.X.oXzXg.b.o.b.b.o.b.I.z./ qX9Xx.5.K )X5.`.u (Xo.k qX@X@ A.t.tX .t dXu./Xu.t.IXu.f i./././.I.IXkXkXg.oXg.b.oX9.U.b.^ eXjXt eXjXjXd e.kXjXt.X.b.b.b.b.o.b.o.b.b.b.o.b.c.I.U.c.c.cXg.cXg.c.cXg.o.o.b.cXg.U.UXkXg.b.b.o.o.X.o.b.b.oXg.o.b.XXz.b _.XXz.b.bXoXt.8 F.u ).H.H.8Xo.`.k.r.rXtXd.r.X.r.uXtXd.$ 5 5 5 DXJ.OX.XwXUXUXwXU.9.n.wX5X1X1X1XD B BX1X1X1 B 8XD.ZX,.DXaXsXG yXr.E 0.s x x $ cX1X1X1.~.~X-.~X1X,XIX- a R R t 8.N * 0 0 v pXe <.a RX-X1X-X-X,X, R.MXc $XD s.aXDXD.e a RX-.e R t u.W._.J.s 2.W y x.*.e.- : `.eX1 h.3 R.a.e k.9 $ C 8.NX= /Xf.@XnXq.M R.eX- BX-X-X,X-.~.aX1X1XDX-.e.eX-X-X-.~Xl B R `XcXJ 1Xl.aXeXp.<X8 { { {X4.[ h.` 3 F.`.H.8 DXX.,.j M.YXe EXeXe._.m E p.J WXn EXe tX-X- I :X, t < u.i h.Y.} a.8 3.r.rXt.kXtXt.r.rXtXt.^ N.bXj eXj e e.b.X.b.UXj e.X.k.o.k.^Xj.bXj.r.X.bXjXjXt.bXtXj NXt.^Xt.k.^ N.r Q.f.z 5 q ) T ] 4 !.O.0 B RX-X-.aXI 3XI 3X- aX- $ s T g 'Xl.`.8 ~.rXtXtXtXtXt eXtXt.rXtXt.r.r eXjXd.^ ]Xx.X.RX@.| Q.| (Xo.^.r.u.r 3.`.8.`.`.`.~.8X1.8.aX* VXJ !.q sXaXlX, $ c.ZX,X,.Z.ZX,X, $.Z.9 &.q z ^Xi 0.C.{XA.J a.aXIXt.` F F ~.8.8.rXVXt.r.k.^.bXz _Xz.#. .^ e eXtXtXt", +"XU.j.!.q.0XU MXw n V V 5 VX3 k., }X#.G }X#.,X9 3.`XI.`.`.8X- ~.8X* ~.8.8 ~.rX*.^.k.rXt.^.r.kXjXj.bXgX9XjXtXj.^.rX*.kX*XjXt.X.r.^.b.b.o.b.o.b.o NXgX9.b.X.kXt.`.8.8XI.8.8.KXx ~.8.R ]X@ A.&X@X X@X&X@X X .f./. ./.AXu.& d.f.6.UXk.cXgXg.b.b.oXk.o.^XtXj.^XtXtXtXtXtXtXj e N.b.b.o.b.b.b.b.o.b.o.bXgXg.I.c.c.c.c.U.c.c.c.cXg.o.b.b.cXgXk.c.c.cXgXg.c.c.cXg.o.oXg.c N.o.XXgXg _.o.V.X.XXg.XXdXV ~.H.`Xd.H.`.r.r.H.kXtXtXtXo.rXtXtX*.k.kX*XV 3 : IXJ.-Xc.9.9.,XwXc sXa.DXa.nXaXa.D 8XaX5XaX1.D.M.w.0XG s.9 y H w bXe.W RXI 3.`.`.~.~.`X-.e.~.uX, B.a.* t t G.) 2 ^ J v pX, 8 t BX- RX1X-X-X-.a tX1XD 8X1 R t B aX- a a a <.M E._.J...s *Xn 9.MXD.eXJ :XK a a :., xX- a., s.Z.M.= / /X= ^X>Xq v.a.* aX-.e a x $ ` $Xl $ :Xl.5 x :.Z $X5 :XDXI.e.e.~XD `XcXK.jXG.@ SXb.P.B % WXB aX*.K.`.`.8.KXM V Xw.+X+ v.M U U UXe.m.F >._Xe x : :XIXlX,.Z.e < U hXq .a 3.8.rXt.r.r.r.r.r.rXtXtXtXt.k.b.^Xd.^Xj eXzXz.b.bXdXj e e ~ e eXtXjXtXj eXt.r eXt eXd e.rXtXtXjXt.k.b.r 5.R 5Xk 5 q ) TXyX; 'XlXD RX-X- RXI.e ` $.e.uX5.w.wXO ' RX- ~.rX*XtXtXtXtXtXtXtXt.rXjXd e.rXj.r.r.r.zX@.| X.R (.tXo.rXdXV.H.k.HXt.HX-.`.`X-.`.`.`.~.~.8.}.,.,X..GXO.> T 'Xl.]XD.9XwXD.Z.O.Z.G.>XK =X0 M.;.BXi L LXA >X% [.}.} 3.r F F F F F.rXtXtXt ~.^.b.oXz _ _ _.c.b.b.XXk.Q.X", +"XKXP gXU s gXwXH VX3XMXXXJ.S |XH |.S }XHX3.K.aXDXI.`.8.`.` ~.`Xt.5 ~.rX9 NXt.^.IXk.rX9XgXjXg./Xk.^.I.I.bXj.zXg.^.^XgXg N.^./.^Xx.b.o.b.o.b.bXg.b.X.bX9.X.K.k.rX*.k.8X*.u FXV.uXxXoX@Xx.^Xx.zXk.RXk.I./.z.UXkXkXkXk.cXkXk.UXkXgXgXk.U.cXg.b.bXg N.b eXtXtXtXjXtXtXjXtXtXt.b.X.b.b.b.o.b.o.b.b.b.b.oXg.I.U.c.c.c.c.c.c.c.UXgXg.o.o.UXg.cXg.c.c.c.UXg.cXkXg.cXgXk.U d.I d.I.tX .7Xx.z.t d f q PXx.A (X.XxXx.`.^Xt.rXtXt.r.XXt.u.rXtX* ~XV.8X-XMXcXXXMXM xXl.9Xc., g.n.nXa.n.nXLXLXL.n.wXa v.ZXaXG s b g.j H M z.E JXn xXI.e.HX5X1X- aX- t R CXl.* tXs.M.).N.).vX6 ^Xe U.N R RX-X- R.~X- R R a.M R RX-XD R R a.aX- a a < a.W.W . .Xb.).N C xX,.e.eX,XI $.e R h R # a aX,XD t.N.=X=.v.v ^.pXn 1 < a a aX-.eXDXK `.]XcXcXK.,.9 $ TXKXJ :Xc.,XIX1.e R R R RXc = z.@.; { % % %XnXwX, cXoXV.~.8XI a a $XB.YX< 1.Y $.M.M E._XeXp.W $ n.,.S R.a < 1 xXqXe E.i `.}.`.rXtXj.rXjXtXtXtXtXj.r.r eXj.^.^.b.b.^ e.^ l _.b.bXjXjXt eXtXjXj.rXt eXt e.^.rXd.r e.r.k eXtXt.r ~.X.rXd.rXV.r.5.8.` B.k g 'XlXl R B RX, c :XJ.]X3 TXc ! !.O D R ~.8X*.r.rXtXdXtXtXd.r eXt.r.r.rXjXtXt eXt.k.^.^.rXt.XXt.k.r.rXtXt eXt.r.`.`.~.8.`X- F BX1X-.8.`XX k g @.nXy g DXcX.XlXK.2 $XwX;.jXOX0 9.+ &.;.; 0 w ;.P.J.p.1.[ < R c F F F.8 ~ ~.r.rXj eXj.bXzXzXz _ _Xz.o.o.z.: 7.I", +".] g.0 DXUXHXH.-XB |XH., | [.[X< VXBXc.,.-XJ.K V D I :.8.H.`.5Xx.H NXkXkXt.X.$.c.r.b.b.r.U. Xk.o./.I.^.r./ NXt N.6.$Xj N././ _.o.o.b.o.b.o NXk.&.f.f.$./ ) ).k ) ) ).R.uX9 ).R }.f f ,.R./.7.&.(X@X .tXkXk.UXgXkXkXk.cXk.UXk.U.c.c.cXg.oXgXk.bXjXt eXtXt.kXtXt.kXtXjXt.b.b.X.b.b.b.o.b.b.b.b.b.b.o.I.c.c.cXg.c.cXg.c.U.c.cXg.U.c.c.U.c.cXk.c.cXgXg.c.c.c.U.#.I.( qX&X&X&XkX . .^.(Xx X.R P.& D (.|Xx.r.rXt.rXzXdXjXt.X.rXd.uXt.u.8.8.8.aX3XX #XM # #.lXM 1X3XJ.9XL.nXmXm bXL v.' y b b 9XGXG bXG J s J o b 2.N.w a.a.K.K cX-X- C C.).M.N v.s.W G.).N.)XbX6.@ ..W.W < <X-X-X-X-X- R R.e.a.e R.a.*.D BX- R aX- a a < t E p ..sXv.N u 8 a R.~ RX- 3.~X- R a.a.M a.a a.M C.= / 0 w H.4.jXGXq R t tX-.a a.e.a.eX, R a.* R a R a.e.e.eXIXK $X-X-.eX-X-.a <XrX+.+.CXi { %Xi W.h.j xXJXIX1.`.8 3.aXI.Y.i E.Y.SXH.a UX, E.[Xw x UXq.F < < h.MXqXeXq x .9 c.a 3X*.rXtXjXtXtXt e.rXtXtXtXtXt e N.b.bXzXjXz.oXz.b.o.oXj e e e.rXj lXj N.^Xk.b.r e.^.X.r eXdXt e.^.r.X ~XtXdXtXt.k.8.u 3X1 gXU '.'XDXD 3.eXI.a `X5Xl c 'XPXUXU gX-.`X*.rXtXtXtXtXtXt.rXtXt e.rXd e.rXdXjXtXjXt.kXjXj.k.XXj ~.kXjXt.^ ~Xt ~.8.`.`.`.`.~ FX-.`.`X-X- c., m !Xc T.'.n $ 3XDX,XDXG s s.q.q.q.q & H.4 w w.4 w LXfXb z [XB.a 3.r.8.8.r.rX*Xt.rX*.r.rXj.bXz.o _.U.#.oXzXz l.t d.t", +" s ' n.-Xw [.-X7 [Xh.[.[.[X7XBX7XB.,.[.[.S.G.3 YXK )XVXV.8.8XV F qXtX9XjX9.rXgXjX9Xj.c.^.^.IXkXg.bXk.oXj.bXkXgXj.I.X. N.Q.X l.X.o.b.oXgXgXk.X./.A./.&X9XXXx VX9 ).fXo I ~Xx.kXoXo 5X9.XX9Xx.5.z./ A A./ lXkXk.UXk.c.UXkXkXk.c.UXk.UXkXg.oXg.o.^XjXjXjXt eXtXtXtXtXtXtXt.k NXg.b.b.o.X.b.b.b.b.o.b.o.U.oXg.b.o.c.c.cXgXg.c.c.c.U.c.c.c.c.c.U.c.c.c.c.c.cXkXg.U.U l.I.U l.z.oXgXg.b.b.XXxXx.XXo.X.u.kXV ~.r.r N NXdXd.r N.rXt.uX*XV ~ 3.8X* qXMXM.}.a < 3 #XlXBXJ.-XGXG yXCX> y HXr HXCXmXC wX>XCXmXC &.+X0 O.=.N.w < a hX- t R 8 U.N.).W C 2Xn.) ..;..X6X>X4.@ v p E t t t a RX- a R a.a tX3.ZXlX-.a R aX- a.a a a < U U.s.s -XF.d.*XU 1 R R aXIXD a t a RX-.} a a a t.N /X=.@ H zXpXGXq x t.e tX-.e RX- $XJ xXlXDX, :XKX,.u.MX5Xl x.%.%X1X-X-.e < aX, yXn S.@Xf H.4.+ MXh.>.> $XI.aXI.~XIXIXI `._ E hXwXl T k U.MXq ! x < < < < UXe E 1Xq X7Xl.}.aXIXV.uX* ~Xt.r eXj.r.rXt.rXtXtXtXt.^.b.^.bXz _ l.b _Xz.bXz.^ eXjXjXk l e e.b.zXjXjXdXg q eXtXt eXt.r e N.kXt.X ]X9XtX*.8XVX1 ' m.0.'XlXD.eX- a R.e.e aX-.e.w.w gXJXl.5.8.X.$XdXtXdXdXt eXdXt e.X q.kXd ).bXt.X.z.X.r.X.XX9X*.^.z ~X* l.rXt ~.`.`.8.`.`.` B.`X-.`.a.8XV `XHX.Xw.n sX5XDX1 R R.D.n.n.qXC J o J J.E w w S w {Xf ; .Xq x.- cX-X*.8.r.u.r.rXt.rXj.rXt.^.b.b.b _.#. .V _.o.b.XXo.b", +"XU.+.G = =.1.1.S.S.SXB.[ X7 >XBX<.TXhXhXH n.3X,X1 3.8.`.8 ~.8.H NXt.rXtXtXtXtXj eXj.r.^.bXz.b.b.bXjXjXjXtXj eXtXjXg.b.bXg.o _.o.b.b.UXk.U.z qXk NXX.K.k.KX*.r.rX*.K.k N.u.8.8 ~ 5.$ ).K NXkX9Xx l.I.z l.6XuXk.U.UXk.U.c.U.UXgXk.cXg.c.b.o.cX9.bXtXjXtXtXtXtXjXtXt.kXt eXtXj.^.o.X.b.b.o.b.b.o.b.b.b.U.o.b _.c.c.cXg.c.c.c.cXk.c.c.c.c.c.c.c.c.c.UXg.cXk.c.c.#.UXk.UXk.cXg.b.b.b.b.b N.X N NXt.H.$.% q F.rXj.b.b.b.^ A.zX*.K NX*XV.H.`X- : ` # $ a <.a a.} x x ` n.jXG H 0 HXCXi b ^.s 2 2 2.v 2 2XLXG.q 2.WXs.M # # a U R u.N.N.d.)Xe ...._ v.. M zX4XrXn.... E E.M t t < t aX- a R t tXDXw k.Z aXD R a a < a < < <.W.W .X=.) * C.* [ x.eX-.`XIX- B.e R.* tX, a t a t.N.).vX6X0.4XnXn 1X, <.* t a aX- t $ TXK :.,Xc 1XcXcXc TXc D : `X3X-.~.a.eX- a.WXhX+.+.T z M.@ J w H H M M y xX, xXI.uX- #Xp E E.MX,.M [.M U.aXe.M t < u E.iXq XcXB c.a.`.8 3 ~.r.kXt.rXt.rXj.rXt e.r.k.rXtXj eXtXzXz.b.b.o l _.b _.bXzXz.^ eXj.U q.^.r lXk.o.r.o N.Q.^ e.^.^XjXjXj.k.kXdXx ).f f.f }.$ D D @ 4XO.G :.,.e.e R R aX-X- R.Z.nXw Y D 5.|.R IX@.t.R fXoXd.rXt.r.X.Q N.r.IXo.rXx l NXtXk.bXkXtXx )Xt.XXx.K ~ F 3.` 3.8.8 N ).`.`.~.~.` aXcX. m.>.1.9.9Xc.9.wXaXa.n.!.q O 2 2 2 2.v.v.. H wXb %.{X6.s._.Y.9X-.rXV.r.r.r.rX* ~Xj.rXjXz.b.b.b.b.I.U.V _Xz.X.b.b N", +".>X;.+ n.jXrX< n.-XB k.LX<.S.1.S zXrXe.W.WXe s.aXIX-XI ~ 3.rX-.r.k.rXtXtXtXj.^ N N i.z.b.c./.o NXgX@XtXtXj.rXjXj N.^.o.b l.o.b.o.b l.z./Xu.f./X9X9 N.5XX.$Xx 3 3.8.rX*.r.uXtX9XV.kXX.K.X.K.5 NXxXk.&.I.I q l.I.I. .#. .#.U.c.c.U.c.c.c.o.b.c.X.b.b NXz N.^XtXtXtXjXtXt.kXjXtXtXj.b.b.b.b.o.b.b.b.b.o.c.b.b.b.cXg.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.U.c.c.c.UXk.c.UXk.cXg.cXk.cXg.o.b.b.^XgXg N.^.XXx.X.kXtXt N.^.b.b.X.^X .z.& 5.& 5.$.5 DX$ }.3 k.,X3.S XH $ X3.-Xh n z J.s.s.s.N.s.W G / / G.N G C * bXG.N.N C RX, a < a.).N.sXn.pX+XpXq._.<X+ W._Xn.sXqX+.[X7XpXqX+X7Xq hX,.M < <.*.a tX,X,X, a.aXD R R.a t a t.} h._XeXp.) G / C u $ $.e cX-X-X- B R.e a.aXD a a R U *.s.@.;X>X+.* < t t.e.a a aXl.9 xX- xX, a R RXD t a t t R a cX-.~ 3X- aX- <.a.MX+Xp y.@ HX0 &.>.+ =XCX0X0.Y.jXw.'X5 c.u.a ._.i.W.M.M U.a EXeX,XeXl EXeXeXq.M < h.uXIXV ~.`.XXxXk.^XtXtXtXj e eXt.k eXt.r.r.rXt.rXjXjXz.b.b l.bXz.b.b.o.bXz.o.b.b.oXzXt.^XjXj eXj eXd.^.b.b.b.b N N.^.^.r.rXt ~.8.8.8.8XVXV BXU TX5 ' B RX- R.e.~X-X- aXD '.n !XI.`.H.HXd.HXd.r.kXd.r.k.r.k.rXt.r eXdXt.r eXtXd.r.^ N.k qXt.kXoXd.^ N.k.8.`XI.8 ~.8X3 }.% D 5 5X3 IX3.3.O.G @.OX;.3.G.].n.n OXmXC ^ 2 / *.NXs.) 2Xe.@.s.BX>Xf vX+.Y [.aXIXt.u.r.uXtXt.r.k.b.X.oXzXg.b.Q _ _Xz.b.b.b.^Xd e", +" =Xw =Xp M M.jXr.[ n.1.L.hXrXrXrXn...=.s.W.n.wX-X-.a.8.8.8.8.8 ~.kXtXtXtXtXj N NXg q./.^./.IXgXgXk./.X.^XjXdXjXt e N.b.b.UXzXgXzXg N.fX ./.$ NX9 q q.$ q.KX*XI ~ ~X*.k.^.u.r.`X9 : 5XV.5.5Xx.5 ).I.I.z l l l.U.U.cXg.c.UXg.c.c.c.c.c.c.o.b.U.b.o.X.X.bX9 NXjXtXt.kXtXtXtXtXjXjXj.^.b.b.b.o.b.b.o.o.oXk.bXz.b.c.c.c.c.c.c.c.c.c.c.c.c.c.U.c.c.c.c.c.c.c.U.c.c.#.U.c.c.c.U.c.c.o.b.o.b.I.t.f d.&.I.5.r.^.X.o.^.o.b.b.b.XXo.rXtXVXV 3.8XIXXXJ.3 k |XH ., kX3.- V.,.g.3 =.j.;.j.s vXeXL U.*.* C uX+Xn.* t.* C.* a a h U C C.) * %.pXnXM.l.i.FX7 ._XB.i U t t < U U E E U.W EX, UX, u < < a < a.M hX,.} < a.M < R <.W U.FXpXnXL.s.N.M t t.e.a.~.~X-XI.eX-XD R.*X,X- t a.N.N.sXf.x.@._ t.M R.e.a R a.e.Y : :XDXK 1Xl.e a RX1 R.e R a.e c R.~.8 3.eX- a < <Xn.j WX0.+.> oXU & H MX0.+ HXC oXm B B.8.` Xn hXe.M.d U.m E x x._ $ x `.} 3 3.KXt e.^Xj.cXgXz.r.rXtXt.r.r e.rXtXtXtXt.r eXt e e eXj N.b.U.o.b _.b _.b _.b.b.^.b.oXzXz.^XjXjXj.bXz.X _.b.b.o N.o.^ N.r.k.r.H ~XV ~ ~.`XI B.ZXU '.0X- R R.*X1X-X-X-X-XD.w ' m $X1.~X1XdXd.uXtXt ~.k.r.k.r.k.rXt.k.rXtXtXd.rXdXt.A q ] 5.A.& I I.|.R (Xd.H.8 N 3 ~.r.u.kX*.8X-XX )X-XI.,XJ = gXwXl $XU 9Xa bXC.! 2.vXn U t B.M C sXG *Xb w.C.. ..L n $.8 c.r.r.rXt eXjXzXzXz.bXz _ _.c. .o _.b.^ NXjXt.r", +"XD t.9X0Xh.h y y y [X7X<X+X>XG.@ v v.N.N.N s 8 R R.8.`.8 ~.8.rXV.kXt.r.rXt N N N N l.b N.oXx.b.X.o.^Xg.XXo.X.X N.o.X N.b l.X _Xx.X.RXk.XXxXkXkXk.f.$XxX*X*X*.8 3 ~.rXV.rXt 3X9 IX9X9.r ) ) 5.&.fX@ d.: lXg.U lXg.c.c.c.c.c.U.c.c.c.c l.o.b.U.b.b.b.b.bXg.X.^XjXjXtXt.rXtXtXtXjXtXj.X.b N.b.o.b.o.b.oXg.b.b.oXg.c.c.c.c.c.U.c.c.c.c.c.c.c.c.c.c.c.U.c.c l.c.c.I.U l l.c.cXk.cXg.o.b.b.U.IXgXxXgXdXz.X.XXzXz.b.XXzXz.XXzXkXd.u.k.kX* ~.8.`XXXcXX x # `.l.l.l # #XM xX3 yXa.s.jXGXr.-.[XlX,.*.a 3 #Xc .Y kXcXK g.9XwXL u.)X=.sX>X+XM.l h.l # .-.i UX+.M.YXe.>.,XlXqXnX+.F.-Xn x U h.W.M.w U.M.a xXB 1Xp x., 1Xp x hXeXnXnXL vXs C.N U t.M.a.eX- $XlXl.D $XI.0 $ $ a R U.)Xi.@.@.xXn t.e aX-X- t.a.a.eXD.aXD `XKXc ' h $.aX- t R aX- cX-X-.~ 3X- a t < <XGXGX> W 9X0.! oXmXp y H.+ = & !Xm.!XIXV 3.iXn x E U E._._._.iXq x 1 TXlX,XI.8XV.r.^.k.^Xz.U.o.^ eXj eXt ~.r.kXtXtXt.r.rXtXjXtXt.r.rXj.^.XXz l.b.b.b.bXz.b.o.b.b.o.b.b.b.o.b.b.b.b _ _ _.b _.b.b.b.b.^.bXt.r.rXt ~.HXt.`.8XIX1X1.2.' TXD.e.~.e.e.eX-X-X- R s sXU 'X1.R.].X.u.^.KXtXx.kXx N.R.z 5 N.r.f.^Xo.^XoXxXdXo ).X (.5 :.5XxXo.5.HX9 ~.8X*XkXx.rXV.r.8.8.8.`.~XI 3.K k !.>XwX,X- '.!.n OXC oXC O W XJ TXUXc x KXp W.y.x .XnX4 XBX-.k.HXV e.r e.^XzXz.V _Xz _XzXz.b _.b.bXz.bXj e.r", +" cX5.[ sXpXH =.OXwXpXc WX+.s J v.s 0 v.=Xa s CX1X1.` ~ 3.r.8.`.k.kXt.uXtXt.k.^.k.^.k.^.kXjXjXjXj.X N.^.^ NXt.^.k.kXt.^.KX9Xd N.R.f.tX9XxXg qX N.I NX*X*.r 3XV.8.8.KXtXt ~.8 ~ cXdX5.u.KXoXxX9Xx.RXk.Q.z.z.z.U.U l.U.cXg.U.cXg.c.c l l.c.o.z.o.b.b N.b.b.b NXjXtXtXt.k.kXdXjXtXjXj.b.oXz.b.o.b.b.b.oXg.b.bXg.c.c.U.c.c.c.U.U.U.U.c.c.c.c.c.c.U.c.c.U.c.c.c.c.#.c.c.c.c.c.c.c.cXk.o.b.o.o.b.b.X.X.^Xz.b.^.X.b.b.bXx.X.XXkXo.r.k.k.uXI 3.` #XJ V ` k.[Xc X3XMXM #XM y o v.= vXL u.w tXDX, RX- a c < c h c.- sXK.jX0Xw.j 0.s.Y.p.F x $.a c.iXM.-.FXeXpXq =._.9.+.jXh.T M.O =.O.Y v U.W E UXe 1.pXwX+Xw.[ nX0.>XcXn.W E xXG.N xXa.WXs.N.MX, a R B.K :XKX3 T 1 x m : xXs.N.NX6X2.JX+Xe t tXDX1X-.a a a.aX-X- R aX- $ `Xc `XwXI BX-X- a.eX5 RX-XV.eX- a < uXpXn.j H v s y !XG s v vX0XU o.j.qXP 9 #X1.a.YXe._._._ E.FX+X+ 1XK # R.H.r.8.k.kXj.cXj.^.^ e e.rXt.rXt eX*Xt ~.k.kXtXt.k.r.rXtXtXjX*.^Xz.b.c.b.b.b.b.b.VXz.b.o.oXz.b.b.b.b.o.b.oXz.bXz.oXz _.b.bXz N.X eXt.k.r ~.R ].K.K ).u.]XUXO !XcXl.' `.u $XVX-X-.a.w.wXPXNX5X9.5.| 5.& f.R P P.R.$.z 7 Q f.& f.&X@ Z.|.z.r.u.r )XJX9 : )XxXJ )Xx.5.H.r.K N.8 F ~Xj.k.8.8.`.8.~X* c k k !XUX, R 'XO.!XPXm.q &.EX+.p., `.9X5 1 gXq ^Xf.{.x.m E >Xc.aX*.r.rXt e e.^.b _Xj _ _Xz i.o.bXzXzXzXj.kXtXt.r", +" 5 D D.M.}XHXc.GXU.ZXw.pXL.sXG b bXeXe v v.n.* RX-X1.8.u.`X9Xx.5Xd.rXdXtXtXt.r.r.rXtXtXdXt ~XjXt e.^.r.rXdXtXtX*.rX*.r.r q.5 q.R )X* NXkX@Xu.I NX9.oXt.r.kX*.8.8.r.rXt.k.8XV.H ~ cXVXd Y ).|.R.|.&.& f AX .& Z iXg.c.U.c.U l.c.U lXg.c.cXg.U.b.b.X.b.o.X.oXg N.^Xt.kXtXt.kXtXtXjXtXz.X.b.b.b.b.b NXgXg.oXg.c.c.c.c.U.c.c.U.U.#.U.#.#.#.U.U.c.V.cXg.c.c.c.c l. .c.c.c.c l.c.c.c.c.c.V.^Xz.X.bXzXz.X.b.b.o.b.b.bXz d.z.t ( Q.R 5.%Xx.$X9X9Xl }.-X.X7.S |.[.[.- .l.lXBXw.s.s 2 v U x h R.MXIX1X-X-.a.a.aX,X, CXs vXe.EXp =.h.1XB #X5XI aX-.i xXpXc.FXeXp v CXq h v y.j.jXm.jX0.j.Y vXe v v._.)XeXe._Xq v._XGXG v.sXe vX+.[XsXl s ' v.W v C t a.~ RX- R.e aXI.~ 3.e.* t.s . ^.{ .Xp.M.aX1 BX1XI a tX-X-.a a a R a R R RX5Xc t.e.M R R RXVX1XIXVX, R a tXeXpXp.j y v.w 8 $.9.w x v &X+ yXCXC.>XU $.M.aXK._.i._._._XnXcXD 1XM.a R.H.H ~.r.^.^XkX9 NXjXtX*XtX*.rXj.r.r ~.rXtXt.r.k N.^.k e.k.rXj.r NX9 NXk.b.b.b _Xz.b _Xz _.b _.b.o.b.o.bXz.b.o _ _ _Xz.bXz.o.b.b.bXt ~.k.r.H 5 I 5.|.$ IXJXOX$ mXyXJ #.2 3.2 $X-X- BXD.'.0 gXI D.5 qXk )XxXxXx D.X.^.5Xo NXx.kXx.^XoXo.^.kXt.kX* ) I.$ 5.R | 5 ) :.5.r ~ ~ q N F.r ~Xt.8 ~.`.`.`.8X*X3.,X. !X5 B.H.w.' T g y o 0 U.WX, c R.*.e.'.)Xb ..C.pXAXqXp X-XV.rXt.rXtXj.b.b.b.bXzXz.#.z. .V.b.bXzXt e.rXtXt", +".RX9XV #XK c `X, B YXr.1X+X0 v.j CX< y._.O x.]XlX9XX.r )XI ].%.XX5.r.rXt.rXtXtX*.k.k.(.K.k.^.rXdXt e.^Xt.r.k.r ~.r.8.r.}.A.$X9.KX*.r.R.f.RX9Xg.b.b.X NXj.r.r.r ~.r.kXt.u.`Xx.~.8.u cXx.5X9 ) qXxX@ A.R A q d.I dXkXg l lXg.cXgXg.U lXg l lXg.o.b.o.b.o.b.b.b.b.X N NXtXt.kXd.rXjXj.^.b.b.b.b.o.b.bXg.c.oXg.U.c.U.c.c.c.U.U.U.U.#.U.U.U.U.c.c.cXg.c.U.c.c.c.c. .c.c.c.U.c.c.c.c.c.cXg.o.bXz.X.b.b _.b _.oXzXz.o.b.t.t.t f Q P 5 Q 5 DXX |X.XS k.O.3.SXH.S.SX# VXM.l .[Xr 0 vXn.MX, <XD.D t.* RXI.uX1 3.eXDXeXL.)XGXrXr.gXH [.3 V 3 R.a.a.}.l.lX7 > E U.F E xXqXqXU vXa s b.'XGX0XnXp.<X> >Xn._ pXqX>X2.j.;.j yXGX4.j y.Y 1 x.D.w v.sXL C.*X- R.~XI 3.aX-X-X-XMX1 C.D 2.)X6.x.<Xq U aX1X1XU : R.a.a., c 1.eX- R $X.XJX- :Xl R 3X..e RXIXV.].2 VXI < C._XGXp.q.E v.M : $ s R 8XaXK.n.' yXm.q.>X+ h <Xq .m._XnXH 1.> ` kXcXJXJ.K.rXt.b.zXj q.kX*.rX*.^.rX*.r ~.8.`.`.8.5.r.r.k.X.bXt.^.^XgX9.^X9.^.bXkXz N.b.b.b.bXg _.b.b.o.bXz.b _.b.o.b _Xz _ _Xz _ _.b.b.b.o.rXjX*.r.H.k.uXtX*.5 3 ].Z m ' '.uX1XIX-.eX-.~ aX1 $.'.'XJ B.` ~ 3Xt.H.k.H.k.r.r.H.rXtXVXt.k.r.rXtXtXdXt.r ~.kX* DXM.rXM.k cXV 3X9.r F.r.U ~ ~ ~Xk.UXk ).` F.rX*.kXX k m m.0.`X1.` BX-XMXJ & 0 OXs.M.M.M C.! s.s.s.C.x .._X4 Xc c 3XtXVXt.rXj.^.b.^.b.bXz.c./.o.^.^.b.bXjXt.rXt.r", +"XdXd.&XX VXXXIXIXIXc.3Xw nXw v.+X+.+X+ y.GX;XlXl ).,X9 ,.k Q.2 , )XoXt.uXtXtX*Xt.r q P ZXx.HXd.r e.r.k.rXt.HXV ~.` 3.`.8X3 #XM DXxXX q N.z.b N.X.b.b N eX*.r.`XtX*.rXtXt.`.8 (XXX5.H ).5 ).HXx.X q ( ).z.I.z.z.IX@ l.I. .z.6.6 l i. .I. . .z.U.U.z.U.zXkXkXgXg.IXxXk.X N.XXoXtXdXt.k N.o.b.b.b.b.oXgXgXgXg.U.cXk.c.c.c.c.c.c.U.#.U.U.U.c.c.U. i. .#.U.c.cXg. Xg.U.c.c.c.c.c.c.cXk.o.oXg.bXzXz.XXz _.b _.b.b.b.bXx.XXxXxXx N.X.K.u.u 3X-XJ.3X..O.1X# nXH.S.SX7 .l XBX+Xp v.sXe EXeXs v.w.D.ZXlX-.~X1X, t U /.WX+Xp .Y ` `XX.,XlXI a a a.l.lXB .F._Xq.m E EXq yXG.! &Xw.!.9.>X0X0X0 MX0 yXp.Y.EXr.j oXG o.q &Xw y vXGXwXJ : 1XG 0.W.D.W $ : x.a RXIXD.a.eX,XD RXL 2.sX>.@.JX4 U < RX,XcXw R aX-.,X, :.e.~ RX,Xl `.ZXD a.eXKX;X, RX1X,.5XX K t.a._XnXG.EX0Xm s T xXc m.-XG mXwXJ n 9XGXG.q H.-XK.}XBXBXB .9 h : T.] `X3X9.KXjXtXgXkX*X9.rX*.r 3.K 3.r.u.`.K.5.5XI q ).R.R 5X&X@.fXx.& q.f.f.fX@ dXg.o.b.b.b _Xz.b _.b _.b _.b.b _.b.o _.o _.o _.b _.b.o.^ l eXtXtXt ~.8 ~.8X9.uX9X1X1.0XK.n.wXIX3 RXI.eX-X1X-.w.n.0.OXJ c.rX9X*.&.5X9 5X9Xx ) )Xo.kXd.HXt.u.r eXtXt.r.k.u ~ 5.$ )., ) 5.K.8.u.K FXt.XXgXt e NX9Xg.^.r.`X-.r 3.K., 5 ! :.~X1 R.`.`X-Xc.q b O.=.W.*.j.jXG.=XiX>XfXf p...[Xh.,XIXI.r.8.r.rXjXj.b.o.^.o.o.^Xz ~ e.b.^.^ ~ ~ F.rXt", +".R 7.X }X*.8 ~.`.`XD 'XK kXJ xXDXGXq v b.j $ T.HX9X9Xo.K.^.uX* 5 5 ].z.XXdXV.k.rX*.k.z.A 5 )Xo.rXd e.rXt.8.8XIX1X-.8.a.r :XVX*X3.5.&.K N.X N.b.o N.X.^X*Xt.8.rX*.rX*XVX*X*.K 3.kXJ #.|XX ).u.5 ]X@.&.(.& PX@ Z.z.tXg.7 d Z.tX&.I.&X@ ZX X&.I.&./.7 d.&X X .&.A.&.t ].AX@.&.RXtXtXtXj.^ N.X.b.b.o.bXgXg.b.c.cXg.c.cXk.c.U.c.c.U.U.#.U.U.U.#. .6 i i. .U.c.c.c. .c.c.c.c.cXk.c.c.c.c.cXgXg.o.bXz.o.b.bXz.b.b.b.b.X.o.X.oXk.b.X N.k.r ~XI.`.5X3XJXc DXUXwXHXwX7.-XBX7 kXBXBXp ^.) ..s.)Xn.E = n.-XJ $.ZXc h x.j._X+.[ XM.l :XH `XI.HXI.e R < # #XXX7X7.pX+ p._ .Xp.jXP.w.9.'.>.> =.O.>XwXw =XUXU.j y o s s s v sXmXP v.nXLXcXU.-.9 yXs M.YXa.9Xc : $ $ ` #Xl xXlXl.MXe.NXi.4X>.CXn._ t.MX,.2XK R a aXKXKXM.e a.e c D $ RX1 R 8Xl $ : a R.u #.a #X, UXpXnX>X0.j.'X..ZXJXcX. :XKXwXwXU.wXsXK b.j nXw =.Y hXM $ c.}Xl.u cX5.k.5X9.kXx N.c.XXj.X.r.r 3 ~.rXVXV.8.`.uXXX9.uX9 )Xk q.I A.z i.o.I.U q.IXk q.z.o.oXz.b _.b _ _ _ _ _.bXz _.b.b _.b _Xz.o _Xz _.b.b.b.bXg e.rXd.r.r ~.8.8 5./ } ) TXO 4XO.2XJ `X5XI 3X-X1 8.n.' YX. : I I 5.&.%.& 5 5 f 5 q.X.fXtXt.rXd.rXtXtXtXtXjXt.rX*Xx qX9XxXX ).K.`X9.r.8 ~XxXg.XXjXjXt ~.8.8.` ~ 3.8XX } Y.G : $XI.u cX5X-.,X. =.! oXr._.1XhX= ^.CX6XA.FXq.FX+XZXKX1.`.K.` ~.k ~Xj.b.b.b.o.z.XXz.^ F e.k.r F F.8 F.r", +" ].t.AXg.k.r.` 3.8X1 B g.O.O.iXD CXL.).s s B ~.8.`XV.8 FXd.k.r.5.5Xo 4 A Q.K #.rXt.kXt.k |.R.R.X.r.k.r.8XI.DXl.9 c.`X- 3.}.uXX.KX3X9 3.k.kXt.kXtXj.^XtXt ~.8 ~.uX* ~.k.uXV 3XV 3 c.u c.u.H.k.k.k.XXk.XXk.zXk NXkXkX9Xk./.U./.zXg.IXk.I././.z.z.zXk.z q.zXkXk.I q.z.z.z.XXxX9XtXtX*Xj.k.^Xz.b.o.b.bXg.o N.o.oXg.U.c.c.c.c.c.c.c.U.U.#.U.U.U.U.U.U.U.U.c.c.c.c. .c.c.cXg.c.c.U.c.c.c l.c.cXgXg.o.b.b.b.b.b.X.b.b.o.b.bXgXxXz.X.bXd.k ~.`.`XX., mX.XwXUXwXUXr [X7.g.[.[X<.[X> JXi.s % ^.@.s &.9.'XK m.,XK y.jXr &X%.gXM m k $.eXc.2 : R a a.i #.l.lXBX+.x SXnXnXw =.WXL B C t.w x '.9 s.n 1.n.j.!.n 9.9.w 8.w.'.wXa.nXaXa.!.j., =.T yXnXK C.-XlXKXJ `XK.9XK 1XKXwXD.N.N OXi H ^XnXq.M.M.Z.M a R R t.e.e t R.~ a B.e.~ RX,.e.a.M.e BX1.~ $X-.a a hXqXp.@XC y y.nXl.D BX, $ RX, tXl xXD.n.9XKXw.> MX#XH.- DX3 } D.5.|.0.$ T ) 5Xg NXg.k.r.rX9 3XV.`XI.uX*Xt.8XV.}.a.`.` 3.r.r.^Xz.b.b.o.^.o.^ N.X N.o.oXz.b.bXz.bXzXz _ _.b _ _ _.b _.b.b.o _.b _.b.b.o.b.o.b.XXg.^Xj.rXt.r.` ~ ~.5.R ( D.5.R g Y.0X.XD.e.e :X- B.D s 'XcX5XI.u.K.kXoXo.k.k.k.k.k.k.kXx ~XtXtXt.rXt.r e.r.rXt.rXt.k.k.r.u.rXV.r.8XX.r.8.r.^Xg.^.r.r.rXt ~.8.`.` ~X9 ) | } YX. DXJ DXJXJ 3X3X5.O yXC.YX+ v = ^X6Xf ..mX4 EXe.[.[XK BXIXVXI F ~.k e.^.b.b.oXkXgXd F.`.K.r ~ ~.` F.8.8", +" 5 (.k.XX9.X.k ~.8XI ].' Y.2 $ x U.sXe.s.wX1.~ ~ 3.8.8.rXt.HX* 5X3Xt.k.X.2 I I :.k.k.rX*X*.KXx Y )X5.8 RX-XlXl :.5.aXI.,X9 3 hXV.`.K.k.8Xo.^ ~ ~.rXt.r ~.`.8.r ~.`XVX-Xx.KX3 :., D ) 5XXXJXo.fXx.&.X.X.XXgX9Xg N.b.o.o.oXk.c.U.c.U.cXgXk.UXk.X.o.^ N.b.b N.bX9.X N N NXjXtXjXtX*XtXtXj eXj.^.b.b.bXk.V.b.b.o.oXgXk.c.c.c.U.c.c.U.U.U.U.U.c.U.c.U.c.c.c.c.c l. .c l.c.c.c.c.c.c.cXg.cXg.c.c lXg l.oXg.X.o.X.b.b.X.o.X.XXg.X.b.X.XXVXd.H 3X5.2XJ.] T.! s s.jXwXpX+.- z MXr H S w 0.@.@.;Xi bXs C.eXD.e.*.).N.).s.YXB kXlXKX-.a ` I $.a a a.}.} # # xXpXnX4 M..XZ.jXP.9.' xXl x sXJ 8XDXs.nXK YXK =XOXUXcXl RXDX,.ZXsXDXLXL.9Xw n = v.N.* R tXIXM aX- <.e R.eXD a.* 8.) 2 2.@X2XnXp U U h.ZXc.Z a a RX5.e.e.e.a.e RX- BXD R :X5X,.Z $.D c.~X- a $XpXn H HXGXG.Z.Z $X1XD ' x x.DXG $.M x s.YX..j.,Xh ]., ) D I : IXo D 5XoX9./.k.b.k ~XVXD cXIX5Xl.H.H.k.`.H.`.`.8 3.u.r.rXtXj.b.o.b.b.o.bXz.b.b.b.b.b.b.o.b _.b _ _ _.b _.b _ _.o.b.o.b.bXz _.o.o.b.b.b.b.o.bXg.XXtXtXdXt ~.r.`.8 ~XVXxXIX1 B g TX5.w B R 3XI B.Z.n.0 D.DX-.H.r.u.uXdXd.kXd.r.r.r.rXt.rXtXtXt e.rXtXjXtXtXdXtXtXtXoX*.uXt.u.u ~ ~.r.8X*XtXk.X eXdXt.r.8.8.8.`.~ ~ # I.,.]X,XI R.8 R.`.`X-.aXl.0XL.= 2 G.@.4 0.C.@.y._._Xp 1 1.Z.uXI.k.H.uXo.X N.XXoXkXdXg.X.r.r.`.k.r ~.r.` ~.8 F", +".u.X.r N.^X9Xx.5 ( DXJ.DXl.9.w hXe.s 2XG hX-X* ~.r.uXVXdXt.r.k q V )X9.XXt D 5 f q ( qXo 3 3XV.KXJ :.9Xl.9 1 DX3.aXI 3.$XX.aXIX*X5XV.8.HXo.r.` F ~.r.r.k ~.`.`.8 ~.` ~ 3.u ) `X3 5 VXl ) ).R D q.&Xk.o.X.^.b NXg.b.o.b.b.oXgXk.cXkXk.cXk.UXg.b.bXg.b N.oX9.b.b.X.o.X.b N.kXt eX*XjXtX*XjXt e.^.XXzXk.o.b.b.b.b.o.cXg.c.c.c.U l.c.c.c.c.c.c.c.U.U.c.U.c l.c.c. .c.c.c.c l.c.c.c.c.c.cXg.c.UXg.QXu dXu.t d.t.t d Q A A.z ] X d A A ]Xo.2.uXxXJX. @Xy.G.>.q.jXr.Y.<XrXr.jX>.; & M w.;XfX0 o 0.N.W t h <.M.N 2 bX>.g .SX3 x `.-.a.aXD aXD h h h 3 # 1 .Y ..sXn.j.>X;XO.].0Xc T TX1 R R RX1Xl.0 ' s.' 'XM x c R B RX-X1.*.N.n 9Xw.j J G.= C <X-X- a a RX- R R BX, R 8 tXs 2 2.v.@XfXqX+ UX,XDXlXwXc.'XJ xXJ B a.eX-.eX-X-XDX- : 1X3 T ` :Xc.a R <Xq.YX4 & H v.n.Z :X,Xl x.Z s.MXD.wXU s.w 1 g n kXc.3 D.uX5XV.H.u.`X1X1.8.`.k ~ ~ ~XVXIX1.DXl x s s.Z.`XIXV.`.8 3.rXtXtXtXjXj.^.b.b.bXz.bXz.b.bXz.b.b.bXz.oXz _Xz _Xz.b _.o _.b.b _.b.b _.oXzXzXz.b _.o.b.b.b.X lXgXoXdXt.u.8.`.r F.8.rXV.H.H.HXo D.n 'XDX- cX-X-XDXl 'XUXdX1XIX1XdXtXtXt.r.rXt.kXjXt e.kXt.r e.r.r.rXtXtXt.rXtXtXtX9.r.r.r.u.r F.`.` ~.rXt.X.z.k.rXt.r ~.8.`.8.`XV.5.$X. $XI.uX-.`X-.`X-XI RXD.9 9 OXa 2 ^ z.@.<.<X+X< [.[X3X1 V #XJ TX5.k } 7.R.z.&.&X@ ~.r.r ~.` ~.kXV.8.8.8.8.8", +"Xt.5.H.rXt NXk f./ qXI.` R TXJ.w v.W vXq RXI ~.r.rX*Xt.HXVXd.k #X* 5 ) I.5X5.uXx.] ] (XX.uXIX1X,XDXrXh nX. k h.a.}.`.aXX.,XXXM 3XI.` 3.8.8.8.r ~ F ~ F.`.`.`.8X-X-.`X-.`XIXIX-X1X5.~XI.H.8XV.kXd.k.X.o N l.o.b.o.b.b _.oXz.o.b.o.o.oXg.o.UXg.b.b.b.o.b.o.bXg.b.b.o.bX9.o NXt.kXtXtXtXj.kXj.rXj.b.b l N.b.b.o.b.b.oXgXg.c.c.c.c.cXg.c.c.U.cXk.c.c.c.U.c.c.c.c. .c.c l.c.c.c.c.c.U.c.c.c.c l.c.#.tXu.A.t.tX .tX X X d.Q.t Q ].t X ] ] 5 (.] I.3 7.G @ @.G K.h MXZ z.1.; y.jX0.xXC S.j.;.; 0.=.N h.}.e.N.N.sX>XB .[.gX3.-XH [XM.lXM # #.l.i.lXM x `.YXr J.. 2.EX0 T.w 8X-.e a.e t R BX-XD $ R.a.e R.MX1XIX-X- R.e.eX- 8Xs.nXP n.- o /.N.*.* a aX-X- R R a R BXDX-.eXD C / /.v w.@.jXp xXs R.a.ZXl.Z : $ sX1.e a BX-X-.eXD a.aX-.aX-.a.e c.e t.aXp.Y.Y & JXa.W R $ DXcXK nXUXK.j TXU.nX. !XH m.[.>.G.OXJ.].]Xx 5X5X9XoXl.2X9XI 3X1XIXD.w vXG v OXm.0 :XVXd.kXo.^XtXk.^.kXj ~Xj.b.b.b.bXz.b.b.o.bXz.b.bXz.bXzXz.b _.b _.o.b.b.b.b.b.b _ _ _ _.X.Q.Q.R A.&X@.I.R.&.AX@ 5 D qX9XV.`.8 3 ~Xt.k.HXIX1 g ' '.ZX1X- 3XDXD.' TXJ.ZX1.`.H.r.rXtXd.rXt e ~Xt.r e ~ eXtXj e e.r e.rXtXt eXtXtXo.rXtX*XdXV.`.8.`.rXtXt.^.I.k e.rXt F.`XV.`.`X9X9., m.u RXI.e.`.`.`.~.`.8 B.Z.w ' O O.@.y >._._X+X<.T I.,X- k cXJ.$XlXo.& 5.$ q 5.I 5.KXtX5.`.` ~XVX* F 3.8 ~.8", +".uX9.k.kXoXk PX@ fX* ~.`X1.u gXw.j.j vXGXD.` ~X*X*Xt.rXdXt.r.k.KX*X*.K q } 5 q cXdXo.R mXXXDXD.9 v.Y.j zXZ kXM aX-XMX3 k V VXJXc 3XI.8.8.8.8X-X-.`.8.8.8 ~.`.8.`.`.8.`.8XIXJ I #.5.].K cXV 5.5 fXkXk.X.z.o.b.oXz.o.bXg.b.b.o.b.b.b.o.b.o.cXg.o.bXz.b.o.o.b.b.b.b.b.o.o.b.b N N.^XjXtXtXjXt eXtXj.X.U.b.X.b.b.b.b _.b.b.VXg.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c l.I.V.c.c.U.c.c.c.c.cXgXg.c.oXgXg.c.z.U.z.z.U l lXx.U.XXx.X.zXx.o.X.XXo.k.8XV.8XlXx T.2 ! = y.j.EX>X+XG vXn.j M.Y.EXr W.x W.x w.s.sXe t U GX=.=XpX7X7X#., `.[XH .F #.l.l.iXB XB :Xq gXGXG z.v 2 w.q y.n R B RX-XI.~ a R.e.eXc $.uXlX5X5.} 3 R.e.~.aXI.~.Z.wXLXU.-XK o /Xs C aX-X- R a B.a RX- RXI aXD 8 8 / G.v.B.;X>XqXq <.a R.eX,.e.*.e.e R R.eX-.eX- aXI a a aX-XIX-XIXD.a R 1XGX> &X0 9 v.Z RXDX,., :.9Xq x 1 $XwXlXOXKXK =XcXw.>XcXU D ) D q ( 5.2XJ T.9XD.Z.Z s s vXe v 2 2 JXJX3 m.R (X@.A.(.tXg.bXz eXj.b.b.b.oXz.bXz _.bXz.bXz.b.b.b.oXz.o _.b _.b.b.b.b.b _ _XzXzXz.c.6.f.tX@X@X@.f.&.& 5.AXx.$ qXV.8.`.8 ~.8.u.r.H.HX1.XXPXa s RX- RXI $ T.] !X5.H.`.`.H.rXd.kXtXdXtXt N.XXx.b.X.^ ~.rXdXt.r eXtXtXt.r.r.X.rXt.r.r.r ~.X ~XV.rXt.kXk.bXtXtXt.8.8 ~.8.`.5 : I.2XI.H 3.`X-.`.` F.~.~XIXI $ ' sXmX4.<X% >.FX+ [ : 3 3X-X-.}XIXVXV.`XVXt.r.k N 3.r ~XxX9 ( ) D q.$X3XV.H.8.8", +"X*XxX*X9 P.RXk.k.o.X.r 3.~ 'XUXPX0XwXmXK $ 3.`.k.r.r.r.rXtXd.KXt.K.8X*.r.k.A 5 Q.].uXI TXw K.9._XnX>X4XwXhX#XB ., VXX kX3XX V `.8.a.8X-.8.8.8X*X-X-.k VX* a.aX-X-X-.` R.$ : mXH ).KXx I I.u.f.| Q X QX .o.X _.b _.b _.b.b.b.b.b.o N.bXg.c.b.b.o.b.b.b.o _.o.b.o.b.b.b N.o.b.b N.^X*XjXtXtXtXt.^.U N.b.b.b.o N.b.b.b.b.o.o.oXg.c.c.cXg.c.c.c.U.cXk.c.c l l.#Xg.c.c l.c.c.c.c.c.c.c.c.c.c.c.cXgXg.cXgXk.cXg lXx.b.oXgXx.b.bXo.bXVXd.8.8.8X*., c ` m gXc.p.Y.j.< v h._ 'XeXp.Y.[.pXB >.xX6Xb.. * * G / 2.v.jXB.[.[.iX.XH n.jXB.[XBXBXB.[X7.[X+ g.Y v.sXC . 2 ^Xm s.]XD B.a BX-X- R a kXD m 1 m 1 ` m.5 R R R BX- R 8.w.wXPXw .-XGXL.s t R t R.eX1.e B.a R.eXI 3.e 8.N / 2.v ^.4XfXpXp < t R.eX- B R.e B.eX-.~ aX- R.~.}X-X- aX-.eX- cX, a U 1XG yXwX0XG.nX,XDXDXD RX,X, $.a.a 1.Z $XD sXl yXOXU H v b.MXK.HXV.`.uXVXDXD s v v vXL.WXa.N.s.sX= 0 $.}.r.uXo.R e.bXgXzXz.b.^ eXjXjXz.o.o.bXzXz.o.b.bXz.b.b.b.oXzXz _.b.b.b.o.b.b.b.b.b _ _.bXz.o.oXz.bXgX9XgX9.X.$ N.rX*.k ~ 3.8.8 ~.r.r.kXt.u.8.DXO.nX5X1.a RX- h.wXl.] 'Xo.D.r : q 5 NXtXt.r e.X.z.I.z.z.bXt eXtXj.r.rXt.rXtXt.r NXd.rXtXt ~.` ~ ~.`.r.rXtXg.XXt.r.r.8 F.~.`.8.k.u ] g.D.~XI.`.8.~.`.` F.`XI.`X1 T $XqX+.FX7XBX% x k.Z D ].]X3 3XV.K.K.5 N.5X9Xk.f.zX9.5Xk | )XX.$ 5 q I.r.k.r.k", +"X9 , ( PXxXdXtXtXtXk.k.8XIXV g.0 sXm.qXU.'X1 ~.r.k.rXt.k.r.r N.KXV q.rX*.kX9.kXk D.$ '.Z 1 y v.s.s.sX+ M.[X< 6 VXXXX V VXX X7X3X3 a 3X*XVX*.8.`.8.`.}X*XXX*X*X9.5.5.KX. } :.e c cX1X*XI.k.kXt.5.XXxXoXx.X.X.^.XXz.XXz.^.X.b N.X.b.b.o.bXg.o.b.b.b.b.o.b.o.b.o.b.o.b.o.b.o.o N.X.X.X NXjXtX*XjXt.rXg N.o N.b.X.b.o.bXz.bXz.b.o.o.cXg.c.c.c.c.cXg.U.c.cXg.c.U.Q.c.c.c l.c.c.c.c.c.U.cXg.U.cXg.c.c.cXgXgXgXgXkXgXg.b.b.X.o N.b N.b.k.r.8.8.a.`XV 3XIXcXc nXw M.<.YX% $.1.[.T k.d.S.F >.<Xr wXi.PXv.) 2 / / OX+.[.SXXXH.-.-XrXnX+.<X+X>.pX+X+ n.jXwXL.n.) CXv.) O H.n.' $X1 R.aXI RXD RXI.Z.aX, cX1XD $X, RXDX-XDX1 RXD.wXGXwXcXB.g &Xn.W.w t.eX- BX- R R R a.~ h.a t.N.N 2X6 wXf.C.CXnXpXq a a R.eX-.eX- aX- a BX-.~ aX-XD.eX- aX-X-XI.u a R sXp.Y & & & b.wXD.ZXD.aX,X, XD.}.a x.9 $ 8.w.n v.n y.4X=Xn v t.M.a 3.,X.Xw.-X0.E.@X>Xm.W.N.).).)Xv b.}.8 3 FXdXdXoXz.b.oXz.o.^ eXjXj e.^.bXz e.^Xz.b.o.b.b.b.b.oXz.b.b.b.b.o.b.o.b.b _ _.b _.b.b.b.b.b.X NXgX@.$ qX q qX*Xt 3.8 ~.` N.r.r.r.kXd.k.`.].0Xa.w B aXD T.0 4Xy.].2 (XJ )Xx I N.k.kXt.kXj.kXj.k.^XjXd NXt.k.kXo.^Xt.^Xo.^.XXoXo NXo.^.kXtX*X*.k N.^././ N N NX*.k.K.kXVXxXJ.%.|.ZX5.5.rXV.K.u.H.k.uX*.8.`Xt hX,.iX+XqX7XB h.2.5Xx ) : :X-.8.8X* ~.uXt.rXkX9 N.8.r.rX*.8.u.8XV ~ ~.8.8.8.8", +" 7 } qX9XtXtXtXdXt.k NX*.H.0 g.2.9.j.OXOXO.HXI.HXtXt.r.r.r ~.5.k ) P q.rXt.r.r.rXV )XJ.1 vXa.).) /XfXr n ` V., VXX.lXMXB hX, ` V kX3 |X#., |X*.a.`.8X-.KXXXJ., VXX.KXI | } DX3 D ).0Xx : (.$X9 (Xo 5.uXx (Xx d.z.z.t.Q.RX@Xg.R.o.I.z./.bXk.o N.o.b.o.o.o.o.b.o.b.o.o.b.b.b.b.o.b N.X.b.kXjXtXjXtXt.bXj.^Xz.b.b.b.b.b.o.bXz.b _.b _Xg.c l.cXg.c.c.c.U.V.cXg l.I l.c.c.c.c.c.c.c.cXg.c.c.c.c.cXgXg.c.c.c.c.o.o.oXg.X.bXg.X.o N N NXtXV.8.r.`.`.}.`.a 3 1Xw.1 M.p.+.+X+.h n =.O.YXHX+.pX:X> wXf ^X= 2 O O 0.v.jXZ kXM x VXc.j . ..s.. .Xn.4.@.@XCXm v.v.N.4.s.)Xi.j.'XUX, 8 Y $ :X, D.MXKXK.aXc.,.} ` kXc.eXw 8X,XH.*.w.w.' [ n.[X#.hX+ y.jXc g s : :X- R.e.a aX, R.N.d.) 0Xf.v.BX6 wXfXn.F.M aX1X1.~.~X-X-X-.e aX- a.~.aX,.eX- R BX-X1 3 < <XqXG.Y &.9XP.9 s $ c hX,XD hXl.a.} < $ 1 $ B 8.D.n.w J H...s..XnXL.wXw y.E.jXmXG.Y &.Y 9 C t C.NX=.WXG `.8.a ~.r N.b.bXz.b.bXzXz.^XjXj.b N.^XjXj e.^Xz.bXz.o.bXgXg.b.oXg.oXg.o.o.o.o.bXg.o.oXg.cXg lXkXgXgXk q.f.f.&.A.f.f.X.5.k.k.KXo 5Xx ( ( q 5 A ( !Xy.0.'X,XD sXU 7 K.2.|.0.5.KXtX*.5Xo.5X9.^.5 N N.^ N N.^Xo.^.^.^.^.^.k.^.^.k.k.X.k.k.kXd.r.H.r.H.8.r.r.r.^.z.rXt.r F.8.`.8.`.`X5 ( gX1 BX5.e.k ~.k.HX5 N.`X* #.K.8.a.} ._.i n.M.8.` B.` cXIX-.8.8.r.rXt.k.r.`.X ~.8.r.u.rXV ~XtX*.r.8 ~.rXV.r", +" |X9.5Xo.5Xo N N.^.^X9 )Xd :X..G @ 4.G 4Xy g.u c.5 NX9Xx :.$ ( P f I 5Xx.X N.5X9.kX,XKXKXG J.s % ^.@ n [.- k h V VXX kX3.i $ k.-.,.- 6 6 |X#.%X3 # hX3 V., V V VX3X- : 5.,.K `XJ.$XJ.$.$ 5 I.R.A I 5Xx.f 5.&.R AXgX@.&.6 ,X X .A.f i.&.oXkXg.o N.o.b.X.b.X.b.o.b.b.b.b.b.b.b.X.b.o.b NXjXtXt.kXtXt N.rXjXt.^ N.b N.^.b.bXzXz.b.bXz.bXg.c.c.c.c.c.c.cXg.cXg.c.#.o l.c.c.c.cXg.V.cXg.cXgXgXgXg.VXg.oXgXg.o.bXzXz.bXzXzXg _ NXzXz.^ ~.8.8.` 3X-X-.` RX-X,Xc.Y >X+.x W.pX+.YX+X+X+ >.i.dXG J w HXC.v.sXC H 0 9.; [.- xXl 1 1.-XnXbXbX=.s .Xb..X> & o O 2 G GXFX= bXC ' 'XDXD :X. 1XDXK h ` :.M.9.9.aXXXH s.eX. aXc.3.nXe sX+XwXpXc.1 =X0 M.wXGXlXcXc : a.a.a.*XDX, <.NX=.vXiX6.B.B.BXfX8X4Xp x 3 B 3 3X-X-X-X-X-XI.~.a R BX,XDX-X1XIX1 c c.a U 1XpXmX0 &XmXU.'Xw.Z `.0 1 1.9 h hX,XlXKXlXD.ZXDXaXG TX0X> 0 0 b b J.vXL..Xn.W._ v U hXs.Z U.d v v bXG hX*.k.^.X.z.U.U.U.#.U.#.zXk.UXkXk.U q.c.b./.b.bXg l.zXg.c.c.U l.c.c l.c.cXk.c.cXgXgXg.VXgXgXgXgXgXgXgX9XkXgX9 qXgXX.kX* ~ 3 ~.r.$.z I.R.R (.R.] )Xy '.nXDXDXPXU ! 'X1 B TXDXM a q.| ).kX*.k.r.rXtXt.rXtXt.rXtXt.rXtXt.rXtXtXtXt.k.^XtXt.rXt ~ ~ ~.8.8XtXt ~Xk e.r ~ ~.8.8 F.`.8.D.RXO.0.H '.`XV.K.8.5Xd.r.`.r.8X*X- a c.FXeXq.Y.~.`.`.`.` RX-.`.` F.k.r.rXk F ~ F F FX* ~XV ~.8.` ~.r ~.8.rXt ~", +".K.kX*.r ~Xt.r.r.r ~XtXx.] ) 4 Y m.2XyXO.! !.nX1.8X*X*X*.5 ) Y (XxX1 ~ 3 ~.K.r.uXV.aXl vXe.=XvX=X= 0.1X+XJ.K.aX*.,XXXB X, U .-.-.,X..SX#X. |Xh.%.,X3 XB.- X3XJ 5XX #.u 3 3 c.K cX*X5.5.5.XX9.5X9.5X9.X.5.z.5XkXk q q.z./ q.I q.z.IXg./XkXk.UXk.U.U.U.U.U.z.U.z.U.z.U.U.z.U.U.z.z.U.X.b NX9 N.X.z N.X N.oXk.U.U.UXk.U.z.U l.#.U.#.#.I.I. . .I.I. .I.I. AX@.Q. . .Q. . .I. . .I. .I.I.I.I.I.I.I.I.Q.Q.z l l l.z l.Q.z.z l lXx.X (X9.u c.H.u.uXl.u h s n.j.jX: rX:X:X:X: M MX+.p UX> w &.>.>.qX0 HX0 & &XU [X;XcXw.-XwX<.x . .._XnXn ^...@ & H &.E 0.;Xi 0 JX0XPXc.nX, 'X5 x x.9.Z.9 y h.9XK x x x.j $XK $XM $.j.'XK.>.[ [.j.E.j HXG s xXDXD.Z h.MX, U 1.WXL.s.v {.@ w L.B {.PXfX8.jX+ h.aXD 3 3 3 3X, hX-Xc c T 3.]XI.0XD $.uXl.a.}.WXpXp.;.q y.'.nXU.O 1XKXHXw.,XD h.Z.M.- n T.ZXD R.a x v o.q 9 0 /.= 2X=.).) u.) UX1 RX1 RX- a <.W.NXL.Z a ~ ~ ~.^.bXz.b.^XzXzXzXzXz.^ NXz N.^.r l.^.o e.rXj.^Xz.o N.bXz.b.b.b.b.bXz.b.b.b _.b.b _.bXzXz.b.b.b.b N N N.z N.b NX*.r ~.8.8 F ~Xt.r.r ~.r.rX1 T TX5.wX5.nX5 gX1X1.`.3XJXB } V q 5.R P.kXt.k.rXt e.rXtXt.rXtXtXt.r eXtXt.r.rXo.^.rXtX*Xt.8.8.8.H.8 F eXt eXt.k ~.8 ~ FXI.`.`.k.2XO.0.]X5.8X5X*Xt.~.`.`.kX-.8.`.8X* 3.9 vXn $XI.`.~.`.~.`.`.~ ~.`Xd.8.r NXk.` F.` ~.HXd.`.8.H ~.r.r.r.8 ~.r.`", +"X9.r.r.u.rXoXxXd.K )Xt ).&XJXoX5X1.%XOX$.O.> ! x.Z cXXXH.% T ) D.%.]XKXIXIXVXtXV R.a v xXL.s.)XF.s.x n `X3XM.}.} V `XB xXe.MXM 3XM x # xXlXwX#X.XHXHXc V 1 $XX XJX3.$., #.`.` 3 3XIXI ~.u.kX*.rX*X*.rXt.uXtX*.r.kXj N N.X N N.^.b N.b N.U N.b.b.b N.b N.b N.b.b.b.bXz.bXz.b.b.bXz N NXjX*.rXt.rXt NXtXt eXtXj.^ N.b N.b.b.bXz.b.bXzXz.b.b _.o.o.o.o.b.o.o l.QXg.VXgXgXgXg.c.cXkXgXg.c.c.c.cXg.o lXg.X _.b.b.b.b.bXz l.XXz.bXo e.K (Xl ).5 )X5 :XJX,XK 1 $ M zXpX8.<.<X4X4 SXrXq >.)XpXGXCXm b y 9XL v yXqXG yXUXw.2.jXwXrXpXb.).d.d p.).) ^ H JXC b 2 ^ / OXCXCXa.] R R.e a.e R.* R a.*.a <.e < aXD RXD a a.aXDXa.n yXw y.Y v v.. OXpXsXs t R a h R hXL u.NX= /Xv.vXfXiXbXF - -X=.{.xXnXpX, aX-X- R 3.aXIXIXD :Xc `XJ.,X.Xc D 5.0X5 a a EX4Xn H y o s R gXJX..jXJ.9.>X, U $.a n @ m., T kXK.9.w.nXCXC O O 0.@.@Xb p.W EXDXD.DX1 3.a a.*.WXaXL.ZXIXV F ~Xz.b.b.b.b _.b.b.o.b.b.bXg.b.o.^ e.^Xj.k e e.^.^.b.b.b.b.b.b _.b.o.b.b.b _.o _ _.o _ _.o.b.o.b.o.b.b.b.z.b.X.^Xj.k.r.r.8 ~.r.r.k.k.kXtXV.8.KXP.n ' $ 'XP.2 $XVX-.'.- h 3X*.k.KXo.k.r.r.rXtXtXtXtXtXtXtXjXt eXtXt.r.rX*Xt.kX* ~.r ~.r.H.8.r.` ~XtXt.k.z N ~ F.8.` F.`.~Xx (XP !XO.2X-.K ~Xx.uX9.K.KX9.K.5X9X*.` 1XG.}X-X-.~.`.`X-X-.`.~ F.`Xt ~ F.`Xt F ~.H.r.k.k.H.`XV.r F.8Xt.r.r ~.`", +" NX*X*.r.H.$.R.|.f 5.kX9Xt cX9 : ).0X5 @Xy.>.E nXq.3.YXc h x mX..G.O =.,Xw VXJ V.1Xw.>.WXeXL.s /Xi.;XrXcXBXJ.a c.[XMXB.Y h.Z $.M aXDXD.MX- tX,.9 1.3XHXcXHX3 k $XXXX )XX 5XM.` 3.8.` ~ 3.rXt.u.k.rXt.rX*X*Xt.r.k.`X9Xt.^.^.o.^.o N.o.X N.U.b.XXz.b.b.b.b.b.o.X.o.b.X.o.b.b.b.o.b.b.o.b NXjXtXtXj.r.X.rXjXtXtXjXj.^.b.b.b.b.bXz.b.b.b.b.b.b.b.b.b.bXz.b.b.bXg lXg.c l.c.cXg l.c.c.c.cXg.cXg.cXg.cXg _ _.bXz.b _.b.bXo l.X.b.b.bXdXo 5Xx.|XJX@.2 D f.].uXH $.1XZ.<X2.JXA pXAXp zX4X+._XG o HXUXa.!XL.n sXGXL s.9XPXO.!.'.EXw.@ %X= u h < p.sXn H 0XC w O ^.= JXC.nXP.'XIX1.aX-XD.e R R.M 8 R.MXD RXDX,X,XD.a.}X, $XK.9Xw [XH.1 M &.E z HXw M R t R.*Xp U.N.) /.v.v.BXfXfXb pXFXFXbXf.;Xf.@.Y C.e.a R RX- aX-.e.aX,XDX1XD :X5.KXl.5Xl 3.M < EX4.@ yXCXL.n.DXDX,.wXD.ZX,.w $ n.>.M.'XcXl sXD $ h :.- '.!XOXC.! J w.@ z.y.EXw = 1 TXJXJ.a.e.aXsXs sXDXI ~ ~.^.bXz.o.b.b.b.bXz.b.bXz.b.b.^.b.b.^.^XuXgXt.r.^Xj.^ N.o N.b.b.b.b.b _ _.b.b.bXz.b.o.b.b _ _ _.b.b.o.b.bXg.o.b.bXtXt.r.r.H.rXt.rXt.rXt.r.rXVXVXU.0.n.n g.].HX1XI #Xc xXB U.a.`.uXt.k.HXtXt e e.rXt.r.rXt.r.r.r.r eXt.rXt.^Xk qXk )Xx )X9.uXx.u ~.r ~.r.r N N ~.8 ~ F.8.8.~X5 gXP 4XPXO.H.u ~X-.k.r ~.r.r.8.8.8 3.~ `X5 a.aXX.8.`X-.`.`.`.`.` ~.r ).r ~.`.` FX5.R.$.| (.$.R 5.k ~ ~.rXV.8.8", +"X9Xt.r.r.u.K 5X9.K.r.KXx 3 q ,Xx | ) :.0XwXw.xXZ = [XG v yX0X.XHX..- o z 1 x `Xl.E.9.EXsXs.Z.s.....x M [ V.[ # VXB.-.,._X, h a.u R.a.aX-.aX- a.a R.a.a 3 `.lX3 3 #X3XX V.,X3.` 3.8X-.8.8.8.u.rX*.r.kXt.r.kXt.uX* ) q.X.r.b.X.b.X.b.bXz.b.U.b.o.b.b.b.b.b.b.b.b.b.X.o.b.b.b.o _ _.b.b NXzXjXt.r.kXt N.rXtXtXtXtXtXjXz N.b.b.b.b.b.b.b.b _.o.b _.b.b.b.b.b.b.o l.b.oXg.cXg.c l.cXgXgXg.o.b.o.oXgXgXz.b _Xz.b.bXzXoXzXzXg.o.bXo.bXd.r.k.k.r.H.H.D.H F.8X1.K R.9 n.gX4XA._._ .Xf MXp.pXG >XGX+.qXG.9Xa.w v.'Xc.9XG.!XU.'XaXL.;.@.s p U $ CXe *.@ & =XZXm 0 2 O 9.q oXO.KXlXI.~X1.~.a RX,XJX, T $ :Xs.Z 1 $.aXD.u R.w.w g.>.-.-., yXGXLX=XeXL.w R t t U v v.v ^XiXiXi.@ ^.v pXF u.)..X>.C.;X2Xr [.W.9X,X,X, T $ xXI cXl $XI.u.uX- c.e.` aX, x._X4X4 H H.n.nXlX;XK.9XcXwXl TXeX.XH $X,.9 t R R 8.}XD.Z yXUXC.>.>.qXmXn O 2 p.@.MXG.M B t t <XD.= v s B.8 ~.^XzXzXz.bXzXz _.b.b.b _Xz.b _ _.b.b.oXjXz.r.bXjXjXtXj.o.b.b.b.b _.b _.b.b.b.bXz.b.o _.b _ _Xz.b _.bXz.b.b.U _.b.oXd e.r.r.uXtXt.k.rXt.rX* ~.8.`.0XP.n.0 gX1.` ~.8.8.[XeXn .~.`.H.rXd.r eXtXtXt.rXt eXtXt.r eXtXtXtXtXt.k.5.A.A ).$ 5 f.A 5 5.`.8 FXt e.r./.k F.8 ~.8.`.8.`Xo.2.0XPXPXO :X-.`.8.~.`.~.`.~.`.~.`.~.`.8X-.~.u.8 a.8.`.~.`.~.`.8.~ q.8 ).`.r.8.`.r.5X9 ).K.k.K N F ~X*.r ~.`X*", +".X FXt.k.r.rXVX9 ).%X9 Y qX*.&X3.K.8X-XJ.jX0 .X8XrXrXp.j.xXwXhXc.MX4Xn.@ y UX- x O.s G U R U U 0.sX4X> [.YXX V.[.S.1Xr.O 1XlX5Xl ` cX-X- aX- R aX-.aX-.a a a a < a #X3 V.fX3.` 3.8.8.`.`.8.rX*.r.k.rXt.r.r.kXx QXxX* ~Xd e.^XzXz.b.bXz.b.U NXz.o.b.b.b.b.b.b.o.b.b.b.o.b.o.b.o.b _.oXz N.kXtXtXt.k N.r.kXtXt eXt eXjXz.b N.b.b.bXzXz.b.b.b.b.b.b.o.b _.o.bXg.o.bXz.b.o.o.oXgXg.V.o.b.b.b.b.b _.b.b _.bXz.b.bXzXz.b.bXg.X.bXz.b N.b.K.r.kXVXV FXdXV.H.8XI 3 a #.Y x E....XqXp.xX+.x >.@ J.E.;X+.9 s s.DXl.9 1XOXPXw `.nXLXCX>Xi.s.M x U.W / o H y &.jXC H oXC s.n.5.Z.u c cX-X-XIX- :XHXKXwXUXw.,XJXc.%X5X, R.w.n sXm m XM 1.[ yXn.=.W.W C t t CXa 2X= w ^Xf w wXi.v.).) U t.s ..4X8X>X>Xn [X< 1 1XJXD 1XlXKXlXcXl 3.e.u c.` ~X-.~ R $X+XpX4XnX>.q sXa.2.2XJ.O n.OXw YXD.9 # h $XM aX1X,X,Xe.w.w._ g.j.'.j.q & H J v.s /.) /.).W.W.* t C GXLXl RXV.r.^.b.b.o.b _.b.b.bXz _.b _XzXz.o.bXz.bXjXj.I q NXj.rXj.^ N.o.b.o.b _ _.b _.b.bXz.o.bXz.oXgXz _.b.o.bXzXz.b.c.o.b _XdXtXt.r.r.r.HXtXtXt.k.r.8.8.K.'XyXP.0.0.~.`.8.8 hXc E.F.<.u.8 F.u.r.r.r e e.r e e e.r.r eXt.rXt e.rXtXt.kXtXxXo.5.5.k.uXo 3.u.r.8 ~.rXj.X N F ~.`.8 F.` F.u mXO 'Xy.! m.8X-X-.`.`.`.`.~.`.`.~.` B.`.~.8X-.`X-.` a.`.`.`.~.` ~ ~.$.r.8.` F.8.8 ~ 3.k.8.8.8.`.8Xt.rXV.8.8.5", +".5.uXtX9Xx.$ I.| D ( ) (Xk.kX* ~X*XI.H.K.9XwXp.@Xq...j.;.+.TXG a.MXnX>Xf.jXp._Xq 2.).= C.e h CXqXF..Xp zX7XM XBX<XwXHXc.-XcXl.] | `X- RX- RX-X-.a.e.aX- a a.a a 3XXX3 V kXM #X3X-XIX-.`.8.` ~ ~.rXtXt.k.f ) 5XV.H F F.rXd e _.bXz.b.b.b l.o.b.b.b.b.b.b.b.b.b.o.b.o.bXz.b.b _.b.b.o.b.b N.kXtXtXt N.rXjXtXtXtXjXt e.^.b.bXz.b.b.b.b.bXz.b.b.b.b.b.b.bXz.bXgXgXz.b.o _Xz.b.b _.b.bXz.bXz.b.bXzXzXzXz.b.bXz.b.b.bXz.bXg.b.bXoXz.b NXk.&XdXtXtXtXoXtXV.8.8X-XI hX7Xe.mXeXq._._.<.xXr.x.<X4.x H.E.9.n.]XDXc 1.a T $Xc.Z.Z.w o H ^.s vXl.W.W.NXm H = HX0XG oXC 9.D.wX-.KX5X*XI #.KX-.aX1 :X,.aXD $XD :.]Xl.Z.aXDXa.n.!X..-X3 # 1.9.x.s 2.W 8 C.N.N.vX=.vXi ^ {.vXi / wXn.W x._XpX+.@ ^XfX>.@XpXn h t RX-.~X- B.}XKX, R a 3 c.u.`.~X-XD xXGXrX+X>X> H.n.0Xl.n x x.wXK.Z.w.aXl h $XDX,X, $Xe.Z.w.w.Z.W $.j.9 9.' 9Xm.qXC o 0 2X=.= /.N.WXw.jXG 9.a.8.r.r.b _.b _.^.o.b.b _.b _ _.b _ _.^.o.bXz.^ e.^.kXj.^.k eXj.oXz.b.b.b.b.b _ _XzXzXg./ i. .6.#Xz _ _Xz _.o _Xz.c.o _.b.^Xj.k.k.^Xt.rXt.r.rXgXx )X9 IXJXPXO gX5.`.`.rXI 3.-Xe EX4XMX-.`X*.r eXd.r e e eXt.r eXtXt eXt.r.rXtXt.uXt.k 5.$.5XJ.$., 5 q.5 ~.k FXt.rXkXx.r.8 F.8.8 ~.`.r D.0XOXPXP.| c.`.`X-.`X-.`.~.`.`.~.`.`.~.`.~.`X-X-X-.`.`.~.~.`.X.K.8 ~.8.` ~.8.`.8 ~.r.r ~.8.8 FXt.r.8XV.8.`X*", +"X9.r.k.$X5 I ) q.$Xo.K.r.rX*Xt.rX* ~.8.`.`Xc.wXc.xXr M M W xX,.a R.M.CXfXCX>XGXnX=.) 8 aXD R.M.w *.s ^X0.[Xp VXc x.ZX,X,.~XIX-X-XIXIX-.a.` R B RX-.a aX- 3XV.u.K.8 3XM # VX7 V.gXB.}XIX1X-.8.` ~.8 ~X*.k qXk.r.8 F F.H F ~Xd.^.^ lXk.^.o l.b.b.b.b _.o.bXz.b.o N.b.b.o.b.o.o.o.b.b _.b.o.b.b.b N.bXg.kXjXt e e eXjXjXz N.b.o N.o.b.bXz.b.o.b N.b.b.b.b.b.bXg.o.b.b.bXz.bXz.b.b.b.bXz.b.b.b.b.b.b _.bXz.b.b.b.^Xd.b.^Xx.b.bXz _ N.b ).&.&.f Q.&.|.R 5 I.2 V T :.GXc UXe.m.m ..x.x.xX4.{X>X2 &.+.j ' 1.w 3Xl :.ZXl.5 s.9 yXG &.@ 0 x 8Xe xXsXmX>X0.+ y 0 ^XC 9Xa.D t R.5Xl :.8XIX*.`.a.~.aX1XD RXD R c $X- R.Z.w.9 ! n TXMXMXM.l 1Xr v.s.N.=.N.N /X6.v LXf.PX=Xi p.E s.YXmXUXw y.+ J.sX6.@.4X> .Xn U tX- aX-.`.H.e.e t tX,X, #.`.eX-.} xXpX> H H & y.'.9 8XDX, hXDXG $.}XD $XDX,X1XlX, 1 $.w $.ZXeX,.wX, sXl.nXGXa s 9XC H o 0 0 0 O /X+ =XL 1XI.8.r.^.bXz.V.o _ _.c.cXk.b _.b _.bXz.o.o N.b.^ eXt lXk.^ eXjXtXj.b.b.o.b.b.b _.o _.b.o.c.U.U.U.c.o.b _ _.b _ _.bXgXg.^.o.^XtXd.k.u.u.uXoXx q I QXx (X*XVX- cXV.`.` F.8.8X* `.i pXq.Y.}XI ~XtXtXj e ~ e.r.rXt eXt eXt.r e.r.rXtXtXtX* 5.$.$X3 q V D ) : FXt F.r.r.^X9.r.`.8 F F.8 ~.`.5XoXPXOXP.2.0.~.`.`X-.`X-.`.`.~.`.~.`X-.`.`X-X-X-.`.`.~.`.`Xt.`.5.8Xt.8.`.8.`.8 ~ ~XV ~.8.8.8Xt ~.rXt F F.`XV", +".kX* 3 I q N.5XtXt.rXtX*X*.rX*.r.8 F.8.r ~.`XI.a sX+ MXpXc.WX,X-X1X,Xp.@ wXC.;.. pXe B.D.ZXI.} hXs 2Xn.;.[X7 k.i $ UX5 cX, cX, c h :.aX1XDX1X1XI 3X-XM : cX-XV #.~X-XM.FXM.F >X%.lXc.a RXI R.`.` ~XV.5 IX* F.8.8 ~.8 F F.r.k.R.&.( q.XXx.z.bXz.b _Xz.b.b.b.b N.o.b.b.b.b.bXz _.o.b.b.b.b.o.b.b.b.oXk.b.b NXz.^.^Xz.^.b.b.b.bXz.b.b.b.b.b.b.b.b.b N.b.b.b.bXgXg.b.b.bXz.bXz.b.b.b.b.bXzXzXz.bXzXzXz.bXz.bXzXdXt e.^ N l.b N.b N.b.^ (.b (XxXk.RXk.z.].k.5.k $ : KXw E.m E EXn.@Xn ^Xf.@Xn W yXU ! s T cXJXc.uX3XlXKX.Xm ! H.E.@ .Xs.MXD h x.9 b.+.> & oXCXP b vXD RX-XD R 3 # c c 3XI cX1 RX-.Z R T.8 x.* R s.wXcX.XcXMXM c.a # x.Y > 0Xv.v 2X=Xi ;XfX6 {Xi p..Xs u.W.M.w.Z.w.ZXe v.. -XiX6.{.J.F.i a.eX-X-.e TXl x.M.a.a.} c.~X-.eX,XpXG.j HXC.E s.w.DXlX. $XD.O.,.ZXw :.3XVXlXK 1XJXwX..MXK.3X.XD nX5X,.9Xw 8X5XLXL.n JXm H HXC.vX= GXG.YX5X-.r.r.^.b.o.c.cXg.c.c.c.U.V.o _.o.b.b.o N.b.b.^ e e.^XtXk.r.rXj.rXz N.b.o.bXz.b _ _ _ _.b.b _.b.o.b _.b.b _.b.b.bXg.bXg.^XjXx.A.X ) ).R.| I (XxXoXt.`.H.H.`.`.`.`.` ~ ~ ~XVXc.i E._X+Xc a 3.H.^.rXj.rXt.rXtXt ~Xt e.r e.r eXt.rXt.u.rXXX9 cXVXX c cXt.H F F.`.`XtXtXt.8 F ~.8.8.8.` F.`X1XVXP !X..2 3.a.`X-.`.`.~.`.`X-.`X-.`.`.~.`X-.8.e.`.`.`.~.8Xx.^.8.r.8.` ~ F.8.`.8.8.8.8.8 ~ ~.rXt F.8.`.`.X", +"Xo.rXt.r F.r.k ~Xt.r ~Xt.r.r.r.8.8.8.8 ~.~X* $XJ $.-.jX+XKXKXDXIX1XDXp.x.@ J...s..Xe CXDXI RX,X,.N p.sX0X%.[X<.S.S 6 kX-.-XJXBX-X3 c.uX#XJXlXw.$ T $ |Xl.e.%X* 3 h 6XMXB.gX7.[._Xq XDXI.`.8.` 3 )XlX3X1 3.` 3.8.` 3 ~.r V./.f.5.X.Q ,.Q N.o.b.o.b.b _.o.b.b.o.o.b.b.oXg.b.b.b.o.b.o.b.b.b.b.b.b l.b.b.b.b.X.b.b N.b.b.b.bXz.b.b.b.o N.b.b.bXzXz.b.b.b.bXg.oXz.bXz.bXz.bXz.b.b.b.b.bXz.b.b.bXz.bXz.b.b.^Xj eXt.rXdXx.oXzXzXz lXxXgXx.XXgXxXxXo.5Xt.5.u cX- #XlXq.9.F._ E.<XnXi 0 0Xf.< M.Y.qXOXD 'X- xXl `.uXl s.0XO M y.@.. 2Xs.* tXMXIXK o =.EX0 w o.q bXaXD RXI.a a.~XI.u.HXlX1X-XD $ R kXc m.nX.XPXG.j n =.OXc 1 c.}.aXMXMX+X%...s ^X=Xf.@ w.PXF.@ v MXG [XKXK.-X..Y ` 1.-.N U 2X= % .Xf.JXn U C aX- T `X.XJ.- `XKX,XD.~.`.a.MXGXG y H HXmXL.n.ZX, mXDX,X..Z UX.XwX. t :Xc 1.3.Z nX,.w.3X, tXJ U RXJX;X1 8XD.wXaXaXL 0 H 0.v G.).N sX,.H.u e.^.o.o.c.c.c.c.c.c.c.o.b _.bXz.b.b.b.b.b.^ eXtXj.^.IXjXt e eXj.b.b.o.b.b.bXz _.b.b.b _Xz _.b _ _ _ _.b.bXz.b.oXkXz.b.o.8 qX9.5.5.K )X9Xo ~.k ~ ~ F F.HX1.`.` ~.r.r.u.u [.[X% >XZX+X3 : q.&XkXdXt.r.r.u.rXtXd e.r eXtXtXt.rX*XtXVX9.$ V.$.,X3.f NXd.r FXd.` F.r.8.8.8.8 F.8.H FXI.`.8.~ c.2X.X; 'X-X1X-.~.`.~.~.`X-.`.~.`X-.`X-X-X-.`X-.` N.8 F.~.`.8.k.8.`.8.`.8 F.` F.8 F.8.r.rXt ~.8.`.`.a V", +" N.r.k.rXtXtXtXtXtX*.rXt.r.u ~.` 3.8.8XIXo ).] 1.-XD x : :XKXI.`.` R 1X4 b JX=.W p.W.DXDXDX1 3 U.M.s 0 WX<.[X7.L.-XMX#.[ # X3Xh 3 V # 3X.X1XD.] 1 #XI.% 3X1 | :.aX3XZXcXBX7XqXp._ E.l a 3XI c D TX1XVXIX1.~XIX-.` 3 # IX3.K.u 5 A Q.&.(.b.b.b.^.o.b.b.b.b.b.b NXz.b.^Xz.b.o.o _.b _.b _.b.b.bXgXg.b.b.b.b.b.b.b.X.b.b N.b.b.b.^ N.b.b.b.b.^.^.^.^ N.b NXg.o.b.b.b.b.bXz.b.b.b.b.b.b.b.b.b.b.b.b.bXz.b.^Xd.rXtXt e.X.bXz.X.c XX@ Q AX Q A f.z.7Xt ].k.%Xx : I KX<.1.lX4 J M ^.vXi.@ HX0.'.nX5 8.eX- 3X5.e R B B.D.'Xm y...).s 8 t R.}XM $.j H.> & b JXmXLXLX, a.9XJ.u xX1 g.K 'X5 cX-X-.,XlXJXUX;.> n ! !.q.G = ` `.i 3 #.l XBX+Xi ^XfXfXf 0 ^XnX=.j v.-XK 1.- $ :.-XB `.-.-.i C u p p %.CXf . vXD.* BXl.ZXIXD $X,XlX-.u.~X-.e U._Xn.@.@.EXr.E.s ' s g.'.*X. x.MXcXlX. 3.'.- TXG n xX,XlXc.Z.aXKX,X, :X5.K.~X- R.Z x v.j J.vX= H.=XL.w.u.8XtXj.b.b.c.V.c.c.c.c.c.c.oXz.oXz.b.o.b.b.b.b.^Xj e eXt NXg.^XjXj.r.^.^Xz _.b _.b.b _ _ _.o _ _.b _ _Xz.b _.b.b.o.o.oXg.b.^.r.^ ~ ~.` ~.5 P.5XtXt.r.` ~.8 ~.`.8 ~.HX*.r # $X#.TX4 >X7XHX. D )Xk A ~Xd.rXd.rXVXtXt.rXtXtXt.rXtXtXtXt.uX9X9X9.KX9.5.5 N.^.r FXx.r ~.u.r ~.8.8.8.8.`XI.8.~X-.8X-.] m TXUXlXlX1X1.`.`.`X-.`X-.`.~.`.`X-X-.`X-X-X-.5.X.`.` ~.8.u.`.H.8.8.8 F.8.`.8.8.r.r.r.r F 3.`X-X,.-", +".^.r.r eXj ~.rXt ~Xt.rX*.rXt.8.8.` 3XI qX9.% q.uX-X1.aXlXo.u.H ~ 3.H UXGXe.v.s.)XeXe.ZXDXD.DX,XD u.)XL.@ zX<X%.1 W.[.h [XB V.} # < XMXM `Xl.e TX3Xl 3 ` '.~ (XJ.}XJ.[ kXBXw.FXr.p.g.i .iX3 c ] c.HX-.`.~XI.8.~X- cXJ ( :.u.5 qXx f A.z l.^.o.bXz.b.o.b.b.b.o.X.b.o.X.o.b.b.b.o.b _.b.b.b.b.b.bXg lXz.b.b.b.b.b.b.b.^Xj eXjXj e eXjXj.^.^XjXjXtXt eXj.^.bXg.b.b.b.b.b.b.b.b.b.b.bXz.b.b.bXz.b.b.b.^Xd.^Xd eXt eXd.r N.bXo _.XX .&.&.&.tX@.t.& AX@Xx.&.$ ] )XJX5 `., [.jXpX2XC.=.E 0 H 0 = v ' ' BX1X-X-.K.a.~X- R.w.'XC H bXb.).a.a.a.}.Z s y MXC.O O J.q b.Z K.wXc T.2 m DX. gX; DXKX-XIXDX,.w.n sXU 9 o x.Y nXK ` x.a.a # # X>.@.@XfXiXi.v.B.)Xn.M.* CX1XD 3 BX, R.}.M.a < h R.a.* uXFXb.{.C.@X%X+ U R.eXl.~XIX, a RX-XIXV.~ t.*XeXpXq v.@.j y.9XGXm $XDX,.ZX5X,XDX,XD $Xl h x x $ $ h.ZX, cXD t R.eXI.~X-X-.` R.wXLXp.E 0X=Xv.s.) xXD c.r.r.^ _.c.U.V.c.V.c.c.c.o.bXz.V.b.b.b.o.b.b.bXz.k e.rXj././.k.k.r eXjXj.^.^.b.b.b.b.b _Xz _Xz _.b.o.b _.b.b.b.b _.oXg _.b.b.kXt ~ ~XX F.k.R qXt ~.^.r.r F ~.u FXVXVXx ) I.,.[Xr E .Xq 1XDXIXt.k NXd.rXdXV.k.k.k.rXd e.rXt e.rXtXtXt.r.5.rXVX*.uX*.r.k.^Xj.8Xt.H.H.H.8.8.8.8 ~.8 F F.H.`.` aX9 #Xw ! g yXU.n R.eX1.`X-.`X-.`.`.~.`X-.`X-X-.`X- ~.K.~.`.~.~Xt.`.8.`.8.8.8.8.8 F.8 ~.r.r.8.8X-.` <XM 1", +".^XjXt.r.rXjXtXtXt.rX*.r.rXV.8 3.8 : )X3.$.kXt.uXVXI cXI 3.KXt.H.r cXDXnXG O v.N UXq BXIXDX,X, < 8.W.)Xe.@.pXrXnXpXG nXB #.l.lXM x # aX-.*X- a R c.e.eX-X1 3X- <.i `XBXB n.[.p.g >.m >.} `.,XI.`.`.8XI.`.`.~ h.5.2.K R.u T.5 4.fX9.^ NXx.^.o.^.b N.o.b.o.^Xg.b l.b.^.b.o.b.b.b.b _.b _.b.b _.b.oXgXz.b.b.b.b.b.b.o.b.^ e eXj eXt eXt eXt.r e eXt eXt.^XzXk.X.bXz.b.b.b.b.b.b.bXzXzXzXz.b.bXz.bXzXd e eXt e.r.r.r.r N N.b.b.^.X.b.b.b.b.^.X.b N N.X.X.k.uXt.HX* 3.a $.Y.YXLXp &X0 J ^ O & 9.nXoX1X- RX- 3X-X1 RXD oX; =.+Xp MXe.j :XM.Y.Z.9 oXm.qXC 0 9Xm v $ s.w.nXlXDX, BX,X5X,.D R.* R R.w 1.>.O.G =XU.jXw nXcXc.u.}.} #.FXcX>XiX= /.B.BXb p U C a B.e RX1XIXI R.a a R < a a a.e t tXs p.PXfX2 z WXr.-Xc k :Xc D.Z $X1.eXVX1 R a a U..XpXn.@ & &.9 s TXa $.DX,.ZXDXl xX, UX,XG.wXq xX,.ZXVX, $X, R.u 3 3.~ B R $.w s H 0 2Xv.).).)XG aX5.rXj.b _.V.c.c.c.c.c.cXg _ _Xz.bXz _.b.b.o.b N.bXz.^XjXtXgXt NXgXjXt e.rXjXj.b.b.b.b _ _ _ _Xz _ _.b _.b.b.b.b.b _.o.cXz.b.b.r.r FXt.r.8.kX9.kXtXt.rXj ~XtXd.r.uXd q I.A.5.u x .i._ $XB )XJ.| (Xx e.|.X Q ) Q.r Q ~XtXtXtXtXt.rXtXtXt.k.k.kX*.r ~X*.^.XXj F.8.8.` ~.8 3 ~.8 F.8.8.`.~.`.`.~ 3 ) kXG y =.+.j.Z 3X- a.`X-.`.~.`X-.`.`.`X-.`X-.`X-.~.`.`.`X-X*.8.`.8.`.8.8.8.8.8.8 3Xt.H F FX-X-X,.Y.i", +".kXt ~XjX*.rXt.r.rXt.rXV.r.8XVXV DXX q ).rX* ~Xt.8 ~ ~.kXV.$ N qXtXo #.M.j y J u UXM RX,.Z.ZXD a <.W.) 2 v.@Xn vXi.s.j.j.F.F.l.l kX,.} R.e.eXDXD aX- RXIXVXI h.l X%.Y.FX+ > >.F.FX%.TXc.a.a 3.~X-.`XDX5Xl ( c cXI : 5 m IX9Xt.rX*XtXg.rXtXj.k e.^.^ NXx.zXx.(./.o N.b.o.b.b.o.b _.b _.b.bXzXg.c.b.o.o.b.b.b.b.b.^.^XjXt.^ N.b NXzXjXt eXtXtXd.rXdXj.^Xg.X.b N.b.b.b.b.bXz.b.b.b.b.b.b.b.b.bXz.^ eXtXtXtXtXt.r e.^Xd N _.X.bXz.X.^.b.b.^.XXz.bXx.bXx N.kXt.H.8 3XI.Z.Y.s b H.+ H 2.v &.!Xa 'XDX-X-X- 3XJXcX-.DXK.T.OX0 WX2X>Xq.- ., 1.ZXmXC.!.> b.+ !X; gXc ' '.'.' :XlX1.ZXD RX- 1.ZXc ! =.3 KX.Xc.j kXwXcX7XM.}.} h.l X+XnXb.)._Xb.j vXr.9., $ : s.ZXc.w ' sXDXJ c.,X5Xc :XlXl.- x....X:.{X2Xr.[ xX, x.} c h.a 3X- RX1X,.e R s.} t._X4Xp.E HX0 y s.'.Z.Z $.Z 1XDXD.Z $ x Xq $ xXeXI.ZXK $ TXK `X- 3 RX-.ZXL OXC 0.v.).; 2 *XL.D RXtXt.^Xz _.V.U.c.c.c.c.c.oXg _.b _.b.b.b.b.b.b.b.o.b.^XjXt N.^./ NXt.rXt eXtXj.^.b.b.b.bXzXz.o.b.b _.^.b.b.b.bXz.b.b.b.U.^.b.b eXt F.8.k.8.r.f N.rXtXtXj.k.X.r.$ q.fX@XxX*.u 3XM.Y.i x : # q.A.z.zX@ q.R.X q A (.R NXtXt e.rXt e.rXtXt.^.^.r.r.kXt.r.^.KX*.8 ~.8.8.u cXV ~.8.8 F F F.`.~X-.`X- 3 xXK vXw &XCXrXcX1.`X-.`X-.`X-.`.~X-X-.`X-X-.`X-.`.`.~X-.` 3.`.8XI.`.8.8 F.`.8.8 ~XV.`X1.~X1 R 1 1._", +".k ~X*.r.rX*.rX*.rXt.r ~.8 FX9 D q D c.rXtXtXt.r ~.8X*.u ~.A f f.R |.$.-XU & H.j.Y.,X5.Z.wXD a tXD CXa C v 0.s 2.= /XGX+XcXBX7X7.-X7X< kX, x x 1 :XM 3 a.e 3.`.} #.i .-.lXq EXq EX+ [X<Xh nXp RX- 3X- R :.,X3 `.a :X9 T.5X5XI.8X*XtX*.^.K q.kX*.r.kXtXx N.& Q.&./.z.o.^ N.b.o.b.b.b.b _ _.b _.bXg.cXz.b.bXz.b.b.b.b.b.b.^Xj.oXk./.IXk.^XtXtXd.rXt.rXt.rX*Xg.X.b NXz.b.b.b.bXzXz.b.b.b.b.bXz.b.^.b.^Xt eXtXtXtXtXt.r.X.^ NXz.b.^.b.o.^.o.^.o.^.b.b XX@X@.z.R.z )XkXx : ` oXw.O [X0.E.v w & oXG.n.K R.~ R RX. mXD $.ZXU.OX+..XF U.M t u.a.w sXmXC.O.G yXZ @.O.O Y @.G @ !X;.% : 3XI.aXl gXUXwXmXwX..,XB 1XK.-.gXcX3.i h hX, 1.YXcXn . ..NXe.jXU n cXH x g.9XeX.XGXKXJ R.3 : mXl T 'XKXK n.YXnX0..X6X2X4X4Xn.l a a.e.a a.a.` a.~XI : cXc XKXpXqXnXpX> & y sXK sX,X1.w D xXl.n $ $XG x.wXDXlXIXD.5 c.D 3.u a 3 R UXaXLXC 9 O.N /.N H.W xXsXIXo.rXz _ _.c.c.c.c.c.c.o _Xg _.bXz _.b.o.b.b _.bXzXz N.b e.o e.r.^ q.bXtXt eXtXjXz NXz.oXz.b _.b.b.b.b.b.b.b.b.b.b.b _ l.o.bXzXt.r.r FXo ~.r NXx.^XtXj ~X@.k.&X@ qXkXt.r.k.r.u 3 VXMXB #.`.8X*.b N NXzXdXt e.r.r.r.r eXt e.rXt.r.rXt.rXt.k.^XtXt e.rX*.^.^X9 ~.` 3X*XVXo 3.` ~.8.8.8 F.`.`.~.`.`X- 3.9XnXnXh.+Xw.Y.i aX-X-X-.`X-.`.`.`XV.e RX-.~XV.~X-X-XVX-.HX-.8.`X5.8.`X-.`.`X1.8.8.`.`.~ R h.Y x._", +".KX*.r.KX* ~X*X* ~X*.8 F.8 ~XV.X.k.uXt.uXt.rXt ~ ~ F.r.r ~.$./ 5.f.A 5XcXw H & yXc.S x $.w.aXD.aX, a U.M._Xe U.N.).N 0XG.jX>.EXpXGXp kXM.- ` :X,XX ` c.e 3X-.`.KXB .[XB.mXq._Xq.mX%XpXpXpXe Xq aX-.8 R 3 :X-.8 : q |X9.u F F.H.rXV.K ).& I.k.r.K.X 5X9.7 ) ).5.^XtXtXjXj.o.b.b.b.b.o.b.b.b.b.bXgXg.bXz.b _.b _.b.b.b.b.b N.XXg.X N.kXtXtXtXtXt.rXtXtXt e.b N N.b.b.b.b.b.b.b.b.b.bXz.bXz.bXz.b.^Xz N eXt eXt.rXt.r.^.^.bXo.^.bXzXz.bXzXzXz.b.b.oX@X d.t.tX@.Q.R q.R.] | :X. n vX0.@.@X>XC.!.' ' 3 B.a : $ $.*.w.w.Y KX0 n.x .XrXq n.W U 9 vXm.OXH g.9 m ].5.5 $ T 4 !.] 'X5X, 3 B.'.DXU s gX.Xc ` `XM .Y .- V 3 $ a h.Y.-Xn.... E.M CXDXD.D.aXD h U hXe t.i <.M.a.a x cXD 8 R U U U U U..XnXi ;.4XfXn.YX, < < a a.} < a.a a cX-.K c.i.a <..Xp.@.j H vXw sXDXDXJXc T DXHXl.9XKXK n 1.9 :Xl :X5 3 3X- aXD U.w.s 9XC.v.N.N.N t C.W vX- 3XoXj.o.b _.c.c.V.V l.c _XgXg.o _.b _Xz.b _.b.b.b.b.b.bXz N.X.rXj lXk.kXtXt eXt e e.bXz.b.b.b.b.b.b.o.b.b.b.b.bXz.b.o.b.c _Xz.^Xd e.r ~.u N.8XoXoXtXtXtXtXk./Xk.k.r e.rXj.rXt.k.r.K #.r.`.8.r.k N.b.b.b.bXzXdXj e eXt eXjXt e e e eXt e.r.^.kXj ~ eXt e.k N N.r.8.8XI 3 :X5 $X1X1X1XI.`X-.`.`.~.`X-.a.lXGXnXC M MXn hX-X-X-X-.`.~.`.~ DXV c c 3.5XVXl.`X3XI.5XlX5 3 5.KX5X5 c.K.K :.K.5 3 a #XcX7Xq >", +" V qXMX9X9XX.KX9X*.8.8.8.8.8.r.k.k.rXtXt e.rXt ~.8 ~X*X*XVX9X*.r.uXd.r 3 v v 0._X,Xl.MX,.n R.a.}XD tXDXDXe.M.a < t.NXG.s vXa.s 2.)XpXc.Y.} t a.a a.a 1.a.}X-.}XXXXXX.[ ._.m._X4 UXrX+XnXeXe p x $ hX,.G `XKXcXX :.K.8.` F.~.`XI ) 5.$.5XVX9X3XX 5.$ 5XxX9.rXtXj.rXjXj.^.b.^.o.b.b.b.b.b.b.b.bXg.b.b.b _Xz.b.b.b.bXz.b.b.b NXz N.^Xt eXtXt.r.rXt.rXtXt.r N.kXt.^.^.b NXz.b.b.b.bXz.bXz.bXz N.b.b N.b.rXtXt.rXtXt.r N.k.^.bXz.b.bXz.b.b.bXz.bXz NXz.b.^.b.^Xo.oXdXd ~X*.u.}.u.Z.9Xe.+.j 0 O.q 9.0.n R :XU.Z s.Z.ZXa.' =XrX>Xp.<._XnXrXe.W s.jXUXKXcX,X1X5 D 3.`X1X- 'XU ( $X5.uX,X- BXsXa s.>XK ` x XcXcX3 $XI.}.a h.9.-.x.... u <X1X1X1.0.w R U uX4 C._.iXe E < <.aXD t.* C C u u EXnXeX=XbX6.@X>.@X>Xq t < t t.M.} a a a 3XV.~ a t < t C .XGX>Xr.EXUXG 8XDXK.]XK DXwXH ! n gXK :XU : 'X1XIXI s x.ZXG v b & O.) b.9.W CXs.wX5XIX1.X.b.^ _ _.U.V.c.cXg.o.o.c.c.VXz _.b.b _ _.b.b.bXz.b.b.o.o.b e.r.r.k.oXk.^Xj.rXj.rXj.o.b.b.o.b.b.b.bXz.b.bXz.b.b.b.b _.UXz.bXz e.rXt.k.r ~.`.z.f.kXt.r.rXtXt.rXtXjXt.r.r eXtXt.r.^ ~.8 ~.rXj.^.b.b.b.bXzXzXz.^XjXjXj.^.b.^ e.r e.r eXt eXd.k eXj.k e.r e.^.b.r F F.8X1.5 xXl.w h $ U RX-.`X-.`X-X-XD.,XG._X4.J.F._.lXB h aXI.~X-.`.~X- qXc qXM (XX k.5.~ 1 ).,.5.K.H.] )XK ) DXJ.$ ` m 1 h X+X<X2 [", +" c 3 )XMX*.u 3 3.r.`.8.8 F.r.r.r.rXt.rXt.rXtXt.r.r.r.r.r ~.K.u.u.r.r.u.H s.s.W.W.i cXD.w x RXIXD.aXDXD cX, < <.aX, u.Z u.N * / / vX+ .9 x x x $ h.} #X, c 3 3 3 h # X7.[Xq >.xXqXq p [ U EXq.xXnXe.s vXn v.1X+.-.- `XM.8XMXV., ) B c `., # 5 I.u.KX*X*X*X*.rXtXt.r.^.^.^.k.^.b.b.b.b.b.b.b.b.bXgXg.bXz.b _.bXz _.b.b.b.b N.^Xj.kXtXtXtXt.rXtXt.uXtXtXt.r NXt e.r.^Xz.b.b.bXzXz.bXz.bXz.bXz.b.b.b.^.^ e.rXtXtXtXt e NXj.^.b.b.bXz.bXz.bXz.b.bXz.o N.b.b.b NXz.b.^XzXtX* ~.r 3 3 $ x.W.xXn.+ 0.qXl.] @ g '.9XwXP @ K.O y ! o.W 2 2Xp = = : 3 <.}.`XXX.X5XVXo ( 5.K.`XI '.!.0.5XlX1X,Xa.n.nXcX;XJXKXS.-.3.O kXK.YXHXc $ [.YXh.LXr.jXb U.MX- RX-.D.DXe v..Xn .Xp...m.d < t U.M.WXs.).)X=..XnX> M =.{ M..XpX>XpX>XG v 1 .9.FX, < <X-XIX-X- a < <._ ..@.@.jX>.1.>XcXc s.ZXD $.n.ZXD.w.ZXe.wX, R.D.a $.Z.n.9.!XCX0XC J.s.NXs.* v tXDXsX, R.u.r.K.b.o.oXz.c.c.U.c _.b.c.c.c.oXzXz _.b.b _Xz.b.b.b.bXz.^.b l.^Xj.r.r.kXtX* ~Xj e eXt e.^Xz.b.b N.b.^.^ eXj.^XjXz.b _.b.U _ _.X e.r.k.r ~.` ~Xo q NXdXt.rXt.r.r.r.r eXt e.b N.b.X l.^.b.^.^Xz.b.bXzXz _Xz _Xz _Xz.^Xz.b.bXz.^XjXj.^.^XjXj.^.o.r.kXjXt e eXz _Xd ~ F ~XI.DXl.nXL vXL.. xXl.aX1X-.8.~.`.}Xp._.m E.d.d._.l 1 $X-X1X-.~.8.~.~X-.`X-X-.8X-.` R.`X-X1X1X1.~ I : ]Xl.5 `X. :XcXKX+.1 MX+.J.mXA", +" kX*.,XX )X3 5X*.8.`.8.8.`Xt.r.r.rXt.rXtXtX*.rXtXtX*.r.r ~XoXVXd.u.rXt.8XG.s.)Xs cX,XD.D.w R.M a 3XI xX,.MX-X-.} a 3Xs.*.* C /.)XLXrXn.} h.a.aX, c hXl hX, 3.aXM.}XM.l X7Xr WX+Xn v [.g._._X4.x . 0..Xb ..@Xn.j >.F .[.l # :XIXD `.5 mXHX5 c cX9.$X3.rXtXtX*XtXtXt.k.^.bXt.^Xz.b N.b N.b.b N.bXg.o.b.b.bXz _.b _Xz.bXz.b.b e.r e.r.r.rXt.rX*Xt.r.rXt.k.r NXjXt.r.^ N.b NXz.bXz _Xz.bXz.bXz.bXz N.b.k e eXtXtXtXt.r NXj.^.b.bXz.bXz.bXz.bXz.bXzXz.b NXzXz.b.b.^Xz.b N.r.rX*Xt.8 #X-XG.W v MXmXP.nXU @XUXO.].0 D.2Xl 'XPXwXGXL v 9 b y.} aX*.} 3X*.rX3 cXVXd.H 5 )XVXI.H !.0.0.,X5.n.w.nXmXUX..SXH `XwXB yXK.9 :Xl xX3 $XK.[XwX%.@.T.Y <XD.DXDX, CXG.W.m .X>XrXn.m p.) pXq.W pXeX=.mX6Xp.<X4.jX+.j.p.pXr W yX+.@XnXGXnXp.YXq h tXlXl c.e h.MXeXpXpXpX2X4X+ =X..jXK y T C.D.ZXl.Z ' yXc s.w.w.' $.nXaXPXC.! o b w b.NXn C C.*.MXs.D 3 3XVXV.XXt.o.c _ l.c _.b.V.c.c.cXg.bXz _.b _Xz _.bXz _Xz.b.bXzXz.U.^.^XjXj ~Xj.rXg./Xt eXjXjXjXjXj.^.b N.^.r.r.r e eXzXz.bXz.#XdXz.& A.r (.8.`.5XVXtXx.r.r.rX*XtXtXtXt.r.r e e.^.b.b.b.U.^.o.b.b.b.b _Xz _ _ _Xz _Xz _.b.b.bXz.b.b.b.b.b.b.^XjXkX@.IXx l.rXj eXzXz.^ e F ~X1XI.w v.s 2 HX8..XG.D.~X-.~.8.}.a x ..i E u <.m x.9 x a.`X-.`X-.`.`.`X-X-X-XI.~.`X- R RXI.`.`.~ : :.5X5 `Xl c x.- z.<X2X8.<Xf.C.C", +".K.u.K.K #.k.K 3.8.8 ~.8 ~X*.rXt.rXt.rXt.r.r.r.r ~.r.r.8.8.K ~XVXt.u.rX1 s.s pXe xX- h xXD xXH $ nX.Xl x.uX, : cX5 :XD t < t.d.WXn.[ x h.}.}XI 1.l : $ #XX ` `XBXcXr nXr HXq._Xn U._X+XrX4.xXG.) p vXeX+X7 #XM.l 6XX.} c : T.ZXJ.u # ).,X3X*X*X*Xt.rXtXtXtXtXt.k N eXtXj.b.o N.b.b.X N.b l.X.b.b.b.b _.b _Xz.b.b.b.bXj eXtXtXtXtXtXt.r.rXtXtXtXt.r NXt.r e.k.b.bXz.b.bXz.bXz.bXz.b.b.b.b N.bXjXtXtXt e.rXt.r.b.^.b.bXz.b.bXzXzXz N.bXz.b.bXzXz.bXzXz.b.b.b.^Xz.^XtXt.r eX5XI xXGXe s.q.!X; 4.].ZXD 8.D.].2XVXIX1XD.w T.' xX,.MXD.`.K ~X*.r.rX* D NXdXt.k 5XX.`.Z T.] '.0 :.'.n.!XUXw V :XBXc x.ZX, R.Z.*X1X,XI.a a x.-Xw.@ M M n.-XB.-.j.jXr.<.1.g.p.pXrXn..X=X= 0X=.sX4.@XpXr.pX+.pXB.F XMXBXnXp.jXpXG HX> y.jX+.F._ U 1 UXw.Y.[ =.TX+.<.xXnX4.jXr.1XU nXGXKXG.D.W.DXmXc y.' o s.n s s v yXm OXa.=.= 2 v.N.j.j C.NXsXsXw 'Xo )Xx ).z.&.t.6. i.6. .6Xg.c.o.o _Xz.bXzXz _.bXz _Xz.b.b _ _XzXk.b.^.rXjXtXtXjXkX9Xj N.r eXt.rXj.^ NXzXj.r eXj.r eXz.bXzXz.#.oXz d.t Q.z fXx f.$.k ).^.rXt.r.r ~.rXt e e.rXjXj.b.bXz.c.b _.b _XzXzXz _XzXz _XzXz _Xz _.bXz.b.b.bXz.b.b.bXj.^.b.z.^.b N.r e e.^XzXz e F ~ FXI 8 x s ^.x.vXi J.9XDX-X-X-X- 3 x x E.m u E xXqXq : t.eXI.e.`.~.`.` R.`.eXIXIX-X-.`X1X1 3X-XV.~.eX- 3.e.e R.a x.JX2X2X4.CX8XfXf", +".rX* 3 3.r 3.` 3.8.`.8.`.r ~X*Xt.rXt.rXt.rX*X*X*XV ~.8.` FX5.H.k.u.r.HXI v 2.W._X,XD.W.ZXI 1XH :.,XHXH nXwXU.,XJ `X.Xl t.e <.W p v.j.F h <.a h XX.- XBXM xXBXMXBXK k.jXw.j.j y v pX+X%.pX4XrXpXe U C CXq.<Xp.pXM.l.l.l., | k IXH.5XlXM : `XX.u 3XVX*.uXt.r.kXjXtXtXtXt N.k eXt.^ NXz.^ NXzXz.bXx.o N.b.b _Xz _XzXz.bXz.b.bXjXjXt.rXtXtXtXtXtXtXtXtXtXt.r NXt e.r.^.^.b N.bXz.b.bXz.b.bXz.bXz.b.b.bXj e.rXtXt.rXt.r.o N.b.bXz.b.b.bXz.bXz.bXz.bXzXzXz.o.b.bXzXzXz.^ N N.k e ~XdXo.HXIX,XG s gXy.|.D.HX1X5.5 5 IXV ~.8.8.HXIXDXD.aX-XI.`.r.kX*XtXt N.r.fX@.rXtX*.r N D (.0 !.].%XyX.Xw.2XUX. D VX3X3Xc hXDXDXDXD cXI.a R.a 1.[XrX+XC._Xp._Xq WX4 .._ z.h [XM nX+.@Xn.s.@.s.@Xr.[X7 > x XM.l c # #XB.[.[X+.[.-Xr W.jXpXpXp.p.-Xw n n & zXrX2 >.mX4Xn n.Y y n &.YXG.9 x.9.'Xm g.> & s v y.qXC w.v.=.= G.NXs.w =X.Xe u C *XaX5 T ] ).R.&.X.tX@XuX X d. iXgXg.o _Xz _.b _Xz.bXz _ _.bXz _.bXz.b.U.bXgXj ~Xj.rXtXtXjXk.bXjXj eXt eXj.kXtXt.rXt e eXj.b.b.bXzXgXz.X l.XXxXo.k.k I qXt q.rXt.rXtXj.k e.r ~ e.r e.r.b.b.b.U.o _XzXz _XzXz.bXz _Xz _ _XzXzXz.b.bXz.b _.bXz.bXzXj. .z.z e.rXj.rXj eXz.b.b.^ ~ F.8.HXI R v.WX=...v.s v x R.`X-.8 3.}.Y._ E._ uXe.-.,X< R.}.e.2XI.8X9XVX-X-X- I : 3 R ` V.` 3XVXJX-.` 3 `X-.M.}.3.FX4.<.JXf.{XfXi {", +".rXt.r.r.8.8.8.`.8 ~.8XV.rX*.k.rX*.rXt.r.u.uX*XV.r.8 ~ ~.8.k FXV.rXV F.u b.s p s a.M $Xe.MX, 1X,Xp 1.9 $XU xXlX1X5Xl.Z.* < u U *Xq.jXM.} a a # #XB., k.-.YXB V.[.,XwXw.q y ' H MXpX4Xe.TX2.g MXr._XeXqXGXn.9Xp.[.l.F # X3XZ |X. R 3.~ `XV c.} 3.8XV.8XtXt.k ~XjXtXtXtXt.^.bXtXj e.kXj eXjXtXj.^XgXg.b.bXzXz.bXz _XzXzXz.bXz NXdXt e.r.rXtXtXtXtXt.rXtXt.r.XXdXtXtXt.^.^.bXzXz.bXz.bXz.bXz.b N.b N.bXtXt eXtXtXd.kXtXg N.bXz.b.b.bXz.bXz.bXz N.bXz.oXz.^.^.b.bXz N.b.b.^.^XjXt ~Xz.D.HXIXD.ZX; !.uX1XV.u.| ( 5.kXt.rX*Xt.8.`.8.8.8.`.8.r.r.X ~.rXt ~Xj NXtXtXtXtXV.8.u ].w : mX. YXKXy 'XHXK k }.[X3 VXM h cX5 c ` :XI.u <XXXB.g.+.;.s .Xb - {.B.B..X>.S.F.i 1 `.-.-.jXrXr.p.pXB.lXM #XXXX # # h.u 3 h # # X7.[X7XB.FX7 W.jX4XnXr >Xn.<X>X+.x MXr .._ .X4.j.Y.YX> M.q.Y 'XG s.9Xw &.j.j H.;.j H 0Xi 2 /.N.N C 8 aX, 1.*.M.W.)XL.D.8XV.u.r N.^.^ NXg.UXg.oXg.UXg.c.oXz _Xz _.bXz _.b.b _Xz.b.b _Xz.V.cXz.b N eXtXtXtXt.kXj.^. .k eXtXtXt e.rXtXt.r.rXj N.b _ _.b.#.b.b.b NXt.rXV ~.`.`.r.$ NXtXt.r.r.rXtXt e.r.r e e N.b.b.U.bXzXz _Xz.b _ _ _.b _ _ _ _Xz.b.b.bXzXz _.b _.oXz.^.^XjXk ~.k.r.rXt.^ N.bXz.^ e F ~.8.8 R $.Y o.) 0X6.. HX,X-X-.8 3.aXM._.s v.M xXBXh.OX-X-.u IXX.~ :X9XIX-XV I |.u.`.u.5.`XI.u I 3.`XIX3 aX- `.3.- . rX2.J.xXfX6..", +".r.rX* ~ F.8.8 ~XVX9.K ) 3X9XxX* qXk ) )X9.5X9.5.u.8.8.H.8.k.8XtXV.r.H '.YXL pXG <XD.w $XD.M U $ h $ a.aXD R.~X-.~ BXD.* a t.) vXp n.l.}.a t xXM.,XZXH [ n n kX. n nXc.'.nXLXG.j.jXe .X+Xn.<Xr.-.jXpXGXpX+.+.p k >.i V.SXHXJ.1XUXl RX-XV 3.`XI.8 3.8 ~X*.r.rXtXj.rXtXt e.k.XXtXtXtXj e.rXjXtXt NXg.X.b.b.b.b.b _.b.oXz.b.bXz.b.b.k.kXtXt.rXt.r.rXtXtXtXtXt NXd.rXt eXj N.bXzXz.b.b.b.bXz.b.b.b.b.b.b e eXj.^.^.^.^ NXk.b.bXz.b.b.b.b.b NXzXz.b.b.^.o.^.b.b.bXzXz.b N.^.bXzXj e e.X.H.H.uXVX5.R.Z.8.k.5 ).A q qXtXtXj.r.r.r F 3.r.r.rX*.^.b.X.^.^XjXj.kXt.rXtXtXt.H.H 3.k.2 'XIXV 3.ZX5 $X,.KXc | V., VXX.u 3 |.-X5 :X. V.,XH [XhXh.+.sX6.B.P ^.P {.v.@.pXM #XM :.lXMXBXpX+.-.gXBXM.lX3X3 D :Xl.5 :.K.` #XM #.l.l.l.l.iXM.[XrX+X> nXrX> y M & WX0 WX4 .._Xq.-.jXK yX+XrXr y oXG.YX0Xp..XnX>XCX> 0Xn / *.N C.* RX, aXD R.M.N C.s xX1.rXtXtXt.^ NXg.bXgXkXg.U.c.c.c.c.o _Xz _Xz.b _.b _Xz _.bXz _XzXzXz.c.oXz.b.^.rXj.rXjXt e.z.U.k.^Xt.rXtXjXtXt.r eXt.^.o.b.b.b.b l.b.b N.XXtXt.8.`.8.8Xt.r.r.rXtXt.r.rXt e.r eXt.rXdXz N N.#Xz _Xz _ _ _Xz.b _XzXzXzXzXz.b _.bXz.oXz _.bXz.b.b.^XtXj N e.rXtXt.^ N N.o N.X.^.r.^.k qXVXD.9Xw.> H z.@Xh v 1X1X-XVX-Xe.9XeXe E 1XG.YXK <.aXIX-.u.` ~.u.~.a ~X- :.8X-XIXIX-XVX- ~.`X-.a.a R < $.YXq >.p.{...{.@.v..", +".r.r.r.8.8.8.8 ~ c.$ V 5.k 5.,.KXJXJ., 5 |., 5 V.k 3.`.8.8X*XV.u.H.5.`X, yXnXn v.MX, h $ 8XD $ h $X- RX- a.~X- BX-X- 3 3XD h.w.) v.pXB # a R.ZXlXH.SXZ = ! ! =Xc.'XG.n.w.w.wXG &.<Xq pXnX+ z.x.. p.).d p.s._.s.jXB.gX< kX< kXcXcXcXIXIXIXI.`.~.8.8.8.8.H.rXtXtXtXt eXtXjXj.X.b NXz.b.^XjXt e.^.bXx.oXz.b.b _.b.b.b.b.b.b NXz.b NXtXjX*XtXtXtXtXt.rXtXtXt.r.5XtXt.r.rXdXj.^ NXz.b.b.b.b.bXzXzXz.b.b.^.^.^XzXz.^.b.b N l N.o N.bXzXzXz.bXz.bXz NXz.bXzXzXzXzXzXzXz N.bXz NXz.^Xj.rXo.r.^.H q.f.5.kXx 5 I.fX9Xt.k.r.rXt.r.r.rXt.rXj.^.bXzXz.^.o.b N.b.b N N.^XtXtXtXt.rXV.8.u ) mX5.8X1X1X1.`.0X# D c k., # h.}.[ `.} 3 3XI.a.}XMXp.[.j 0X6 wXf ; L.@Xf.<.- x.lX, # #.l x.l `XB #XM ` : ` : VXJXM 3 3 hXMXXXXXM #.i 1 X3XwX0.qX0.q.q n y &Xr H.j._._ E x.ZX.XrXrX>.;.; & MX0X+Xq.m.mXAXf...) v.d u.M.* a : 1 $ R.N 8Xs.NXGX, 3.r.r.k e NXg.^.oXg.c.cXg.c.c.c.V.bXz _XzXz _Xz _.b _XzXz _Xz _Xz _Xg.o.b.bXz.r.rXjXj e.k.rXtXgXk.o.r.rXt.k ~ eXt e.^.b.^.b.b.^.U.b.^ NXzXtXdXt ~ ~.8Xt.rXj.r e.rXt.rXt.r ~ eXt e.r.^.bXz l.b.oXzXzXzXz _ _.bXz _Xz _Xz _.b _XzXz _XzXz _.b.o.^Xj.r.bXtXt e.^.bXz.b.b.b.b.^.^.X , f D mX.XJX;.j.E.@ H 0 b.'XD 3 R.~XG W.1XnXq x.9 s a.a.`.`.`.~XV.K.`.`X-.8 a.`X-.`.`.`.H.`.~.`X-.`.a a t.9Xq.F >X2XAX4.4Xf.B %", +".r.r.8 F.8.8.8.r.r 3.rXX # 3XM.u c.u #.K #.u 3.8 3.`.8XI.8.k ~Xt.k.` D 1 =.E =Xe U $ $X,XDXD.M hXIX- RX- a.a.eX-X-.` #X-.M a.N.).W > .lXD.eX1 #XX.,XhXh.G.'X;XOXK.w.n.D.n sX+Xr v p pX4 zXrX>.J.. p pXF.d 2..Xn.pXM.S.lX7XcX+ 1 gX1X1X1.8.`.`.`.8XI.8 ~.rXtXtXtXt.rXtXj.k.b.bXz.b.X.b.^XdXj N.bXg.o.bXz.b.b.b.b.bXz.bXz.bXz.^XtXt.rXt.rXt.rXtXt.r eXt.rXt NXt.rXt.r eXt.^.b.b.b.b.bXz.b.bXz.bXz.bXzXzXz _ _Xz.bXz NXk.b.b.b.b.bXz.b.bXzXzXzXzXz.b.b.bXz NXz.bXz.bXz.b N.bXz.^XjXk.^.^ q.&.^Xj N.7 qX NXt.K F.^.kXjXt.r.r e.^.^.^.b.^.bXz.b.b.bXz.^.X.^.^XdXd.rXt.HXdXVXI F ` DXI.`.HXI.`.5 Y.K.aX3XJ.K # a.a < a t.a.H 3 3.iXMXB.p.@ ^ ^ {.B {Xi 0Xn.[ 1X,.} a h h # # #XM # 3 aX-.a 3 3 3X-.eX-.aXI a a.a.}.iX3X, ` VXB m.jXU.qXUXm b s b s.j.xXn..Xe $ xX,.Y n WX+Xn.@XnXp.F.m EXAXfX6 2.N U.M.a a B.e : ` $.MXs.N.N s h 3XtXtXj.rXjXx.X.o.b.c.c.c.c.c.cXg.cXzXz _Xz.b _Xz _ _Xz _Xz _Xz _Xz.b.c.o.b.bXzXj.b.^Xj N.^XjXt.o.z ~.I.^ ~ e eXjXjXj.X.b.6.6.z.IX@.z.fX@ A.&.X.z.8 ~Xt ~.r ~.r.r e.rXt.rXjX* e.r e eXz.b.b l.b _.bXz _XzXz.b _Xz _Xz _Xz.bXzXz _.b _Xz.b _.b.bXjXt e N.r eXj.^.bXz _Xz.b.b.bXoXo.$ q.5 :.uXV 3.9.sX>.; OXa v.9 $X-.} hXH =.p.9Xq vXq a #.~X-XV.k.`.8.~.~ R.eXI.e.`.`.~X- F.`.`.`X- < h 1.9.F._.yX2.mXn.4XfXi 0..", +" F ~.8 F.8.8 ~X*.rX*.5X9X9X3 qXX V V V VX3X3 # 3.8.8XI ~ F.k.rXt.r :X.Xc.>.EXw CXs hX5 t.DX, RX, a R.e.eX-.e.e.e.e $.a a.e C u.= 2.E 1 3 c.}XMXXX3 MXm.'XaXO g =XJXwXI.D.0 yXr v E E E.1XrX>.<.PXb %.mXb.)..Xp.Y.FXM .YXc.9.nXcXDX1.HXI.`.`.`.`.8.8 3.r.rXtXtXtXtXt e.^.bXz.b.b.b.b.bXz.^.bXzXx.oXz.b.b _.b _.b.bXzXz.b NXd eXtXtXtX*XtXt.r.rXtXt.rXd.r NXtXt.rXt.r eXd.^.bXz.^Xz.b.b.b.^.b.^.bXz.b _XzXzXzXz.bXz l N.b N.bXz.bXzXz N.bXz.b.bXz.b N.b.b N NXzXz.bXzXz.b N N.^Xk.X Q.tXgXo.X.X.& q.X N.^.k N N N.b N.^.k.^ N.b NXz.b.^Xz.b.bXzXo.b f A.&.R qXkXx 5.R ( D 5.5.$.K ` )XV.8XM.5X-.` #.$XMXM #.i 1 x.5.u #X1X-.}.l.l.[.[.4.@.BXv - - 2Xq.- xXM 3 3X- a aX-.a.a.}.} a.aX-X-X-X- R.~ aX1.~ R BX-X-.aXX `XGXc.S Y =.> g.nXG.wXL.n ' bXmXrXp._._ UXlX-.} xXr MXwX0.Y.@Xq._.m.m.J.sXv.N U <.* BX1 B aXD.*.W.N.).w sXD.u.rXt.rXd.X.o.o.b.oXg.U.c.c.c.c.cXgXzXz.bXz _ _Xz.b.bXz.bXz.bXz.bXz _ l.o.b _.b.^.U././.I.IXg.r e ~.zXk.r eXtXj.r ~ e.b.bX Xu.&Xu.( dX@ A.RX@.RX@ ~ ~.8.k q ).^.r eXt.r eXj.^.^.r e e.^Xz.b l _.bXz _XzXz _.b _Xz _Xz _Xz _ _.b.b _ _Xz _.b.bXzXjXt e.XXtXtXj.^.b _XzXzXz.b.b.b.^Xt.H.5.kX1 3XI.Z v.v.YXe.N.v vXpX-X-XI.9XGX+.TXn k W `.,X3 c.uX5 ( ` D ) D : :.5.,X- R.`XV.~.`.` x XpXq._XqX% >.m.m.<.C.@ O.s..", +".8.8.8.8 ~ ~.r.rX*.rXV.K.5.KXMX9XMXXXMXM #X9X*.8XI ~ ~ F.8.^.r.r.` 3 8.9.W.s.+Xe x n gX,XUXD.MX3XJ a T.}Xl cXKXc $ 1 .*XB.N.W 2.@X> 1.l.a h 3XM #.[ m o vXL.w.DXD $ ' !.'XU.j.Y.m.i.d.}Xq.d >Xf.JXbXbXb.vXb.s.pXB.l.i `.[XmXaXa DX,X1XD.8.`X-.`.`.`.8.8XVXtXt.rXt eXtXt.^ N.b.XXz.bXz.b N.b.b NXg _Xz.b.b.bXz.b.b.bXz.b.b.bXzXjXtXt.rXtXtXt eXt.r.rXtXt.r NXt.r.r.rXtXtXtXj.^ N.b.b.b.b.b.b.b.b.bXzXzXzXzXzXzXz.b.bXk.b.bXz.bXzXz.b.bXzXzXz N.b.bXz.bXz NXzXzXz.^Xz.bXz N.^Xz N.I d A.X N.b.^ NXg.^ N.X.b.bXz NXz NXzXzXz.b.bXz.bXz.bXz.^.o.^.b.b.oX&X@.&X@.&.R QXx ) 5 D.%XJ D ( I.$.5XVXx.8 3.`X9., $ #XJ [.3XJ., DXJ 5 ` V V.l XB.jXf.vXFXF /.).Y.Y #XM.aXVX-X-X-.~X-XI a.` R.aX- aX- R B a B RX-.* a a a a a R.a $ ` X.Xw gXa v.n.DXs 8.n s &.jXp._ hXIXI.}.M U E vXG.Y [Xe.i.m.JX6X=.) 8X, B B 'Xl R R a u.sXe.W 'XD.uXdXtXt.kXo.b.XXg.b.o.c.c.c.c.c.c.cXg.oXzXz.bXz.b.bXz.b.b.bXz.bXz.b _.b.c.o.b.b.b.b.UXgXgXgXz e eXjXt.^XtXz.r.r.r eXt e.^ N.bXg.b.bXgX9.b.X N e.k.r ~X*.rXt.^Xd.r.r.r.r eXt.^ N.^Xj e ~ eXz.b l.b.b _Xz.bXz.b _.b _.bXz _XzXzXzXz _ _ _XzXz _.bXj e e.r N eXt e.^.bXz _ _ _Xz.b _.^ N.r.X (.kX1.HXD b.WXGXrXL.) 0.j hX-X-Xl.9.jX<X+.yXHX<.- | cXV I.2 : ) `XJ.5.2 :X*.u.~X1XV.~.`.uXBXA.m E >X2.g.F.mXq ..x b.vXeXe", +".8.r ~ 3.r.r.r.rX* ~X*.r ~X* ~.u 3 3.u.u.u 3.8.8 ~.r 3.8 ~ NXV ~.8 h x s.W = v.MXH.Z.OX5.OX1.9Xl : 1., k.3 hXK.1.Y hXK.*.+.Y.N.s 0.@ 1.} a.lXX.[.[ yXO.' v.n.M R R.D.0XUXUX> pXe.d a >.F.x ..C {X6.PXfXf.@X+ .l x ` g s.nXa.!.n B.HXI.`X-.`.`.`.8.8 ~X*Xt.rXt.rXt e.^.bXz.b.b.b.b _.b.b _.bXg.o.bXz.b _.b _.b _.b.bXz.bXz N.kXtXt.rXt.rXtXtXtXtXt.r.rXoXt.u.r.rXt.rXt eXtXdXtXjXjXjXjXjXjXj.b.b.bXzXzXz _XzXzXz l.b.bXz _.b.b.bXz.bXzXzXzXz NXz NXzXz N.b.b.b.bXzXzXzXzXzXz./X@.X.b.XXz.b.b.b N.oXz.o.^.bXz.bXzXz.^Xz.b.o.b.o.b.bXzXzXgXz.b.^.^.z.U.zXkXk.b.k ).XX9.5X9 :XxX9X9.5 N I.r 3.8.`XM VXMXX `X#.,X#XHX# |.S.SX# V.lXB.[ ^ 2XvXF / 0.jXBX9 h.~ 3X-.r 3.K c.~X- RX-.~ RX1 R R.*X1X-.e RX-X1X1X-X-XI.a a $ ` ` nX. gXlXlX, RXD B.n s.E &Xn x $.} cX-.} < t <.a h s UXq EXf ^X= / CXD.eX-XD m.n a.M.sXG.s.- x c.u.rXtXd.IXg.X.Q.XXz l.cXgXg.c.c.c.cXg.V.b.b.b.b.b.b _ _.b.bXz _.bXz.b.b.c.o.b.b.o.bXz.o.b.b.o.^ ~XjXj eXt ~XtXj eXtXj.r.^.b.^Xz.oXz.z.o.XXz.^XjXjXt F ~.8 ~ 5Xx.rXdXt.r e.^ N.b.b N.^ e eXzXz lXz _Xz _Xz _Xz _XzXz _XzXz _Xz.b _.bXz.b _.bXz.bXj e N.^ ).rXj eXz.bXzXz _ _XzXz.o _.oXz.k ~Xx F.HX1 s xXLXn v.v 2.EXn._.n.eXI `Xn._.m EXB 1.a.aX-.~X-.`.`X-.K.eX-.~X- 3 aXIXVX-X- $ >.m p.J.JX<.F.m.mXAXf w OXn.n t", +" ~.r.r.r.r.r.rXt.rXt.rXt.rXVXtX*XtXtXt.uXt.8 ~.8 3.r ~.8 3Xo ~ 3XI.Y.w.W 2 =Xr x., mXU.D.OXK xXH `X5XK VXcXl.9XK.> sX+.-.E.+ 0.v 2.sX+ | 3 #XX |.[.O =.+.>XU.' R.a.~X- '.! =XpXe.m h EXp.hX+X4.CX6.CX8.;X: M.pXp ` Xc y.0XaXL.0.' RXDXIX-.`.`.a.`.`.` ~XVXtXt.rXtXjXt.^ NXz.b _ _Xz.b _Xz.b.bXg.o.b.b _Xz.b _Xz _.bXzXz.b.b.b.kXtXt e.rXtXt.rXtXt.rXt.r NXd.rXtXt.r.rXtXtXt e e eXjXd eXtXdXtXzXz.b.b _.b _Xz.b N.cXz.b.b _XzXz.b.b.b.b N.b.b.b.b.bXz NXzXz.bXzXz.bXzXz NXzXzXxXz _ _.^.b.bXz.bXz.o.^.bXzXz.b.bXzXzXz.o.V.cXgXg.oXg _XzXgXz.b.b.b N.b N.^X9 N.RXx 5 q., 5 I., QX9.|X9XV (.K 3XIX3 kX7X7.-., kXwXwXJ.-Xc.[.- ` .i .p OX=XF.) /XGXK.K #X*.KX3Xo.K cXt 3.` 3 : :X1XI R $XD R.eX-.~ R B.e.e <X- a.aXI x ` 1.,X;.O.OXwX5XJ $ ]XPXy.>.L.YXp.iX,.u a.a.a.a.a t R a <Xq E .XnXv.NXDXI.~.~.*XD t.N.NXw.TXJXH |.$.R.R q.6.(X@.tX . .6.c.c.c.c.c.c.cXg.cXg.o _.bXz _.b.b.b.b _.bXz _.b.b.bXg.o.bXz.b.b.b.b.o.b.^.bXz eXtXt.r eXj ~Xt eXt e.^.b.b NXz.bXg.b.b.bXjXj ~.r.k.8.8.kX9 NXd.r e eXt.^.b.b.b.bXz.^XzXzXz l _XzXzXz _Xz.b _.b _Xz _.bXz _Xz.b _.b.b _ _XzXz e eXk.z./ e eXj.bXz.bXzXzXz _ _ _XzXz.b.b.b ~.r.5XtX-.w .).W O.s.@.s . xXGX5 RXq ._._ xXB a.aX1XI R.`.`.`X-.8.` 3XI.aXc $XDX- < x.F E >.JX%._.m.m E..X>X> ^ O.M.a", +" ~X*.r.r.r.rXt.r.r.rXt.r.rXt.r.r.r.r.r.r.rXt.r.8.r.r 3.8.r.KXIXI.M.w 2.N.sXe 1X,.i 1X,XlXlXl $XDX,.e h.e R.}Xs U.N._ v.s p b.s 0 O.j.[.SXH.,XM kX3XZ.O.+Xh =.'.a aX1.e.'.'.jXwXnXe E U.-.pXn..X> ^Xf H.@ y n.[.- nXc gXP s.D.D.n.!.n.uX1.`.8X-.`.`.a.`.8 ~.rXtXt.rXtXtXj.b.b.b.b _Xz.b _Xz _Xz l.o.b.b _.b _.b.b.b.b.b.b.b.bXzXtXtXt.rXt.rXt eXt.rXtXt.rXoXtXtXt.r.r.uXtXt.r.r.rXt.r.rXt.r e.rXj.^.b.bXzXzXzXz.bXz l.b.b.b.b _.b.b.o.o.oXgXgXg.o.b.o.b _.bXzXzXzXzXzXz.bXz.b.^.z.o.^.^Xz.bXz.bXz.bXz.bXz.bXzXzXz.^Xz.o.V.oXgXg.cXgXgXzXz.c.b.b.^.b.b.o NXz.b.^.z.fX9.f q qX9 q 5 I ).R.kXV )XVXDXGX+.@.@X> & gXU g.jXC vXpX>.jXcXBXB.j 2Xv /.N.s y.-XXXX.K.K.K N DXoXo.KX5 q.] ` ` :., T TXI RX1X-.eX-X-X1 c.e a aX- 3XXX3XJXc !XH.2XcXl )XVX5 gXU =.;XG x x 3 :.Z xX, 3 #XDXD xXe pX4 ^ /.NXsX1.~X- t.M.N.N.=Xw.%XX ).$XxX3.&.f.&X@.IX@ A.6Xu l.c.c.c.c.U.c.cXg.c.bXz.b _Xz.b.b _.b.b.bXz _Xz.bXzXgXg.b.b.bXz.b _Xz.b.c _Xz.bXjXt eXt.r.r.rXt eXt.^Xz.oXz.b.b.cXg.^.b.^ e.r.r.`Xt.r.r.k.5Xt.rXt.r eXz.b NXz.b.oXz.b.bXz.U _Xz.b _.b _Xz _.bXz _XzXz _Xz _Xz.b _Xz _Xz.b.bXj e.^ NXk.r.r.^.o.b.b _XzXz _ _ _ _ _Xz.bXj.^ F.~ ~.8XD U v.s O.> &.sX=Xi y $.a a 1.F x xXpXDXDXI.~.`XIX-X- ~.8X-.8 R c .YXpXn a.FX4 E WX% >XAXAXA.J.<.4 0 2Xe.M t", +" ~.r.r.r.rXt.r.r.rXt ~Xt.r.rXt.r.rXt.rXt.r.r.rXt.r.r.r ~XVXo.8XIXDXe / / CXe U # $ c $ cXD R t RX- 3.~.a t R.*.WXs.sXpXG 0 J.@XC.E HXHXBXM h.- V `Xc M.qXw sXG.Z aX- a.H $ g.9 & vXe._XpXG.Y.p H.x H.j H bXn y.j.[.-XU y.Z '.D.w.n TXOX5X1.a.`.`.a.`.`.`.`.8.HXtXtXtXtXt e.b.b.bXz _Xz _ _.b _Xz lXg.b _.b.b.b.b _ _ _.b.bXz.^XjXt.rXt.r eXt eXt.r eXtXt.r NXtX*.r.uXtXtXt.rXtXtXtXtXtXt.rXtXtXtXt.^ NXzXzXz.^.b.b.^ l.bXgXg.c.cXg.o.c.cXg.cXgXg.oXgXgXg.o.o.bXzXzXz.bXzXz.bXzXz lXz.b _.b _.b _Xz.b _.^.o.^.bXz.b _.VXg.c.VXg.cXg.VXgXz.^XgXzXz.b.b.^.b.b.X.X N.X.r.r.rX*X*.uXV.k.r N.k.uXdX5.Z.D.EXn.vXi.@XC OXL OXC.E.v 2 2 vXG yX+ y.v /.).NXL.j VXXX*XXX3.$.K.8XV.`X-.~.~ ` cXDXD RXDX1 $ 3 3 3 3XD R 3Xc # c :Xl | V.,X3 3XK.w T c ).k.D.u.] vXrXrX+XqXh.wX.XDX..,XVX3Xc tXh x._XnXi.).) RXDX- t R U.N.sXKXl 3.rXt.rXj.rXkXg.^.bXz _.o.o.VXg.c.c.c.c.c.cXg.c.c.bXz _.bXz _XzXz.b _XzXzXz.b.b.b.c.o.bXz.b.bXz.b _ _Xz.b _.b.bXt.rXtXtXjXj.r eXt.^.b N.^XzXz l.b.b.b.b.r e.r.r ~.8XV fXx.rXd e eXjXz.b.b.b _.b.b _ _Xz.z _ _.b _ _.b _ _ _ _.bXz _.b _.b _ _ _Xz _Xz.o.bXj e eXt.bXt e.b.b.b N.b _ _ _ _Xz _ _Xz.b.b NXtXt.X 3X1 tXnXL 2 H M 0XFX= ^ v.9 : a x.FXwX;XJ T :.2 '.H I.K.,.5.] mX5X. vXpX>Xp.< > >.JX4 M.pX> SX8.<X8X6 2.. v.M.M", +".r.r.r.r.rXt.r.rXt.r e.r.rXt.r.rXt.rX*.rXt.rXtXtX*.r.rXt.u.uX1XD 9.s.= /.N.) xXe $ hXDXD.a.a R RXD RXDX- R a.*.N.N O & H.j HXCXCXC.E.j.S.3.Y kXH.3.1 =.> ! =X. 1 ` 1X1XVXlXK.n.j yXnXG.j.j.j.jX4XG J.E.EXeXG.'.' s.9 g.n.w.n BX,Xa s TXU.H.a.`X- a.`X-X-.8.8.8.r.rXtXt.rXj N.b.b.bXzXz.b _.o.bXzXg.o.b.b.o.b _.b _.b.b.b _XzXj e eXt eXtXtXtXtXt.r.rXt e.r.X.rXt.rXt.rX*.r.r.kXtXt.r.r.rXd ~.kXtX*.^.X N.b N.b.b.b N.U.^.b.oXg.c.c.o.V.c.c.c.cXg.cXgXgXg.c.o _XzXzXz.b.b.bXz.^.^ l.b.o.oXgXgXg _.bXzXz.bXzXz.b.b.V.oXgXgXgXgXgXg.VXg.o.oXz.o NXz.b.^.X.^.^ NXz.^.kXtXt.r.rXV.k.r.A (.RXx qXo I DXKX0 &X>.; ^ H bXLXaXC.E ^.v 0 2 2Xa v.j.sX=.).N v y V.$X3X9.uXVX-X-.a R.~.aX- a.5X-X- RX-XIX1X-.~.aXIXI 3.uXc.5X3 x k }XH., hXc.n.n 1XlX5.K.k.] ' gX0.xXp v n 1 !Xl T 1X,XM 3 :.9X+ p.JX6X=.) t U.e.M.N.NXG v s 3Xt.r eXj.r N N.X.b.o.b.bXg.cXg.c.c.cXg.c.c.c.c.cXg.b _.b.b.b.bXz _.bXz.bXz _Xz.bXzXgXg.b.b _Xz.b.b.b _.b _.b.b.b eXt.r eXt.rXt eXtXj.^ e e.^Xz l.o.b.bXz.^Xj.r.rXtXt.r.k.k.rXt e e.^Xz.b.b _.b _.b.bXzXz l _.b _ _.b _Xz.bXz.b _Xz _Xz _.bXz.bXz _.b _Xz _XzXj.rXj N e.^ N.b.b.b.b.b.bXzXzXz _Xz _.oXz.b.kXtX9X9X-XD.D O.=.v.s.W.WXFX=.sXGXKXI.a KX#XJX9 :Xd.' '.5 )XV.5 c.0.nXw.v ^.4 ^.JXf.T.{.; W.; o z.;XiX:X0 p v y.M 1", +"X*.r.r.rXtXtXt.r e.rXt.r.r eXtXt ~X*.r.r.u.r.r.r.r.k.r.u.HXd.HX1XU 2.N 2XL.) s U.M U.}.aX- a a.* BXIX- cXV.9.ZXa v.v.; wXG OXL OXa.EXw [XJ ` k n.> =.>.9X0 1 ` :.a :X-XIX5 $ xXGX>Xm y H y.YXGXL.w.nXa.nXa.ZXeXl s.n.n.wXa R R B.wXa.nXJ.Z.`.`.`.`.8.`.`.`.`.`.8.rXtX*Xt.k.^.b.b.b.b.bXz.bXz.bXz l.X.b.b.b.b.b.b _.b.b.b.bXz.^XjXdXtXt eXtXt e eXt eXtXt.r N.r ~.KXtX*XtXoXt ~XtXtXtXtX*XtX*.k.k.k NX9 N.o.^.bXkXz.^.z.o N.oXgXg.c.c.c.c.o.VXgXg.o.o.b.o _XzXz _XzXz.b.b.o.o.o.o.IXgXgXg.oXz _XzXz.b.oXg.oXg.oXgXgXgXg.cXg.c.c.cXgXg.o.o.^XgXz N.zXg.z.I.zXg A.z.IXo.5Xx )X9 ~.uXxXx.5Xk.5X9.5.5Xw.j HX>.E oXCXLXLXLXm.+X0 z J 2.= /.) 0 0 G.N.s vXcXM V 3X- R 3.e.e.eX- R aXI a.aXl.uXI 3.HX-.e R.~.eX- RX1.aXDXD.KXX :XHX3 : ' x.Z RX-.K.5X9 : s.> MX> vX4 xX,XDXD.M.a a cXD t.}._ EXnX6.) * C.M R U.W bXGXaXIXtXt e e eXj N.b.oXz.b.b.bXg.c.c.c.c.c.V.c.c.c.c.o _XzXzXz _Xz _Xz.b _.bXz _.b.b.bXzXg.oXz.b.b _.b _Xz _Xz _ _Xz.^.rXt eXtXj eXt.r eXtXt e eXj.bXg.b.b.b.bXz.^XtXj.8 ~.H.f.z.r e e eXzXz.b.b _.b.b _.b _Xz l _ _XzXzXz.b.b _.b _Xz.bXz.b.bXz.b _.b.b _Xz.b.b.b.^ e.r.^XtXz.o.o.b.b.b.b.b.b _ _ _ _.o.b.b N.^XjXo :Xd BX1 bX=.)Xi U.N.= / *XLXUXc :XIX3 D ).u.`.~.~.~.`.e.KX-X1.*XsXn.sX= wXf.@.@.y.x J.; o 2.@Xi OXp.@.WXs.YX,X,", +".r.r.r.r.r.rXt.r.r.r e.r.r.r.r.rXtXtXtXtXdXdXt.rXt.rX*.r.8.H.Z.'Xm.j.v.sXLXG v.@.wXs t t a.a a.a a RXDX5XJXc.! y H =X0.E & bXLXaXL s.>Xc.-Xc.-XwXU.'.9 s.n.M h.a a.e R ~.KXI.wXL v o.E.' vXa._XGXsXDXa.D 8X1.D R 8 'Xa.D 8X,XD.a.Z.0.]XUXVX1X-.`X-X-.`.a.`X-.` F.8 ~.r.rXt.k.^.^.^.^.b.b NXz.b.bXk.oXz.b.b.b.b.b.b _.b.b.b.b.bXz.^.^XjXjXtXjXj.kXtXjXj.k.r.^Xt.^Xx.z.rXx 5Xk qXx.XXoX9X9X9Xx ) ).kX9.A.$Xk.zXg.t.I q.f.IX9XgXk.c.b _ _XzXzXz.b.^.bXzXz.bXzXz _.o.c lXgXg.cXgXg.o.UXz.bXzXzXz _.b.b.o.oXgXg.V.oXgXgXgXgXgXgXgXg.c.o.cXgXg.b.o.^XzX X@ Z./Xu NX X@ 5.f ,.|.f (Xk.k.rXt.r ~Xt ~.8 3 ' g M.q &.+XUXU ! !X; =.> H w.s.=.N.= G._.W.N.)XG.j `XXX-X- RXD DXc c kX,Xc 3 `Xl mXc.,.KXcX- 5 RXHXcXJX,XwXDX1X,XMXl mXHXw sXl.Z R.aX-X5 c (.]XPXh M M n =.Y R h R RXD c < 3.a < x pX4X6 / * u U pXs s ' $XIXdXV.r eXtXj N.b.o.b.b.o.b.bXg l.U.c.c.c.c.U.c.c.c.b.b.b.b.b.b.bXzXz.b.bXzXz.b.bXz.bXzXgXg.b.b.b _.b.b.o.b.b.b.bXz.^.r eXt.k NXt eXt e.r e.r eXj.^Xg.o _Xz.b.b.^Xt ~X* ~.rXoXt.kXt.^Xz.b _.b _ _.b _.b.b _Xz l _.b.bXz _Xz _XzXzXz _Xz _Xz _.b _Xz _XzXzXz _.b.b.bXj e.b N.b.^XzXz.b.b.b.bXz _ _ _XzXzXz N.b.XXt.rXx.u.HX1XG.sXb.. U U C.= / vXG y :XK c.KX*.`.~ F.`.`.`XI.`X-.~.aX, 0.)XF ^.s.s %.s ^Xi 2XL.NXs.N.w.WXDX,.M BXD 8", +".rXt.u.r.rXtXt.r eXtXt.rXtXtXtXt.r.r.r.r.r.r.rXtX*.r.r 3 c D gXJ J =.OXCXL ^ bXGXn.w U t < a a.e a B.~X, 3XD.W v 0 b 0 vXC sXaXa.Z xXcXw n = m n s s.n.w.M R tX-.a a.uX1.KX1.M.ZXeXLXaXa.w.Z 8XDXD B 8X1.* RX1XD B 8Xs.* RX-XDXl ' ' T.2X1.`.`.8.`.aX-.`.`.`.`X-.`.8.8.r.uXtXtXtXj.^.b.b.b.b.b.XXg.b N.b.b.b.b.bXz.b.bXz.bXz.bXz.X.b N NXz N.b.b.b N.b NXd.bXtXdXk.RXoXkXoX@Xx 5Xx N 5 ) 5.KX3.$X9.5 N./././.oX@ d./.t.IXg.o.bXz _ _.bXz.b.b.o.bXz.b.bXzXz.b _.oXg.o.o.o.bXzXz.^.zXzXzXz.b.b.o.o.cXg.c.c.cXgXgXg.oXgXgXgXgXgXg.oXg.cXgXg.bXgXzXz./.z.z./Xx.^.R.X.I.0.X.z.]X9.u q.rXt.k.rX*.r.8.8 :Xy !XUXm =XyXU.0 '.' s v o o 2.=.N G U.s.).).NXG.- V.K aX1X1X-XK xXK kXDXHXHXKXc.u kXJ : Y 3.%.Z.'X1XcXJXDXD R.a x :XHX; g.'.ZX- B R c.u , : Y @.O = zXrXr xX,.Z.'.9 x.a < RX- U x.d.J ^ %.W U.).sXG v $.H.u.rXdXtXtXjXj.bXzXz.bXz.b.b.bXg l.c.c.c.c.c.c.o.V.b.bXz.bXz.b.b.b.b.b.b.b.b.b.b.b.bXzXzXg.oXzXz.bXz.b _.b.bXz.b.b.bXj eXjXt.^.bXt eXt eXtXtXt eXtXdXgXg.b.b.b.bXzXt FXtXtXt.&Xk ~XzXz.b _ _.b _Xz.b.b _.b _.b l.bXz.bXz _.b _Xz _XzXzXzXzXzXzXz.b _.b _.b _.b.b.b.bXj.r.X N.bXz.o.o.b.b.b.b.bXz.b.b.b.b.o.bXgXg N.rX5.H.`.e.wXLXbXp E.M C 8.W.=.s v g.'.ZX-X*.8.`.`.`.~ 3.`.`X-.8X- UXn.)X= 0 / O.N.) %.s.= G 8.* C R.M.ZXDX, R RXD", +" ~.rXt.r.rXtXt.r.rXt.rXt.r.r.r.rXtXt e.rXtXtXt.rXtX* 3.8X, mXl.W.Z.>.+.> o.E.q 0 v.s v u u.* < R a RX-.eXD.a 8.W.= J H.;X0XKXL.D 8.ZXlXc yXJ o s.w.w.a.*XD.a t <.aX-.`X*X1.~XI 8XsXe.n.w.D C B RXI.e B RX1 a cXD.Z.*XD.e R R.Z.'.w g.].2.~.8.~.`.`.`.`X-X-.`.`.`.`.8.8.r.rXtXtXtXtXtXj.k.^.kXjXt.X.o.X.b.o.b.b.o.b.b.b.b.b.b.X.b.b.b.b.b.b.b.b.bXg N.b.b NXx.r ~.r.r.k eXd.r.uXt.r.uX*Xx.5.u.uX* #X9.rXtXt N.b.^Xz.^Xk N.b.b.b.bXz.b.o.b.^Xz.b N.b N.b NXz.b.b.bXzXz.b.b.b.b NXz.UXz N.b.b.oXg.oXgXgXgXgXgXgXgXgXgXg.cXgXgXgXgXgXg.cXgXgXzXgXz N.^.^.^.^.b N.b.X fX9.2 D 5 (.r.5.rXt.r.k.r ~.8.`.O.G g !Xw '.'.wXIX1 '.Z.wXC 0 O /.N C C U v.).W.'., c.a a R R.9Xl 3XK 1 #X, 1 # ` RXJ.u : DXI 1XlX,.9 3 :XD aX,X5.,.,X;.q 1.D 8 c $.%.%.|.%.%XO.9XnXBXq x $XwXwX.XJ x RX- a.M.}XqXq.<XfXb.s.s.)XpXGX5.`.r.rXt.r.u.r.k.^.o.bXz.b.b.bXzXz.o lXg.c.c.c.c.o _.bXzXz.bXz NXz.b.b.b.^XzXzXzXzXzXz.^.b.b.o.o.bXz.b.b.^.b.bXzXz NXz NXjXjXjXj.^.k.r.r.r.r e.rXt.r e.r.o.oXz.^Xz.b NXj F F.` ~Xt.z.^ N.^XzXzXzXzXz _Xz.bXzXz.bXzXg.bXzXzXzXzXz.b.bXz.bXzXzXzXzXzXzXzXzXzXzXz _.bXz.b.bXk.bXg NXz.b.b.^Xz.bXzXz.bXzXz.b.^.bXz NXz.b.bXt F.H F.KXDXG.WXnXn 1 s g.WXa 0 O vXL.nX- 3.HX-.~.~.`.~ 3X-X- ~ a RXq.W.s J C C.N.W.s.N t.* tXD.M.Z.ZXI R 3 RXD R", +".`.8.r.r.r.r.r.r.r.rXt.rXt.r.r.r.r.r.r.r.r.H ~.8.8.rXI 3 3XU.W.n xX,.!X0 &.q &X0XpXe.sXLXGXe.M.e.e.*.e 3 aXD C.N.).@ H b v.n.0XI R R.w.Z s s.w.DXD BX- a.e.* RX-.eXIX1 c.`.e R.M.* R R B.e.~ B a.} aX-.e a.~ mXc.' 1 : $XlXcXP g 4 T.].] :.`.8.`X-X- RX-X-.`.`X-.`X-.~X-.8.rXt.rXt.r.rXt.rXt.r.r N.^.^.b NXz.^.bXz.b.b.b.bXz.bXzXz N.b.bXz N.b.b NXzXz.X.bXk.^Xt.^ eXtXt.rXtXt.kXtX*.rX3XJ q V q )XkX*.k.k.^.b.X.o N.UXz.o.bXg.c.cXgXgXg.o N.b N.^.^.^.^.b.b.X.b.b.b.b.b.b.o.b.bXk.b.o.bXgXk.U.c.cXg.cXk.U.c.c.c.U.c.c.c.c.c.c.c.c.U.cXg.bXg.X.b.X.o.XXgXoXzXx.z f 5 I 5 5XJXt (.k.kXtXt.k ~X* 3Xy.G.].n $.DX,XD 8 c R s.n y 0X=.=Xs u x n.jXG.sXc nX3.K.aXIX1.Z R R.a.a aXIX,.aXD R 3XD.} R `XD R.aXD.aXI.aX, RXM `.,.1.G yXP.DXD.5 c.% f 5 D 5 D XZXp [X..%Xl 1 xX, c cX,.aX,.FXq.x.@.v 2.s o.E x.u.5 N.bXo.5.5 NXkXkXk l.c.c l l l l.Q. .Q.#.I.#.I.U.c.c.c l.c l.c.c.c l l l.U l l l l.U.c.cXg.I.U.cXk.c.c.U.U.U.U.U.U.U.U.UXkXkXk.UXg.X N.X N N.X N N N.b.z.I l.U.UXk.U.o.kXo.k N.A.z.X.z.U.U.U.U.U.U.U l.U.U.U.U l.6.U l.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.#.zX@./.6.c l.U.#.U.U.U.#.U.U.U.U.U.U.U.U.U.z.I.IXg.XXtXX #.u.ZXmXmXGX+Xp.,.WXe.s.v b o TXVXX )XVXtXV.u.u.HXVXI.r.uX,XKX0.E.h y.Y.j &.Y.Y.9XKXlXBXw `.uX, cX5 xXD h", +".k.kXo.5 N.5 N N N.5 N.5 N N N N N.5.5.X N.K.k.kX*.5X*.u ' m.'.'XaX;.9.+.>.+ =X0 M.xXpX> yXm yXJ.YXJ.- VX, $.Z.E J wX0XnXG.'.wX5 $X5.ZXl.w $.wX,X,X,X,XVX,.u.}X,.}X5 `X9XV.H $XD.}X,XD 3 3XVX,XD c 3 3XD $.a ` D `X3XJXX k m ! @XO m D ] (.].u.u.uXVXV cXV.uXVXVX*.u.uXt.k.5.5Xx.X.X.X.X.X.X.X.X.z.z.z.z.z.U.U.z.U.z.z.z.z.z.z.z.U.U.U.z.U.U.U.U.U.z.z.z l./.UXk.zX9.zXk.b N N N.5.5.5 )XXXXXXX3XX ) NXxXgXk.#Xg.U l.6.z.U.z. . .I.zXk.cXgXg.X.b N.b N.b.XXg l l l l.cXkXg lXgXg.IXxXg l.cXk.#Xk.#.U.#.#.#.U.U.U.U.U.U.U.#.U.U.U.U.# l l.oXkXgXg.X q.R.z.I.RXg ( q q ) ) qX9.k.u.k.^XoXoXdXVXV.uXUXU.O s g x 'XK xXl T.' gXCXi.v 2XsXD.WX+.j JXLXw VX3XM 3X*.a cXI.ZXI.a RXI aXDXI RXI $X1XI h 3XDXDXDX-.}XI.a 3 #XM k.,X;XK.Y.w.u.k.2.5 c.r.K :X3XcX<XBXc 1.ZX5X5Xl x x hX, h cX, x._X4X6X= / 2 bXOXK `.k.KXt.kXd.u.^ NXgXg.X.o.o.o.o.o.oXg.Q.c l.U.c l.o.o.b.o.o.o.b _.o.b _.b _.b _.b _.b _.b.b.b.cXg.b.b.o.b.b.b.b.b.o.b.o.b.o.o.b.o.X N.^XtXt eXt.r eXt.rXt.oXgXz.b.bXz NXj ~ F.r.rXt.^.^.b.o.b _.b _.bXzXz.b.b.b _.b.c.b _.b.b.b.b.b.b.b.b.bXz.bXzXz.bXzXz _.b.bXzXz _.b.b.cXkXkXjXjXzXzXz _.b _Xz _.b.b.b.b.b.^Xz.o.oXg.b.r ~.K.8.aX1.D.!Xa.s._ C u t * /.=XLXG.a.}XX.8X-.~.~.~.~.`.`.e.`.~.' yXmXG.jXG x xXc.]XlXJXw n $X-.e t <XD.M h", +" ~.8 ~.rXt.rXtXt.rXtXtXtXtX*X*X*.uX*Xt.uXV ~XV.8.rXV.HXVXJ.].n.n $.>X..O !XU H M z = n &XC.jXG v x x `X, R t 8 C.v J H.EXe.w.a B.~X-.Z 8XD 3XD.a B R 3X- aX- aX- a 3X5.5.`.eX1.a a.~ aX-.`.e.e.a.8 aX- a aX-.e a.a.e a.8XI 'XLXUXOXO.] (.] (.] TX5XI B RX1X-.`X-X-.`X-X-.` ~.r.r.r.r.r.r.r.r.r.r.^Xd.^.^ NXz.^ NXz.b NXzXzXz.bXz.^XzXzXz.bXzXz.bXz.b.b.^.^Xk N N.^.b.^.^XtXtXt.r.r.r ~ 3.r.rX* 3Xt.r.^ NXz.z.oXz.I.zXu i.U.c.cXg.bXz.^.kXj.r.r.rXt.r e.r e.^.^ N.^XzXz.^.bXz.^.^ l.^Xz.^.^Xz.bXgXg.V.o.VXg.o.c.cXg.c.U.U.c.c.cXg.oXg.o.o.^.oXz N.^./.t A./ QX .& q.f 5 I.AX3.rXt.r.rXt.H.H F.` $.] = g.0X. T hXHXlXK :XK =XC w.= / C U XG.wXLXeXJX3XM.K 3.a 3.u.}.u 3 cXDX- 3.aX-X,XI #.aXD cX, 3 tX- h a h.a a #XXXJXK !Xm ' TX5 ' : 5Xt.kX*.K V # U.MXDXD $ $X,Xl.}.a aX-XDX,.l EXnX6X=.N.=XP T.u.$.R.R.f./.A./.A.&./.U.b _.b.oXz.b _.V.U.c l.c.V.c.bXzXzXz.bXzXzXz.b.b.bXz.b.b.b.bXz _.bXz.bXzXgXgXz.b.b.b.o _.b.b _.b.b.b _.b.b.b.b.bXzXt eXtXtXtXtXtXt e.XXg.b.o _.b.o.^Xt N FXtXj.r.bXz.b _.b.b _Xz.b _.b _.b.b.b.U.b.b.b.bXz.bXz.b.b _.b.bXz.b.bXz.b.bXz.b _ _.b.b.b.^.r e.^.r.^.b.b _Xz _Xz _XzXz.b.bXz.o.b _.b.b.I i N F )X1.8XI B.!XLXL v.) <.d.M.= 2 bX,.}X3.8X-.`.`.`.`.`.~.`.`.` BX5XG.) v G t t.a aX1X-X- R U.M $XDXD.e.a < t.W", +".8.` ~ ~.`.r.r.rXt.r.rXt.r.k.r.rX*.r.u.H.8.H.H.8.uXVX-XlXJ s.'Xs.M.w.-Xw.O K =X; =XZ.jX+X+._XL v.W h $ 3.8.e RXs.N o ^ H J.wXD aX-.~ 3 c 3XI.} 3 #.` 3 3.u.a.~X-X-XD.~X-X-X-X1.aX- aX-.e a R aX- 3 aX-X-X- RX-X- R 3X- RXl $.0 ! g mXPXP.!.0 '.0 T R $XDX- R.`XI.`.`.`.`.`.`.r.rXt.r.kXtXt e.rXtXoXd e.k N.b.b.b.b.bXz.b.b.b.b.b.b.b.b.bXz _.b.b.b.b.b.b N l.b N.b.o N.^.oXtXtXt.kXt.rX*X*.rXtXtXj N.UXk.#.6XkXg.z. X .I.c.bXz.o N.^.kXjXtXtXt eXtXt.rXtXtXt.k.b N.^ N NXz.b.bXz lXz.bXzXz.b.bXg.cXg.c.c.c.c.c.c.V. i i iXu.IXg.o.b N.^Xz.o NXz N. .XX@X@./.z.z.&.R q.X q.z.rXtXt.rXdXt.8.HX1 : T TX; v $XG c.9XD `XlX5.9 J H.v /XsXs._.jXL v 1.[X3 #.a.a.8X-XIX,X.Xl DXcXKX.XJ $Xc `.O : `XH : :.e TXK ` | $ <Xl V.,.O &XC yXrXK T.u (.X.X )X9 |.i._ h U hXD.Z.D.D c.a.a.} aX-.i x E.J.JX= / v.Z.H )XoXxX9Xx.X.XXk././.z.c.o.b.bXz _.bXz.c.U.V.c.o _.c.oXz.b.b _XzXz.b.bXzXz.b.b.bXzXz.bXzXzXz _Xz.o.o.bXz.bXzXz _Xz _Xz.b.b _.bXz _.b.b.b.k e.rXt.r.r.r eXt.r.b.o.bXz.b.bXzXzXj e ~Xt e.r.^.b _.b _ _.b.b _XzXzXz _.bXz.c.b.bXzXz.b.b _.b _Xz.bXz _XzXzXzXz _.bXzXz.b.bXzXz.kXj e NXj.^.b _ _Xz _.b.b _Xz.b.b _Xz.o.^.b.b.U Z.AXkXJXx :.]Xl nX>XL.W.w.* 8.W 2 2 0 8 RXI.8.~.`.~.`.`.~.`.`X-X-X-X,XG.W O *.) t u <.a RXD.}X,.MX1 RXI a <.M.N.)", +".r.5.` ~.8 F.8.8 ~.rXt.r.rXtX*.r ~ ~.$ 5Xo.$ D.5 I 3.%.5.GX;Xw.9 g.3XD kXl.n.w.' gXH [ VXBXq 2.).W t a aXIXIX1 t.N O ^ HXG.s $.eX1X1.5 c.u.K cX9XI.5XI.~.a.u.8.Z B 3.eX- R.eXI R.e.eX-.aX-.eX-.aXI.e.eX-X-.~ R aX-.~XD.~.n.Z.0XO.0.2.!.nXaXa.w.!Xl 'XK DXc 'XDX1X1X1.`.`.`.` ~X*.rXt.r e.r.rXtXd.^.k ~Xt.^.b.b.b.b.b.b.b.b.b.b.b.bXz.bXz.b.b.b _.b.bXz.bXzXk.b.b.bXz.o.bXz.^.^XjXjXj.k.^Xt.^ NXk.I.c.I i./.#Xg.U.c.o.U.b.b.bXz.^.^XjXt.r.r eXtXt.k.kXjXt.rXtXt.^.^.k.^.^.^.bXzXz lXzXzXz NXz.b.o.V _.b _Xg.c.c.V.c.c.U.U.U.U.c.o.b.bXzXz N.oXzXzXz.k.o.k.^.X.k N N.kXtXt ~Xt.rXt.r.rXt.r.8.8X9.O m g '.*.a.e.eX5Xl.~XD.e x.qXm.v /.) v.EXC.sXGXwX3XX.i.aX-.aXI cXD.3 1.-XlXc :Xl `XJXK k IXc IX..ZXD.- x :.- a.aXM., n.>.>.>.>.> nXw.HXx.^.k ~X5XBXMXq._ $.WX,X5.Z $XD.a <.a.} a h._ E..X4X=.s bXI.`Xt.r.r.rXt.rXjXz.X.o.bXz _Xz.b _ _Xz _.c.#.c.c.o.b.V.o.b.bXzXz _Xz.b _.b.b _.b _.bXzXz.b _Xz.bXz.o.oXz.b.bXz _Xz _ _Xz _.b.b _Xz _.b.b.b.^ e e.r eXt e.r ~ e N.o.b.b.b.bXz.bXt e.rXtXt eXzXz.b _Xz.b _ _Xz.bXz _Xz _Xz.U.b _ _ _Xz _.b _.b.b _Xz _Xz _XzXz.bXz.b.b _.bXz.bXjXj.r.bXj.^.b.bXz _ _.o _.b _.b _Xz.o.b.b.o.b l.I.f.& D I I :X3., n.sXsXLXD C C.W /.sXG $X,.`.~.`.`X-.`.~X-.~.`.`.`.aXKXn J *Xs.d t a.-XJ 3X5 ` 'XDXV h R U U.s 0", +"XV.r.8.`.r.` ~ ~ ~.8.rX*Xt.r ~.8XV.8 IXo.A c.5 ) ] 1 6XHX; m.O.Z g.1 xXM.aXDXs.nXGXw | X7X7 v.).W.N.M.* a.a.a.}.N.)XnXC y.w.ZX1.eX-.e 3.u.KXV.`.a 3X-X-X-X1 ` mX9 :X5X5X5 ` : :X5X-.eX-.eX-.~ 3X1X-X-XI.eX- aX-X- a 3X-X, '.0XOXP g.n '.w.n s g.wXw ' s.0 T TXJ.HXI.`.`.`.`.` FXtXt.rXtXt.k.r.r.kXo.k e.r.k.^.^.^.^.b NXz.^.b.b.bXz _.b _.b _.b.bXz _.b.b l.o.b.bXz _ _Xz _Xz.b.o _.c.c.#.#.6 i.6XgXg.c.bXz _.c.oXzXgXz.b.b.bXzXjXt.r eXj.^.^.^ N.b NXt.r.rXt.rXtXt.rXjXj.^.b.^.cXzXzXzXzXz N.b.bXzXzXz _.VXg.VXg.VXg.oXg.c.o.o.bXzXzXzXz.b NXz N.bXzXkXg.XXg NXX NX9.K.kX* ~.k.r e.r.r.H.`X5.|.3X..OXJXJ 1 x ` $XOXcXUXUX0Xm O /.NXG.O.WXG nXBXM # 3.` a.~X1X,XI t cX, hXDXDXD x.uX,.uXD :X,.5XD.eX, c <.} a h `.- n.G =X0X0 y.j T.uXxXtXg.kXJXH z.pXr.[X+Xe nXJX,.aXDX, R a.aX, x E._Xp vXn.M.H.r.rX*Xt.rXjXt.^.^.b N.b.b.b.b.b.b _.b _.U.U.c.V.V.b _ _ _Xz _XzXzXz _Xz _Xz.bXz.b _Xz.bXzXz _Xz _.o.o.b.bXzXzXzXz _XzXzXz.b.b _Xz _.bXz.bXj.r e.rXtXtXt eXt.rXz.b.b.b _.b.b.bXt e.rXt eXj N.b.bXz _Xz _Xz _Xz _.bXz _Xz.c _Xz.b _.b _Xz _.b _.bXz.b _XzXzXz _Xz _.bXz.b.bXzXt e.r.b eXzXz _ _XzXz _.o.o _.b _.b.b.b.^Xz.bXz.o.b N.H.0.H.` 3 :.w v b.w CX, x.j.W.).WXG 1.e 3X1.`.`.~.`.`.8.`.~.`.8 :X,XG 2.N C < B gXUX.Xc TX..'XJX. VXw & MX0", +" ~X-.8 ~.` ~.`.8 ~.r.r ~ ~.k.r ~.8.`.5 :.u ) ~ : ).KX5.3XJ ! 8.'Xa xXl.aXD.M v.n oXw.[X7 XB.-Xn.) *.N.* t t.M.M UXnX4 o H.n.w B.~.`.eX-.~X-X-X-X-.eX-X-.~ RX1 ` :XH c c # )XJXJ ` RX-.e RXD aX- 3 3 R.~ RX-.~X-X-X-.~ 3 R.0XU g.]XU.Z s.n.wXc.wXU K '.9.D s.0 g g.5XD.`.` F.`.8 ~Xt.rX*Xt.r.kXtXo.r.KX9.z.$.I.rXdXd.^.^.^Xj.^ N.b _Xz.b.b _XzXz _.b.b.b.b.U.b _Xz.V.U.o.#.#.c. .U.6 iXu.#.#.V.VXg _.b _.^.^.b.b.^Xz.U.b.bXzXz NXjXj.^.^.^.b N.b N.b.^ e.rXt.r.r e.r e.r e.^Xz.^ lXzXz.^.bXzXz.b.^XzXzXz _.bXg.VXg.VXgXg.cXgXg.bXz NXzXz.^.bXzXz.^.b N d.f.& 5.&.A.A./.f.K.rXt ~Xt.r.r.r F.8.8 T 4.0 ! 'X-XlXD 'XOXUXPXmXU HXC.vX= 9.TXeXe.YXcXl # # 3X- aX- RXDXD.a.e.e R R.e.eX1X,X, RX-.a.~ $XIX-Xl hX,X, hXM.,X..> & = 9X0 H.Y.- c.k.r.XX9XKXpXGX>XpXqXnXq.T.,.3.,X, c xXI h U [ xXnXLXp xXD.8Xt ~XtXt.rXtXt N.X.b.b.b.b _ _.b _Xz _.o.U.U.c.c.cXz _Xz _Xz.bXz _XzXzXzXzXzXz _XzXz.bXzXz _XzXzXzXg.o.b.b.bXzXz _Xz _ _XzXz.b _.b _.b.bXz.^ e e.r e.r.rXtXt.r.b.o.b.b.b.bXz.b eXt eXtXjXj.b.bXz _Xz.bXz _Xz _.b _Xz _Xz.U _Xz _.b _Xz.b _.b.bXz _Xz _.bXz.bXz _.bXzXz.b.b.b eXjXtXk N.o.bXz.^ i.6 i.6.#.c.o.b.bXz N.o.b.o.b.X l.X.H.0X9 3XI cXD.' 2Xa.W t.i.} U.) o.N g 8.a $.u 3.`.8.~.~.~ BXI ~ R B o.=.=.N 8.M.D.ZXDXI.}.a.K 3 c x.w.s 0 o", +".`.8.8XV.8XV.r.r.HXV.rXt.rX*.8.r.8.8.8.8.8XV.uXV 3XI c gXlXK.W B.W xXD.M.M s.w.'Xw [ ` XX XBX+...)XF.N.).N.M *.).s.s wXCXa.ZX1 R B.~.eX1X-.~.~.e.~X- R B.e R.e.~.eXl.eX-.e 3.u.a.e.~ B.u x.5XDXIXl 3 3.e R.~X-X-.`XI.Z : g.Z 'Xl xXl.nXl.0.! sXU 'X; !Xc gXP ! g.%X. '.~ B.`.`.`.8Xt.HXtX*Xt.k ) 5 5 q I q.k.r.rXtXt eXt eXt.^Xz.b.b.bXzXz _.bXz _Xz _.b l.b _ _ _ i i.#. i.6. .#.U.o.oXz.V _Xz _Xz.b.o.b _.bXzXzXkXzXzXzXzXzXz NXz N.bXz.^.^ N.^Xt.r eXt.rXtXtXtXt eXt.^.^Xz.cXzXzXz.bXz.bXzXz.b.bXz.b.o.oXgXg.oXg.cXg.bXz.bXzXzXzXz.^.oXz NXz.X N.XXgX9 NXXXx.k.KX*.k ~X*Xt.rXt.r.r.8.8.`.5 g.0.0.DXsX,.wXaXa b b.n J.9XC 2.v MXn o x nXMXM c c # aX-X-X-XD.eXDX-.e aX- RX-.e RX-XI.~XI RXDXI B x.'Xc `., |XhXHXU =Xh.>XZ HXZ.> ,XxX 5 } T =Xe.JX>X>X4 > W.i.-.S.].%XK.,XK nXh M.j x TX, 3.rXtXt.rXtXtXtXj.b.b.b.b.b.o.b _.b.b.b.b.V.U.U.V.V.c _XzXz _XzXzXz.bXz.bXz.b.bXz.bXz.bXzXzXzXzXz _Xz.c.o.b.b.bXz _Xz _Xz _Xz _.b _.b.bXz.b.b NXjXtXtXj e.r eXt eXg.o.bXz.b.o.b.b e.r e.r e.^.b.bXz.bXz _.b.b _Xz _.b _.b.b.c.b.bXz _Xz _Xz _Xz _ _XzXz _Xz _XzXzXzXzXz.b.bXz.b.X.^.^Xg N.b.o _ _.o.o.cXgXg.o.bXz.b.oXz.b.b.^.X.b.o.XXdXV :XV.8 cX1.wXL.sXL u < <.}.d.j 0X0.>XJX#Xh )X1X-.~.8.`.`.HX1 BXs.!.=.= 8.M R t t R t < < a.eX, R.N.) O J", +" ).KX3X9X9X9XxX9.RXxX9XtXt ~Xt.z.5 3.8.8.uXV ~.uXVXIXV.2XU g.W.' s.Z $ R.Z x vXw nXB XX.l # .- >.sX=.N.= / *.) *Xb.vXCXm s ' 8.H 3XV c c : $ cXD cXD $.e R.e tX-.~ 3 3.eX-.a cXl.eX-.eXlXVXc D : k :.3 $.e RX-XIX5 # 3.~Xl.ZXl '.5Xl :XK.' T T '.DX;XK.2.0XUX;XO.OXy.].DXIX1X1.`X1 ~.8XV c ) qX3Xx.KXt ~.r.rX*Xt.rXt.rXt.r eXt.^.b.bXz.b.b.b _.b _XzXzXz lXgXgXg.o.#.U.U.U.U.U.c.c.b.V.o.cXzXz.b.o.bXz _.bXz.b.b.^.c.b.b.b.b.b.b.bXz.bXz.^XzXzXz.^ e.r.rXt.rXt.rXtXt.r eXjXz.^XkXz.^Xz.bXz NXz.bXz.^.b.o.cXg.oXgXgXg.o.b.bXzXzXz NXzXz.^.bXz.b.^.fXgXkXXXk qXk ) q.5X9X9X*.r.r.rXt.rXt ~X-.`X1.2XP '.Z.wXaXa.n 9Xm &.!.E o.E /X>X=XC.W.[X3 # #.a 3.5X-.~ a.~XI aXIXl $.uXDXI $XD.e $ $ h $.~ 1 R x.Z.Z $ a hXMXJ., y.OXZXrX0.; x.- $X9 (.RXx xXn.s.s..X4X2.p._XA x.w c $X, h Xr s.YXK.u.} ~X*.rXt ~XtXtXt N.b.b.b.b.b.b.o.b.b _.b _.c.U.U.c.V.c _ _XzXzXz.bXzXz.b.b.bXz.b.b.bXz.b _Xz _XzXzXzXzXg.oXz.b.bXzXzXz _ _Xz _XzXz.b.b.bXz.b.b.bXj e e.r eXtXtXt.^Xg.o.bXz _.bXz.bXt eXt.r e.^ N.b.b _.b _Xz _.b.b.b _.b _Xz.c _.b _Xz.b _.b _XzXzXzXzXz _Xz _XzXz.b.b _ _.bXz.bXzXk lXk.o.^ _Xz _ _ _ _.b _.b _.b.b.o.I.b.b _ N lXgXzXo.H.HXI ~X*XIX5XL.=X= U.a < a u G.v 9 HXGXc TX, a.`.`.` B.` '.HX1XD bXa.= J.M s.w R t a a a c x.i.*.M.=.v J", +".$.K D 5 ) I.R I q q.z.H.rXd.K.$Xx ).5 5 ).$XJ ).| :XJ.|XwX; !.'XK.Z.n.9XL x.jXwX3 x # h.l #.lX3X2..X= 2.v.s.s.s.sX=.vXC bXa.D.~.~.eX1 cX5.,X3.,.5 ` c k.e a a BX- a.eXl.e.~ 3X-.`XI.a.8.e.uX1XIXI.K.5XIX5.K.e 3 $X-.e.a.~ $ BX5XI 8 RXD.Z '.n.nXa.Z.nX1XI.a 8 $.n.nXlXJX5.~.~X1.H c.`XlXx.5 D.uXV 3.`XV.u.kXt.rXt.rXtXtXt.rXdXt e.^.b.b NXz.b.b.b _.b.bXz lXg l.UXgXgXgXgXkXgXg.cXg.c.c.cXg.c.cXg.c.c.cXg.c.o.bXzXz.c.bXz.bXz.bXzXz.bXzXz.b.b.bXz.^Xj.r eXt.rXt.r e.r.r e.^.^.^.UXzXzXz NXz.bXz.bXz.^Xz.oXg.c.o.oXg.o.b.^.b.b NXzXzXzXz.^.b N.b.^X@ q./ q.&.$.$.$.$.f.$X9.r.r.rXtXt.r.r ~.`.8 R.0 gXPXa.n.w.qXC.!.q bXC & H.v w b z ^ v.[ #XMX* a.8 #.`X-X-X-XDX-XIX. $.,XJXlXHX-X5X5 : :XJXH.]X3 hXl.9.Y h #XM k.jXP y.>X0 z.qXn yXM D.k ) c $ t.).WX=.@X+X8 >Xq E.FXl RX1 t UXeXp xXK 3XI ~X*.r.rX*.r.rXjXj.b.b.b.o.b.b.b.b _.b.b _ _.c.U.U.cXg.V.b _XzXz _XzXzXz.b.b.b.^.^.^ N.b.b.b _Xz _Xz _.bXg.o.b.b.b.b _ _Xz _ _Xz _Xz.b _.b.b.b.b.bXj.rXjXt.r e e.rXjXg.oXz.b _.b.b N.^.rXt.rXj N.b.b.b.b.bXz.bXz _.b _.bXz _Xz.U.b.bXz _Xz _Xz _Xz _.bXzXz _Xz _XzXz.V.bXzXz _XzXz e.r.r.b.^Xz.bXzXz _ _ _ _Xz _.b.b.V.z Z d.A.& A.tX Xu dX@ (.k :X*.8 3 s.s.sXe t.} < <.W.) 2 v.w.} s.D.aX-X-.`X1.~.%.ZX- a 9.s.N =.+._XC C G.N t uXM [X..Y G.= O 0", +".K.u.K c NX*.k.u NXoXt.r.rXtXt.f 5.A.$ }Xx 5.A 5.| ).3.% 4 @ ! s 1.9XKXG.9 y.,.[.lXM.i < aXM.lXM.[XpXp.@.j.j.p.p...v J.E b.nX1.~.~.~.~XD.u.`Xl c RX- a.e R.* aX- aX-X-XI 3X- RXIX-XIX-XIXV R.kX5 # c.eX1 3XK.,., 3 RX-X- 3X,X1 R $ B RX1 R.'.Z.w $ 8 3X- aX- 3 R.D.w.n g '.wXlX5 `.] 5.] 3XI.` R.HXI.8.H.8XVX*.r.rXt.rXtXtXt.rXd.r.k.b.b.b.b.b.b NXz.b.b.b l.X lXgXgXg./.oXk.U.z./.UXk.c.c.cXg.V.U.b.c.c.o.VXg.cXg.b lXz.bXz.bXzXzXzXzXzXzXz.bXz N.bXjXt eXt.r eXt.rXt eXt.^.bXz lXz N.b.b.^.^.^.bXz NXz.oXg.cXg.oXzXzXz.bXz.^.bXzXz.bXzXz.bXz N N N NX9.zXX.XX9.5 N.K.5.kX*.rXt.r.r.rX* F 3.`.`X1 gXw.nXa sXC 9 J J O 0 J.@ 2 w /.. /XG.-XM #X-X-XIXVX-.~X- RXD.~ aXJ 3 mXK :XJ $XI., c mXl cX. :Xc `XJ 1X, # # kXUXGX0 MXS.> z M.1 YX.Xx.u.uX- t t.N.W.s .X+X2.JX4 WXcXJ U $.wXq.- [ 1 3.K.k.rXt.rXtXtXtXjXj.b.b.b.b.b.o _.b _.b.o.b.b.c.U l.c.c.VXz _Xz.b _XzXzXzXzXz.^Xj eXjXzXz.b.bXz.bXz _Xz.b.c.o.b.b.b.bXzXz _ _ _ _XzXz.b.b.b.b.b.b N e eXk.z.k e.r e NXgXg.o.b.b.b N.oXj.r eXtXj N.bXz.bXz _Xz _Xz.b _.b _Xz.bXz l _.b _ _ _Xz.bXz _.b _XzXzXz _Xz _.bXz _.b _.b _.^ eXjXt.b e.^Xz _ _Xz _Xz.b _.b.b.b.^ l.z.I.t.Q A.z A d (X@.z.r.8.5.`XV.nXa 2.s U.M <.* t.N.= JXG.Y s.n #.` R.HXV.~ |.8.} <.'.s.NX> yXZXp / / /X= uXp.9._ M *.=.v o", +"XX.5 q D.KXxXk q ) q q.XXt.rXtXt.rX*.rXt N.^Xt.rXxXV.`X5 D ! g s sX;XU yXUXH n `XM.i < a a <Xl XXX7 V.[ XB XB.p.p.@.jXa.wX-X-.8 # cXV 3 c x c h a aXc x.K tX- aX1.~X1 c.~X-.`.~X-.` a.` c cX- cX- aX-.uXD c ) :X3.] `XK.]Xc.0 m gXJX,.Z.u R BX-X- 3.eX-.`.aX- 8.Z.nXc 'XJ g.] 4XJ $.ZX1X1X1XD.D.`X1.`.`XV.rX*.rXtX*XtXtXtXt.r.rXtXt N N.b.b.b.bXzXz.X.Q.z.oXgXk.$Xk fX@X@.t.&X@.IXgXk.o.oXg.VXg.c.VXg.VXg.cXgXg.o.#.b.bXz.b.^.bXzXzXzXzXzXzXz.bXz N.^.r.rXt.rXtXt.r.rXj NXz.^Xk.b.bXzXz.b.b.bXz NXz.bXzXz NXzXz.bXz.^Xz NXzXzXzXz.^.^Xz.oXzXz N N NXg ) q q V./.$ 5./X3X*.rXt.r e.rXt.r ~.`X-.`XV m 'XL.!XC O O.=X= 2X=.. 2 ^ M 2 2.YXc # c.}.u cX1X-.eX-X-.}.~ RXI.e.uX, RXV R.eXI RX, 3X1.u aXD.a tXD <XMXM.,X; & = =.+ S H z y 1XD.K.` R R.a < t < U.s..Xf.CX8 [.[X. n.[.1XH.Y.$ q ).R.r.rXtXt e.r e.^.b.b.b.b.b _.b.o.b _Xz.o.b.c.c.U.c.c.cXz _.b.b.o.b.^Xj.^.^XjXt eXt e.^.o.b.^ _Xz _Xz.bXz.b.b.b.^.b.b _Xz _ _Xz _ _.b _.b.b.bXzXj e.r./.UXg.rXjXt.b.c.b.b.oXg.o.o N NXt.kXj NXg.o.^.o.b.bXz.b.b.bXz.bXz.b.bXz.U.b _.bXz _.b _ _.bXz _ _ _.bXzXzXz _XzXz _Xz.b.b.^XjXj ~.o.kXz.bXz _ _Xz _ _Xz _Xz.b.b.bXzXg.& AXgXg.z.z.Q _XoXoX*.$ 3XVXD s 2 2.s.M.M MXG.WXh.Y.+ s.9 cX- c.5 '.~.%.u.a a.- s.w =Xp =.E /.= 2 2.NX> =Xw.s.W 2 v 2", +"XX.KXX ).kXXXxXx.5Xx.X.KXt.r.r.rXtXtXt.r.kXtXt.kXt ~.`X1 'Xc g.! !.>Xh K KXh |X#.[ | a a tX-.}XX #XM #.l #.l.l.FXB.j.EX0XGXK #.8.K a.~.e.e 3.e c.uXI R I.3 1XJ :XJ :XJ ` DXJXM D.e.~.~.eX* c.8 3.`.eX-X- c.~X-XlX5XM.u.uX5.KX3 B 1.Z.u 3 3 3.eX- RX-XI.eX-.aX-.*XDXaXlXOXU ' 'X5.!.] g !.] y.]XU D.0X1.`.`.8 ~X*.r.k.rXd.r.XXdXo.zXxX@XtX9.b.^.^.zXx.z N.(.6.t.f.(X .o.fX@Xk./Xk.z.UXg lXg.c.c.cXgXg.cXg.cXgXg.c.cXg.Q.b.^XzXzXz.bXzXzXzXz.bXz.bXz N.b.^Xt.r.r.rXt.r eXt.^.^ N.^ lXz.^Xz.^ NXz NXz NXzXz NXzXz.b NXz.bXz NXzXz NXzXzXzXz.^.o.b.^ NXz N.XXxXk )Xk qXk q )Xk.^Xj.^XtXtXtXt.r.8.8.8.`X-XlXwXl 9Xm.E.=.BXvXFXF * *Xv G.N.=.j.-XXXX.8.~X- 3.8.e aX- 3.~X-X1 R.~X-XD.eX-X-X- R 3 R.~.Z 3 R R R.aX- hXM k.1XO = M & zX>X>XeX, 3XIXD.u.a.a R <.a.M.W.s...4 +X:.YX7XKXBXr.jX7 X* 3Xt.k.r.rXtXtXt.r.kXz.b.o _.b.b.b.b _.b.o.o.o _.o.U.U.c.cXz.b.b.b.bXz.^ e.r eXjXt e ~ eXtXj.^.b.b.b _.b.# iXz.^.^.^.b.bXzXzXz _ _Xz.b _.b.bXz.b.^.^XjXjXj.z d.r eXtXz N l.b.oXgXgXgXk.c N.^ N.k.oXgXg.oXzXz.b.b.bXz _.b.bXzXzXzXz.U.o _ _.b _ _ _.b _.b.b.b.b _.bXz _.b _ _ _.b _.bXj e e.r l.b.o _XzXzXz _Xz.b _Xz _.b.^.b.b.UX&.(X&.(X P X Z X f NXXXkX- 3 sXL.N O.WXD.Z.Z <Xs u 9.jXU.>XJ c c : T.H 3.`.`X-.ZXs xXl UXlXL 2 O b 0 O.s.s.s.N.=.sXG.N", +".K.kX*.kXVX* ~.r.rX*.r.r.r.rX*Xt.rX*Xt.r e.rXt N.k.`.`XIX1 gXO.9XK.G =.1Xc `.- ` h 3 < aX-.e B.MXXXM # #.i #XMXq yXG JXCXaXa R a c.eX- c.KXIXD 3 # c RXMXlXM D $ : ` T D $ 5.] D #X5.K.K 3.8 3.eX-X-X- R 3.~X-.e.eX-.eX-X- 3XD 3X1X- a.a 3X*.e.aX-X-.`X-X-XIX-X- 8.wXa gXU.n.ZXaX5.n.0 s.0.n s.w.' D T.D.`.`.`XV.k ~ N N ) ( ] ] ]./.A.kXg )Xk.X.t.t.&.X.Q.R.zXgXkXk.cXgXgXkXg.cXgXgXgXgXg.c.c.o.V.VXg.cXg.VXg.oXg _.U.bXz.b.b.bXz.b.bXz.bXz.bXz N.b N.^XjXt.r.rXt.r.r.k.^ N.^.^XkXz.^.b.^XzXz NXzXz N NXz.bXzXzXzXz.^XzXz.^.bXz.^ NXzXz.^.oXz NXz.^ N N N N N N N N N N N N N.^.^.^XjXj.r.8.8.8.` RXV.ZXP o.jXC.v.= * u.d.) * *.WXs.W.j : #XMX* 3X1X-.`X,.`.a.aX-.eX-.eX-X-.~X1X- a R.u m )Xl $ 3 $XD.9.a.aXMXX k.3XZ.>XZ.TXZ.+.+ y.9.' m ` :Xc.u aX-.~ R 8Xs...@X:.T.T.1.1X%X<.Y 1 3.a ~X*Xt.rXt eXtXt e.^.b.b.b _.b _.b.b.b.bXzXz.bXz.o.#.cXg l.b.b.b.b.^.b.b.rXt.r.r ~ ~.r.rXtXt.k N.b N.b _.I d.^.^ e.r.^Xz.b.bXzXz _Xz _Xz.b _.bXzXjXj e e.r.r.r.^.r e.X.^ l.o.b.b.b.b N NXt.r.r.r.^.bXz _ _.b.o _ _.b _.b _ _.b _Xz.U.bXzXg.c.cXg.V.bXz _Xz _Xz.b _Xz.bXz _XzXzXz _XzXj eXj.rXg.^XzXz _ _ _XzXz _Xz.bXzXz.b.oXz.bXg.c.b.X.X l l.c.oXxXoX9XX.8.`XD s O O.= sX1 R t C *XL.N gXU m.].| `.%.uXD.8.`.`X1 B B a aXM v s s.W.wXG vXm /.=.s O.E.M", +" q q V qX* ~XtX*.r.r.r.rX*.rXtXt.rXt.rXt.rXtXt NXt.8.`.` gX..' v s.O K., ` # h ` aX- a 3.a a R.~ a.i # c # #.lXcX+XL HXm bXKX,.uXl.eX- 3 cX3XX DX5 VX-.e 3XD.e a.~.~.eXI.u cX1Xl.8X*XX.5.8XI.8X-.~ a.e.e 3 a.~.a.~X1XI.eXD cXV.}X- a a.a 3 cX-.`X-X- RX-X-.aX-X-.e.w.w.0.'.w.DXs.Z s.nXa.n s.n.w.nXl.0 DX5X1.5 ~XoXk 5 I QX@ )Xx.k.k ~ ~.tX@ AXtXg.X.X.XXoXk.XXg.z.cXgXgXg.o lXgXg.U.c.V.c.c.c.c.V.cXgXg.o.V.oXg.bXz.U.b.b.b.bXz.bXz.b.bXzXzXzXz.bXz N.^Xt.rXt.rXt.r.rXj.^ N N.^Xk.^.^Xz.b NXz.^Xz NXz.b.bXzXzXzXzXzXzXz NXz.b NXzXzXzXz.^.bXzXzXzXzXz NXz N.^.^Xz N.^.^.^ N.b.^.b.b N.^Xj.r.8.8 ~.~ ( T.9XO 9 oXi /X= *.)XqXs G.N.N x nXM.l c c 3X1X, 3.~XIX,.KXDXVXIXDX1X- 3X-XIX1XI cXJ m.,.2 kXcXJXJXKX3 k., K K KX0.+.1.+.xXpXn x $ R.u x 3.}X- 3.KXD.wXsXn.@X: M.<XpXpXq.YXBXM 3 3.8 ~Xt.rXt.rXtXjXjXz.o.b _.b _.b.b _.b _.b _ _ _.o.U.UXg.o.b.b.b.b.b.b.k.r.rXt ~ ~.` ~.8.r.rXt.^XzXzXz.b N.c.b eXt eXj.bXz.b.b _ _Xz.b _Xz.b _.b.^.^ e.rXjXj eXt eXj e.^Xk.b.b.b.b.b.^Xj eXt eXt.b.b _.o.b _ _.b.bXz _ _.bXz _.b.V.I.c.c.o.c.cXg.c.o.b.VXzXz _XzXz _XzXz _Xz _XzXzXz.^Xz eXt.b.^.b.b _XzXz _ _Xz _.b _.b _.bXz.b.bXg.b.b.^.o.UXg l.b.5 N.8.k.8 3 8 s OXaXs C t t.*.*Xa.=.M R.ZX5.] ` k.].|.0 5 '.R.eX1.8X-.KXIX,XD.e RXD C s v.=XL.'Xm $", +"XVX*.r.rX*X*.r.rXtXtXtXtXt.r.r.r.r.r.rXt.rXtXj N.r.8.K V kXw.n s.9 [.YXK.}X-.a : : : : cXMXl cXM V c 3.lXM # k [ g.jXO o.w.w.ZXI 3X-.aX-X-.e.e.eX-X-.` c #.u c.K c.5 :.K 3.uXI.e #XVXVX- a.~.~X-X-X-Xl.`.e RX1 R 3 : $.`X- RX-X-.`X-.` 3.uX-X-X-.~X1X- RX-X- aX-XIX-XI.eX1 a RX,.e R t t.WXD.MXs.D.w $ T 4.|.`.5.H.H.r.u ~XV.rXt.r.r F.`.^.rXkX A dX@.t.t PX& fX& fX&.I X.(XgXgXgXgXg.c.c.V.c.c.c.V.V.V.VXg.c.oXz l.b.bXz.^Xz.b.b NXzXz NXz N.b.^XjXjXt.rXt.rXtXt.rXtXj.^.kXj.b eXt.^XzXz.^Xz NXz.bXz.bXzXz.^XzXzXzXzXz NXzXz.^XzXz.^.^.b.^Xz.^XzXzXz.b.b.b.b.b.bXz.bXz N.^XzXzXzXz.b NX*.r ~ 3.`XX.5.ZX, &.E 0 o ^...s J.E 9.OXZ.9 [X.XX.Z 3XIX3X5X1 RXl cXV R.uXI.HXI.8 3 3X-.~X-X-X- 3 R 3 3X-.a a.8.a #.5., k s n.+ H...s.W t.* t RX-X-X-X-.e R.`.e.D.W._ vX>X2 z WX2Xp.[XK.K.K.u.8.r.rXtXt.r e.^Xz N.b.b.b.b.b _.o.b.b.b _.bXzXz.oXg l l.b.^.b l.z.&.XXg.X.kXV.r.`.8.` ~.`.8.rXtXj.^.b.b.o l.IXj eXt ~.rXjXzXz.b _Xz _ _.b.bXz.b.bXz.^ eXgXj.r.rXtXtXt.rXg N.b.b N.b.^ e.rXt eXtXg.b.b.o.c.c.c.c.cXg.cXg.V.o.o.o.b.U.b _.b.V.o.o.o _Xz.b _.bXz _XzXzXzXzXzXz _Xz _Xz.^Xz.zXgXk.^.bXz _ _ _Xz _Xz _.b.bXzXz _.b.o.b.UXg.V.b.b.b.c.c.cXg l.r.` ~.`X1XD.9.s.w s.N < C u G 2XDX-X1 B.~.` R.`X-.`.~XoX5X1.`.~.8X-X1.e BX-X-.a.aX,XM.a tX- hX-", +".r.r.rX* ~.rXt.r.r.r.r.r.rXt.rXt.rXtXtXt.rXt.k.KXt.rX3 D m n.YXn [.- :XM.aX- RXD.eXI.eX-X-.eX- a cXM # #XXX3 V.-XU n @ = gXw :Xl `Xl 3.aXI.e.~ aX-.e R.e.~XI.~X- ).`XXXI.~X-.K.5XV.`.~XIX-.`X-X-.~X-XIX3.] :XlXJ.] $XcXK.].e.eX-X-X- a R.u h.8.~X-X-X1 R R aX-.~ aX- R RX- 3 RX-XlXl R.*XDX,XD a 8XDXDXa.w.'.2.D BX1.`.8.8.r.`.8Xt ~Xt.r N.^XtXzXx N.RXxXx./.zXk.z.t.z.zXk.z.UXkXgXgXg l.U.c.oXg.V.c.c.cXg.cXgXg.c _ l.b.bXzXz.b.bXz.b.b.bXz.^XzXj e.r e.rXtXt.rXtXtXt.r e.k e.r.^ eXj.^Xz N.^.b.bXz NXz NXzXzXzXzXzXzXzXzXzXz.b.^ NXz.^.^.oXzXzXzXzXzXzXz.b.bXz.^Xz.^.bXzXzXz.bXzXz.^.b.^.^Xt.r.8.r.k.~X1X1.ZXL.s ^ ^.s.) y o vX;XS.,XHX..9 VXJ.,.]X. D mXJ.,XJXV RX-X-.e.e.eX- 3 a.~.e aXDX-X1.u.uX-.aX-.a #X5 kXc hXw & 0.sXe t R.aX-X-X- < < RX-.`X-X1XD c U vXGXnXf.x.pXn X, 3XI.` ~.r.r.rXt.rXj N.b.b.b.b.b _.b.o _.b.bXz.b.o _.o.o.cXg.b.b.o.b.X.t ).t q.$ 5 ) ).$.K IXV.`.8 ~.r.r.^ N.bXz _Xk eXtXjXj e e.^.b.b _Xz _.b _ _Xz.b.b.b.^.^.^ qXzXt e.r e.r.oXz.X.bXj e ~ ~ eXt.r.^.c.o _.V.cXg.c.c.c.V.VXzXz _.V _ _.#.o.VXgXg.b _XzXzXz _.bXz.b _.b _XzXz _Xz _Xz.b _XjXjXj.^.c.^.oXz _Xz.b.bXz.b _Xz _.b.b _Xz _.bXgXg _Xz.bXzXg.o.o.V.z eXj.` F 3.~XDXG.w.sXL.N.) ..s.W R.u BX5X1 cX-.8 3.u.8XVXV.H.~.8 3X-.HXIXI.8.a ~X-X-X-XIX1XI RX1", +".rXt.r ~XtXt.r.rXtXjXtXtXtXtXt.r.rXt.k.r.rXt.^.K.8.K., kX..1 nXw =.[XB `.a.aX-.H.~X1X1.eXV.a.a 3XM.K `.-.- g gXm yXw.9 s $.*.aX- RX- 3.eX-.eX-.~ R.~X-.u.eXI 3 3X*X-X-.`.K c c.`X-.e 3.u.~X-.e.~X-.K.e c ` `Xl ).9.K T `XIX- a.~.e B RXV.u 3.~X-.~ R RX1.eX- a.aXI R.e.~X1X,.ZXc.e ` :Xc 1XcXJ hXD C.D.w.n.0XUXdX1XI.`.8.~.`.`.r e N NXj N.b.R A.z.z.zXx.f qX&.IXkXu dXkX .&.I.I.6./. .6.6Xg.V.c.V.c.c.c.VXg.VXgXz lXz.b.b.b.b.^.b.^.b.^.^.^XjXt.rXtXt.rXtXt.rXtXt.r.r.r.r.r ~XzXd.^.b N.bXz.b.^.bXzXzXzXz.^XzXzXz.bXz NXz.b.^ NXzXzXzXz.oXzXzXzXzXzXzXzXzXzXz _.b.b.bXz.bXzXzXzXz.b.b.^.kXt.r.r.HXt.H.8 R.a s JXCX0XpXLXcXKXcXw.G } V : $ h h c # $ $ c $X5 $X-XVX-.~X-.`X- a.8X1.e R.e.uX-.aX-X1X5X- a.a c.lX3XK $.Y.E v p u u RX-.e.a a a a t a BX-X-X,.M U U.WXf .XfX2.j.M cXV.8.8.r.rXjXtXtXt.^.b.b.b.bXz _ _.b _.b.b.b.bXz.b _.bXz.Q.b.o.X.b.X N.bXk.X.kXt c.rXVXV D.% ).`.` F ~.rXjXj.^.b.^Xg NXj ~.rXt.rXz.b.b _Xz.bXz _ _Xz _Xz.o NXz.k ~ e.rXtXt.rXt.b.^.b N e ~ F ~.r.r e.kXgXz.o.V.c.c.c.U.c.c _ _.c.V.c.c.c.#.c.cXg _ _XzXz _.o _Xz _XzXzXzXz.b.b.b _ _.b _XzXj e.b.XXkXz.o.^Xz _Xz _Xz _Xz _.b _Xz _XzXz.V.c.c.o _Xz.b.b.U.c.V.Q _.r.8 ~.8.8XI.}.9.)......X0 2XL `.K )XlXoX5 #X3 h.uXX cXJ.5.`XI.5 $ TXD., 3 ) cXXX5.~.uXV.].`.5", +"X*.rX*.r.rXtXtXt.rXt.r.r.rXjX*XtXt.rXt.rXt.k N.^ 3.K qXc.,.,.jXH.1 kX3 xX, 3.DXVX-X-XI.u.a c.8XM.l XB V.jXc o sXa.n 9.Z.w R aX- aX-.a.a.eX-X-.e.~.~.e 3.eX1.~XI.r.~X- ~.uX*X- c.e.~X-.~ 3.eX-X-X-XM.eX- 3.` 3XI.e.eX-XD.eX-.eX- a R BX-XI 3 3X-X-.~.~X-.a.~X-X- aX1 aX-X- a.u : :Xl.9Xl :.9Xc 1.WXD tXD 8.w.'.0 g 'XIX1.`.H.`.8 ~.r N.o.b N.o.I.R.t.I.& PX .t.AXu.$.AX q d.&X d.&XuXuXuXu.UXg.c.c.c.cXgXg.c.c.oXzXg.b.bXz NXz.b.^.b.b.^.k e.r e.r eXt.r.r.r.rXt.rXtXtXt e.r.r N.k.^.b.^XzXz.bXzXz.^XzXzXz.bXzXzXzXzXzXzXz.^XzXzXz.^.^.^.bXzXz.^XzXzXz _.b.o.oXz.b.^Xz.^.bXz NXz.b.b N N.kXtXtXt.u.k.8.8X1 R xXU.j.j y.p.,XwXc : V., #XMXD.a aX-.e x T ' $XlXlX1X-.K.KX- R.~.~X- 3XI.e.eXIX-X-X- RX,XIXI a cX5X3 V.M.-XGX>Xr UX, $.eXMXD $ <.9 h R '.e $ 1 1.Y.M.wX4 .Xi.@ x h DXI.8 ~ 3XtXt.rXtXj.^ N.b.b.bXz.b _ _ _ _.o _.o _.b _.b.o Z.t X d Q.t.t f.| Q.H.8.8.u ~ 3XVX9.8.`.`.`.8.r.rXt.^.^.b q.U.k.^.r e e.^XzXz.b _ _ _Xz _Xz _.b.b.b.b.b.^ e.r.r.r.k.r NX*.^Xj.r F F F.r.rXtXzXg.b.o.c.c.c.c.c.c.c.c.c.V.c.c.c.c. .c.V.c _ _XzXz _.bXz.b _.b _Xz _.b.o.V.cXg _.b.bXjXj N.b.c.^.oXz _ _Xz.b.b.bXz.bXz.b _Xz.bXz.c.c.o _ _ _.bXzXg.c.V.#.c.^ e.8.8 ~.8XI.WXG %.sXiX= 2.s hXIX1.HXV.` 3 3.8.}.uXV cXD.`.u cX1 c.` h.8 #.8.r.r.~XVXI : 3.u", +"Xt.r.rXt.r.rXt.r.rXtXt.rXj.^.^.^Xt eXt e e.^ N.k.r.8X3X3XM kX7XHX#.[.9 $.}X, $X. :XVXI.~XI 3X-XM #XB., y.'.w.wXL.n.D.' $ RX- RX5.e cX5XI.eX-.eX-X-.eXI.` aX-X-XI.~X-X-XVX*.e 3 3.~ a a RXIX- R.e c.`XV.a 3 3.K.a.` a aXV c RXl.e a.*.e x R 3.K.eXIX-X1.~XI.e R aXI aX-X- aXIXI.e 3.e.e.e aXD.a aXD.D RXD BX,.0.D '.!XPXPXP.].D.`.HXd N N.^.o.bXz _XzXgXkXgXk q qXgXxXgXk.zXkXg.cXg.cXg.cXg.cXg.c.cXg.c.V.c.cXgXg.bXz l.b.bXzXz.b.^.b.^XjXj eXt e eXtXt.rXtXtX*.r.r.r.r.rXtXt.r.r NXtXtXtXjXz.b.^.^XzXz.bXz.^XzXz.bXz.^Xz.b.bXzXz.^XzXz.^Xz.oXzXzXzXzXzXz _.o.cXgXg.b.bXgX9 N.^ N.XX9X9 N.^X9.k.kXo.k )XI.k.uXIXD.9 k : X3X3 kXX 1 ` 1 # kXc #XD a.a.a h., ' :X. :XH., I.aX-.e B B.~ 3.~ B aXIX-.` B 3X,.a.a 3.K : kX,.p.E.@ n t x.%.*.' k :.e.,.aX,.O R.Z.>., k t.- z 2XpX> h #.5.H.8.8.k.rXt.rXdXt.^.o.^.o.o _ _ _ _.b _ _.bXz.oXzXz.V.b.I.6.I.QXk A (.z.zXx F.`.`.kXVXt.u.8 F.`.`.` F.8 ~XtXt.^.bX@ l.oXj e e eXz.bXz _XzXz _ _ _.bXz _.bXz.b.^.b e eXjXj.^ e.X.rX*.r N.kXt F ~Xt.rXzXg _.V.c.c.c.U.c.c.c.c.c.c.c.V.c.U.#.c.UXg.o _ _ _ _ _.V.V.b _Xz _.o.V.c.c.V.c _Xz.bXj.k.b.XXk.^ _.bXz _ _XzXz _.bXz _.bXz.b _.b.c.c.o.o.c.b _.o.o.V.c.#Xg.bXt ~.8.8.8XIXD.D b.sXb %X= v aX- F.~ FX-.aX- a.}X-X*XK.%XV.3XI.8 a.~.8X-.e.aX-.`.~X-.`.~.`.~", +".k.rXtXtXt.r.r.r.rXtXtXt.^ N N.^.^.^XzXz N.b.X N ~.8 q VX3XSXH [XHX# X,XeXJ.3XJ mX* 3 3X* a cXM xXcXUXGXe.nXsXD 8 8X,.e.~.}Xl.9Xl.]XcXI R.eX-.e a 3X-.e.e.e 3.`.e.K.` : a c :XMX,XIXDXlX-.aX1 cXl.e.~.`XI.5XI.8.e.`X- RXc `.,.9Xl .9X3 1XJ 3XJ 3 3XI 3X1X- RXIXD a.e.aX-.aX-.` 3X- RX- RXD 3 RX1.wX-X- a cXD.wXa.n.0 '.n.0 gX1.H.rXzXz.b.b.b _ _.b.c.cXg.zX@.AX@.fX@.6.f.UXg.cXg.c.c.cXgXg.c.c.c.c.c.c.c.c.cXg.bXzXg.b.bXz N.bXz.bXz e.r.r e.rXtXjXjXt.r.r.r.rX*Xt.rXt e.r ~.r.k.rXt.rXtXj.^XzXzXzXz NXzXzXz.b.^.b.b.oXg.oXz.^.^.^Xz.^Xz.bXzXzXz.^.b.b.oXg.cXg.bXk.b.tXk.& q.&X3 5./ q ) q.z 5 f 5 5.|.$XJ.5.% )XJXK `.,.GX#.S.3.3.SXHX#.[ $ # a <X-.a $ 3.Z.Z.a c 3.}.K RX-X-.~X- 3.e B B 3.a.e R.D.}X- 3 #X5XM IXe.YXG.s y.M 1 x.M $XDX,XDXc h $ $ x.D $ xXc.M xXpXn v.Y <.5 5.5.H cX*X*XkXx.r e.X.o.o.o.b _Xz _ _ _ _.b.b.o _.#.UXg.U. Xg.b.^ d N.R.zXo ~ ~.u ~XVXo.r.k.rXt.8.` F F.8.8.r.r.r N l.^.bXz e e e.^.b.bXz _Xz _XzXz.oXzXzXzXg.I.#.o e eXj.bXz.r.5Xt.r.r.` F.`.`.rXtXjXg.b _.c.c.c.V.c.V.U.c.U.c.V.c.c.c.c. .c.o.c.V _XzXz _.o.c.c.V.V.o.V.c.c.c.V.c.V.bXz.bXj e.^ N.c N.b _Xz _Xz.b.b.o.b _.o.o _Xz.b.o.c.c _.oXg _.b.b.V.V.c.U.U.o.^.r.r.8.8.8X1XI.n v 0.. vXL 8.`.`.`.~.`.e.-X*.K k.2 $ I.0 5.H c.`.8X-.`.`.`.`.~XI.r.8.`.`.`", +".r.rXtXjXtXt.r eXt eXj.^.^.b.bXzXzXz.b.bXz.b N.^.r.`X*.S V k.[ |.S.%Xl.MXD.w.MXJ.,.~X-X-.e.aXM # `.-.j.w.wX, t C B RXD a a aXIXDXDXVX, B.e RXIX1XIX-X-XV 3XVXIX-X-.K.K.` c.K mXJXKXJ `XK : :X3Xc.]X-.e 3.~.` 3.KX-X-X-X-.K 1 $ 1.'.a :.9Xl : 3 c.~ 3X- 3X-X-X-XD.~ R a.~X-.` a 3X-X-.~ RX-XDXD RX,X, R RXIXD.e 8.D.wXaXaXaX5 gXd.HXd.^.^.oXz _Xz _.o l.cXk.U./X@.f.f.fX@.6.IXg.c.cXg.c.c.c.c.cXg.c.c.cXg.cXgXg.c.bXzXg _.bXzXz.b.^.b.^Xj eXtXjXj.^.^Xz.^XjXt.r.rXtXt.rXt.r.r.rXt NXtXt ~ eXjXzXzXzXzXzXzXz.^Xz.bXzXz.b.b.o.b.b.^.^Xz.^.^.^.bXz.^XzXz.b.VXgXg.V.o.c.oXkXk.zXx q./XxXkXkXk NXk.5Xk ).5 )X*X5.KX5.u `.2XJXc.G.>X.XH.>X;XHXHX;., x.l 3.e xXK $.a.Z 3 3Xl.a hX- c 3.eX-.~X5Xl T :.e.5X5 B 1 ` | c )Xc | V.}.jX4.s.W.M.aXI ` $.* aXD.a t.e a.*.*X,X,XD.M uXq.) J.wXK.` I.K I I q.|.$X@ fX@X@ N.b N.b.b.o.bXz.o.o.oXzXz.b i i. i.t.U.oXg.& fX .&.f ~ ~ F.k.k.A.k ~Xt ~ F F ~ F.8 F ~ ~Xj e l l.b.b.^ e.^Xz.b.b.bXzXz _Xz.b _ _.bXz.o.#.I.UXj.^Xz.bXjXj N.rXt.r.`.` F F e.r.^XgXz.o.U.c l.V.c.c.c.V l.V.U l l.c.c.I.U.c.c.V.V _ _.o.V.c.c.c.c.c.c.c.c.c.V.cXg.bXz.bXj.r eXj.X.b.b.b.b _Xz _.o _.b.oXgXg _.b _.o.cXg.oXgXg _.o.o.cXg.U.c.c.c.bXj ~.8 F.8.8.8 3 1.Y s o.'XDXD BXd TXV ) DX; ' ]Xl.HX-.`.`.r ~.kXo.`Xd.HXoXd.8.`.5.` N.HXt", +".^Xt.^ N.^.^.^.^.^Xj.^Xz.b NXz N.bXz.b N.b.b.o N.k.`XtX3XM VXM.i $.} <.Z hX, $XD c aX-X-.} c #XM.-.-.9.w v.* B t.*.e 3 aX-X-.e aXI.aX-X-X-XD.eX-.e.e c.eX-.e.~.`XlXVXI 3.eXIXI cX1.a 3X-.a.aXI c.`X-.e 3.~.u.H 3.`X-.~X-X,.e.e a.e.*.e a.a.e a.e.~ 3.e 3X-X- RXD.e RX- aX-.`.e.8X1X- a B aX,.aXDXDXD R R $XI RXD R 'Xa.D.w ' T '.`XdXj N.bXz _ _ _.c.cXg.c.UXkXkXgXkXgXkXgXg.oXg.c.c.cXg.c.c.c.c.cXgXg.c.c.VXg.cXzXzXg.b.bXz NXz.bXzXz.^.^.^XzXz N.b.b.^XtXtXt.r.rXt.r ~.rXt e ~ N.r.r.rXjXjXz.^Xz.^XzXzXz.^XzXz N.b.^Xz.^XzXz.bXzXz.^Xz.^.oXzXzXz.b.VXgXg.o.o.b.oXg.oXgXz N.^ N N.^.^ N N.^ e ~.r.rXoX* ~.8.`.`XV., TXU T.0.! 9.! g y.9Xc kXM # h a.l., `XH., kXZ |.,XJ V.,XJ.e.e.]XX k D.0., D ` #X3.,XJ., kXHXH.- h.YXGXe.s U R aXc :XK :.- :XKXJXK :Xl :XD.}XD < vXL o.NXhXX (.0X9.5X9XkXxXxX9 qXt.X.b NXg.o.^.b.b.o.bXz.bXg.b.o.o.bXz.c.o.bXz.b.o.X.X.r.k.~.RXX.r q.KXt ~.k ~ ~.r.r.8 F.8 ~.rXt q l q.oXz.bXz.b.b.b.bXzXzXz _XzXz.b _.bXz.o.U.o.b.b.b eXj.r.b.r.r ~ F.` F.`.r.r.^.XXz lXgXg.V.V.c.U.V.V.U l.o.o.o.c.U.QXg.c.c.c.c.V.V.c.c.c.cXg.V.c.c.V.V.V.V.c.V _.b.b.rXjXjXj.b.b.o.c.cXg.o _Xz _ _Xg.c.c _Xz.bXg.c.o.o.c.o.oXgXg.c.V.U.U.o.UXkXzXt ~ F.8.8.8.`XV.0Xl.w.] RXDXI B.| T 4 'X5XIX1.D.5X5.`.8.r.`.rXx.H.H.`.H F.~XtXt.`.r F.r", +".b.b.b.b NXzXz.bXzXzXz.b.bXz.b.b.bXz.b.bXz N.bX9Xt.8 )X3XMXX.l.}XI.M.a.}.Z hX,X, $ B.a c h.aXMXM.-Xw.'.wX, t RX-.a a.Z a.e.eX- aXD R aX- aX-.eX-X-X-.8 RX-.e : 3 c.`.H.eX1 aXIX,.e RXI a.~XD c a.~X-.eX1X-X-XX.8 3.`.~ aXV.aX-.e a RX- RXI.e.aX-XI 3.~XIXI.~.aXI RX-X-X-X-X-X-.a 3X- R.eXDXD.a.} x.Z cXc.YX3 : : mXJ sX,XD '.' g FXd e.bXz.bXz _ _.c.c.V.c.U.UXk.cXkXgXgXgXg.c.c.cXg.cXg.c.c.cXg.c.c.V.cXg.VXg.c.bXzXg.XXz.bXzXzXzXz.b.b.b N N NXz.^.^XjXt.r.r.r.rXt.r e.r.r.r.r N.rXt.r.^.^.bXz.^XzXz.b.^Xz.^XzXz.^Xz.^ NXzXz.^XzXzXz.^Xz.bXzXzXzXz.oXgXg.o.o _.oXg.cXg.o.bXz.^ N N N.b.^.^ eXtXt.k N.8.8.8XIX-XI.] gX5 sXaXa.nXaXaXaXlXG.,.9 x c a h aXXX3 1X3 `XK | #XIX-.a a.a #X1XIXD 3 `X, a 3 3.} 3 #X3XM., h.-.YXnXL._.MX-X3 : ` :.'.0.5Xl.ZXcXMXl.}X-X,Xe v.s H.sXl 1.H.HXI.8XVXV.rXt.r.rX*.^ N.b.b.bXg.o.b.b.b.b.b.b.oXz.oXg.b.U.oXz.o.^.X.b N.k.X FX* q.rXt.r ~.r ~.r ~.r.r ~.8 F ~.rXt.o.r.b.^.b.^.^.^ N.b.bXz.b.b _Xz.bXz.b _Xz _.b.b.b.^Xz e ~ e N.r e F.r.`.`.r.zXk.I.R.I i i.&.#.I. d d iX@. X .t./.I AX@.I dXg.c.c.c.c.c.c.V.c.c.V.c.c.c.c.c.c.V.V _Xz.b e eXjXj.^.b.b.c.c.c.c.bXz.oXg.c.c.c.o _ _Xg.V _.o.c _.o.cXg.c.o.U.UXg.cXkXgXjXt.r F ~.`.8.H.H.`X5.ZXlXw.OXc.SXD.uX-X-.`.`.8 3.8X-X-.`X-.~.8.8.uX* ` 5 ).2XV.`.`.~.8", +".b.^Xz.bXzXz.bXz.b.bXz.bXzXzXz _Xz.b.b.b.b.b.b.b N 3.rX3.$X3XMXMX, 1XD < h.wX, R h 3XI a.a h 1XUXwXK.w.Z R a a.eX-.aX-.5 hX,XD R a a RX-XI.e a.e.e.}.`.~ c.u.KX1 3X-.e.~ BXIX,X-.eXI B 3XIX- a a.~.e 3.e.~X-.u #.eX-X-.e c.eX-X- a a.e hX-.e aXI.a.~ RXI aX1X- a.~ a.eX-XI.a RX, R a.M RX, tXDX1 #X, 3.uXK.Z x ` h.ZX1XsXl.n g.HXt.k.o.^.b _.b.V l.c.c.c.U.#.cXkXgXgXgXg.VXg.V.c.cXg.c.c.c.cXgXgXg.c.c.cXg.cXg.bXzXg _.bXz.b.bXz.bXz.b N.^.^XjXjXj e e.r eXt.rXt.r.rXt e.r.kX9 qXgX9 NXz.^XzXzXz.^XzXz.b NXzXzXzXzXzXzXz.bXz.^XzXzXzXz.^Xz.^Xz.^.b.oXg.V.o.oXz.o.V.o.o.o.b NXzXz.^.bXz.^.^Xj e.rXtXoXt FXIXd D.H : D.n TXa.DXsXa.ZXa s.'Xw.Y # # a.a # XMXc `.- ` x # # #.e.a a.8X- B B 3X- a a hXIX-X-XI xXM.- 1 h s.Y.sX>XD.a 3.aX-XIX1.~ BX-X-.e a aX- h h.MXe.) v &XH : ).u.HXVXV.^.H ~.uXtXk.XX9XkXg N.b.^.b.bXz.oXgXz.b.b.b.bXz.c.b.o.^.o.b.6.^Xt.z.K.rXtXt.rXtXtXtXt.r.rXtXt ~.8 F.8.r.r.XXj e eXjXj e e.^ NXz.b _Xz.b.b _XzXz _Xz.b.bXzXz.b.r eXj.k.b e ~ ~ ~ F F.rXx.I.f.tX X .&Xu.IX X&X&.& i.t.(./.t.tXu.( ZXu.t.c.c.c.c.V.c.c.c.c.cXg.V.c.c.c.c.c _.c.b.b.^ eXt e.^.^.b.bXg.V.V.c _ _.VXg.c.c.c _.o.VXg.o _.oXg _.o.c.c.V _.c.c.c.o.c.U.bXj e ~.`.r F F F.`XI.D x.>.1XG.Y 1 ' R.` F.~.u.`.` 3X1XI x ) :XJ D.5 I.K :.$X*.8.`X- ~", +".o.bXzXz.b.b.b.bXzXzXzXzXzXzXzXz.b.b.b.o.b.b.b.XXjXt.8.a # V XM # x h a.ZX, $X, $ B.a c.} ` .- nXUXm.n $ tX-.aXIX-XXX3XKX5XcXl 1.9XKXlXJ $.e.~XIXIXI.eX-XV.KX-XV.e.~X-X1.eXD 3.eX- 3 a.u aX-X-X- a.~XI aX- 3 3XVX-X-X-X- R.8 aX-X- a RX1 R a.u.a aX- 3X1X- RX1 RXIXI 3 3 $.uX, $X5 3Xl.Z x h $ : xXD a t.}.a $X- a.a B R s sXUXo.rXd.b.b.b.b _.c.c.c.U.cXk.UXg.cXk.c.c.c.c.c.c.c.V.c.c.c.c.cXg.VXg.cXg.cXgXg.o.bXz l.X _ NXz.b.bXz N N.^.kXtXtXtXt.r.r e.rXtXtXt.r.rXt.r.r.^Xk.IXxXg.X.b.^XzXzXz.^Xz.bXzXzXz NXzXz.^Xz.^.^Xz NXz.^.^Xz.^.bXz.b.b.o.VXg.o.c.U.U.V.c.c.o.c.bXz.^XzXz.^.bXz.^.^ eXtXt.^.H ~.HXd.]XP g 4.OXU s s.*.* C 8.w s g.- x # <.}.lXXX3., n k.-.9 :.l.KXM.a a.`.a.}X-X- RX- a a.8 3 R B < h # V., 1XDXK v y sXMX5.5XMXI BX1 B.~.~.8.a a.}.aX- t U...=Xr.G 1 I 5.].k 5.`X@ ) (.r.AX9.6X@./.6X@./.t.&XgXz.b.b N.o.b.b.b.UXz.o.cXu.^ q./ ~.8Xt.r.r.r e ~.rXj F.r.r.rXt.r ~ ~.8 ~.r N N./Xg.r.r.r eXjXj.^.^.bXz _.b _.b _.bXzXzXz.o.bXz e eXj.X.XXt ~ ~ F F ~ F.k.k.X N.z q.I./.U.IXk.U.I.#.I.z.#.#.# l.#.I.c.c.c.c.c.c.c.c.c.c.VXg.c.c.c.VXg.c.c.c.c.bXz.^.^ eXjXg.b.o.o.cXg.c.c _ _Xg.c.VXg.c.bXg.c.c _ _.cXgXzXgXg.V.oXz.c.c.cXg.V.UXkXzXj.r ~.`.8 ~.`.H FXl.W._XnXF.s.sXn.DX-.~.~Xd.e }.] kXc mXK.0 : 3.` 3.` a 3.~X-.`.8XI", +"Xg.bXzXz NXzXzXzXz.b.b _XzXz _.bXzXzXzXz.bXz.bXg N.r.rX-.aX*XJXM #X, ` t.}.wX, 1.M.a.aX, $ 1 V nXwXU s.nX, R 3X, 3X1XD.e # cXD RX5XI $ :XD.a.a a.eX1.`X-X-X-.` 3X-X-.~X-.e RX1 cX1.e RX1 3XIX- a.~ a.e.aX-X-X-X-X- c aX-X- c R.~ R BX,X- 3.eXIXDX-.eX-X, RX-X- RX-X-X-XDXV 3X- 3 :XcXK.,.-XKXJXK 1.,.9X,XD.Z $.aX-X- aX, R.'.n.0Xx.H.k N.oXz.b _.cXg.c.c.c.U.#Xg.cXgXg.c.c.c.c.c.c.c.c.c.cXg.c.c.V.c.c.c.c.cXg _.bXzXg _ NXzXz.^Xz.b.b.^.k.rXtXtXt.r eXt.rXt.r.r.rXtXt e.r.r.r.r.^.r eXj.^XzXz.^XzXz.^XzXz N.^XzXzXzXzXz.bXzXz.^Xz.^XzXz.^.o.b.o.o.o.o.oXg.U. i i i.#.c.o.oXzXz.b.^.bXz.^XzXzXj.rXt N.r.H.`.HX5.H.HXl g : R B tX- B R.w.n yXJXM # # # #XB.,XJXwXUXc.-Xw VXM X* a a.`X-.~.eXI.~ a.aX-.uXVX1X-.} #.l., | x x.Y.E.Y $ # 3.u.8.`.~.`.`.a.`XI 3XDXD R t UXs.s.sXw 3.3Xx.| qXx.u Q ).f.r.&.A ,.f.& Z.(Xu.tXu.c.b.o N.b.b N.b.b.#.c. XzX .IXz.^Xj ~.rXtXj.r.rXtXt ~Xt.r ~.rXtXt ~ ~ ~ F ~ NXjXgXjXtXj e.r e.r e.^.b.bXzXz _Xz _.b.o.U.^Xz.oXjXjXjXz.XXg.r.r ~ F.r.K ~Xt.k N N.$.&.A././X XuX X .AXuXu./.cXk.U.U.#.U.U.c.c.c.c.c.c.V.c.V.V.V.VXg.V.c.c.V.cXg _ _Xj l e.^.c.b.b.V.UXg.c.c.o.oXg.c.c.c.o _.c.c.c.b _.c.cXzXg.V.o _Xz.c.c.V.cXg.o.U.cXj eXt.r ~.`.r.`.] ` v.sXbX4.xX=.v.Y.nX5.Z xXl.9Xh nXU s.N t tXIXI.`.`X-XI.K.~XIX-.`", +"XgXz.bXzXzXz.b.bXzXz NXz.bXz.bXz.b.b.b.b _.b.b.b.XXt.r.`.8.aXXXKXMXDXM h.M hXl $.M 3.aXl.lXMX7XH.-.'.n s.Z $XIX-X- a 3 R a a a t a aX-.a.e R BX-X1 3 RX-.~X-X- 3.e.~.~.e R.e : :.0X5Xl : ` : :XlX- aX-.aX-X- a RX-XIX1X-.uXI.~X-X-X, 3 $ x cXl : #X5 c $.~X- R.~ B.` B.u #.e.`X1 c t a.'.ZXD a tX,X, RXK.* R a a a.aXDXD.M.w '.! ( F.kX9 N.o N.bXg lXg.c.cXk.#Xg.c.c.c.c.cXg.c.c.c.c.c.cXg.cXgXg.c.c.VXg.c.cXg.o.bXz.o.oXzXz.b.b N.X.b.r.r.rXt.rXt.r.r.r.r.r.r.r.r.r.r.r.r eXt.r NXtXt.rXz N.^XzXz NXzXz NXzXzXz.^.^.^Xz.^ N.bXzXzXzXzXz.^.o.o.c.o.oXg.VXg.c.U.U.c.U.c.c.o.o.b.^XzXz.^Xz.b.bXz.^ eXt N.r F.`.HX1XIXI.HXJ $X1.eX-.e R B.D xXK.jXc # #XM #XKXw y.' y.j gXw., ` : hX- aXI aX-.eX-X- a R.8.`.~.D a.a hXM V k VX,X+ yXcXD R.aX-.`.`.`X1.`.~X*XM.~.Z.a R R < pX= .XK R.u.8.rXV.u.rX*Xd.kXt.kXj.bXgXg N.bXg.b.o.bXzXz.o.o.b.oXgXg.I.tX .b.o.o NXg NXt.rXjXjXt e.r eXt.rXtXtXt.r.rXt.r ~.8.8 N F.rXjXt e.rXt.rXjXtXj.b.bXz.b _.bXz.b _.VXz.oXz eXjXz.^.b N.rXt F F ~.^.rX*.K 5X9.z q.$.z.$X3./.$ q.$./.$.cXkXgXg.U.U.c.c.c.c.c.c.c _ _ _ _ _Xz _ _.V.c.c.c.c.V.b.b.^.#.z.U.UXgXgXg.c.c.cXg _.o.c.c.c.V.b.o.c.c.o _.V.cXgXz.V.cXg.VXz.#.VXg.V.c.c.c lXg.^ eXt.r.r.r.HX1X,XGXp M.; S.sX=.@ ^ 0Xn ^.hX>..Xb 2X4 v.9 sXl.9XMXD 3XDXJX3.K D 5", +" lXz NXz.bXz.b.b NXz.bXz.bXz.bXzXz.b.b.bXz.b.b.o N.X.r.`.8XI.u VXX xXD 1X,.9XqXD RXD h 1 ` [X..j 9 s s.w B.eX-.e BXDX- a B.eXD aX-.e R 3 RX- 3XD R.e.eX-.e 3.~.~X-X-.e R.~ 3Xl R 3 `XK c D c `XDX- aX- aX-X-X-.a.~ 3X-.uX-.eX- B 3 xXlXJX,Xc :XlX5 DXM :.e.eX1X-X, 3.u 3.a a.- `XKXDXc.-Xw.-XK kX..9.e.a t R R R.} R.aXDXa s g '.8Xt.k.^ N.o.o l.U l.cXg.U.z.c.c.c.c.c.c.c.c.c.c.c.cXg.cXg.cXgXgXg.cXgXgXg.cXg.bXzXg.XXzXz.b.b.bX@XkXx )Xx.5XXX9X9Xx.` F.k ~.rXt e.r.r e.r e.r.^Xt.r.r.^XzXzXzXz.^XzXzXzXzXz.^XzXzXzXzXzXzXzXzXzXzXz.b.bXg.oXgXg.cXgXg.VXgXg.c.VXg.o.oXg.o.bXzXzXzXzXzXz.^Xz.^.^.^.k.r.r.r.8.8.HX-XI.]X5XI R.~ a B.*XD.w s mXc 1 x XK.- !.! v.n s.'.! k : h aX-.}X-.e RX-.~ R.e.u.`.~XD c cXM XX.,., hXp y.9Xw.9XlXl : #X5.5.k `.5 :X5 :.Z R.a <Xe 2 0 a.K.8 ~.HXtXtXtXtXt.rXt.^ N N.bXg.o.bXz.b.o.o.o.b N.bXz./.U l.I.b.b.o.b.b.X.bXjXj N.^.^Xt e.rXt e.r.rXtXt.rXtXt.r ~.`.k.rX9.oXt.rXtXt.r e.rXj.b.bXzXz.bXzXz _XzXz.b.bXj e.^.^.^Xd.kXtXt.8 F ~X*.r.rX9X .f.f.A.f.A } 5.$ |.A.A.f.A.A.f.I.U.U.#.c.V.c.V.c.V.V _ _Xz _Xz _Xz _.c.cXg.c.VXg.o _Xj e.r.oXk.cXk.U.c.c.c.c _.o.cXgXg.o _.V.cXg.V _Xg.c.VXz.c.c.VXg _. .VXgXg.V.o.V.c.c.c.oXt eXj.r.u.k 3.2.1 M.+.s 0 0.4 /XiXb.;Xb -XbX=Xb.).s H.Y.> Xl.] : P T Y 5 D.]", +"Xg N.bXz NXz.bXz.b.bXz.bXz.b.b.b.^.b.b.b.b.b.bXg.U.XXt.rXI 3 3XlX3X3.}.-XJ.9 kXD xX.Xh.3 .Y.-.,.j.nXUXm.ZXl xXD x $ $Xl x 3XDXK.u R x ` $ R.Z.~.eX-.~X-X-X-.`.a.eX-.e.~.e.a 3XV R.e.eXI B 3X1 R 3.~ a.~ R aX-.aX-X-XD.~ #X-X-.~.eX-.eX-XD.e RX- a aX, R.eX1X-.eX-XD.H aX-XI.e : x : t.Z.9 : 1.Z $XJ $.*XDXDXD a.aXI RXDXs s.0 ! 4Xx.A.XXgXk.zX@Xg.^Xg.c.U.U.#Xg.c.c.c.cXgXgXg.cXg.c.c.c.c.c.c.c.VXg.c.VXgXg.cXg.bXzXg.o.bXz N.b.X.R.R.$ ) q ( 5 (.$.X.5 F.rXtXt.r.rXt.r.r.r.r.r.kXt.r e.^Xz.^XzXzXzXz NXz NXzXzXz NXzXzXzXzXz.^Xz.^Xz.o.bXg.oXg.b.o.cXg.o.o.o.o.o.o.o.o.o.o.bXzXz.^Xz.^.^.b.^Xz.X.^.X e.r ~.8.8.`.8.` T :.Z B B RX-X- a.w.Z yXwXc y gXwXw ! v sXaXLXL.9XwXKXM # R.e 3X-X- 3X-.~ R.`XV.HX-.8 : .lXM `., | #XnXw v y.9 x $ c c 3Xl.8 3.u.u $ BXV 3Xe._.@Xn y :.5 ~.8.rXdXV.rXt.r.rXtXt.^Xz.X.b.b.oXgXzXzXz.o.b.o.tX9.I i.U.b.o N.b.b.b.b.X.^ e.b.b.b.^Xt e.rXt.rXtXt e.rXt.rXt F ~X*.`.o q.XXt.r e.rXt.rXj.^Xz.^.bXz.b _Xz.o.b.bXzXjXz.b.^ eXt.^.rXt.8 ~ ~X*.rX*Xk )X3Xk././ 5 q.$.z.$./ 5././X@./.U l.U.c.V.c.c.c.c.c.V.bXzXz _ _ _Xz _.V.c.V.c.cXg _.^Xz e e.b.#.c.c.c.cXg.c.V _.V.c.V.c.V.o.V.c.UXg _.c.cXg _XgXg.c.c.o.#.V.c.c.c.c.c.V.c.#.#.c.o.^ ~.r.R ( T.0 xXK bXLXG J.EXn M.;.s.vXf.v.v 2X=XZXe gX3X. `.u :.uXVXIX1Xd", +" lXz.bXz.bXz N.bXz N.b.b N.b NXzXz.b _.b.b.b.oXg.(.z.z.kX9X9XJ #XJXM x h.- nXK.M.'.,XK.,.-XMXB n n.'Xm.0 xXGX,XK.0.9 : : x c $X3 :XIX3 :X, R.e.e R B aX-X-.e 3XI R.eX-.eX-XV.e.Z RX1 RXI 3XDXDX-.aX-.~ aX-X- R aX-XIX1.~.uX-X-X-X-.e.~.e 3.~ 3.a.e.eXD.eX- a.eXIXIXDXI R.e a.eX-.e.* RXDXD.a c.ZXD $XDX,X, R aXIXDX,X,X,.W.0 9XU.'.z.AX .A.A dX@ ZXg.c.cXgXg.I.c.c.c.c.c.c.cXgXg.c.c.cXgXgXgXg.c.c.V.cXg.c.c.cXg.bXz.o.XXzXz.bXz.X.^XtXo.5X9 cXx c.r.r.r ~.rXt ~.rXt.r e.r e.r.r.KXt.rXt.^XzXzXzXzXzXzXzXzXzXzXzXzXz.bXz NXzXzXzXz.^.b.b.oXg.o.o _.o.o.oXg.VXgXg.cXg.o.oXg.o.oXzXzXzXzXzXzXz.b.b.^.bXk.kXtXt ~ ~XVXI.`X5 g.Z B.*.e B B.*.DXl 'XwXwXw gXmXUXU.n b 8XaXa oX..- : x t RX- a.e R.~X-XI 3 c.eX1XD.l ` k V.- [.S x uX+ vXe v.9Xe.M.a R.a cX- R RXI.eXI.~XD < UX=.@ 1 <X*.8.r.r.r.r.rXtXt e.r.r.k N.b N.b.^.b.X.oXgXz.z.o i.c.^.^.U N N.b.bXz.X.bXgXz eXz.b.b.^ eXt e e.r eXtXtXt eXt.r 3 ~.r F.r.r ~XtXt.rXtXtXt e.^.b _Xz _XzXz.bXz.b.b.o.bXz.^ e e.^.kXt.r.8.rXt.rXtXk.$XgXk qXk VXk q.&./ qXk.z q.IXk.z.U.U.#.U.c.c.c.c.c.c.V.V.V _ _Xz _Xz _.c.c.cXg.cXg.oXzXj e.^.o./.c.VXg _.c.c.o _.V.c.c.c.c.V.c.c.c.c _.V.c.c _.V.V.c.c.c.IXgXgXg.VXg.c.V.V.V.U. .c.# A d Q.f.kXI.HX1Xl v s vXLXn y.;.; 2X0 O.B.= H JXG.j y 1X1X5 IX5XxXx.H.8", +" lXz.b.b.bXz.b.b.b.bXz N.bXz.b.bXz.b.bXz.b _.b.o.I.&.$.A.$ q., 5 VX3 ` # 1X,X,.'.a.-XlX, `XBXM.- nXU.Y v R a.e R R R 8X1 a a.e a.e.e R.eX-.e.e.a.e.e a.a.e hXI h.e aX- a.~ 3.e.8XVX-.~ c 3 : c.a.~ aX- aX-X- R aX-X- x ` :.~X-X-.~ R R.e 3.eX, a DX. m.-X1X-.~X-X1 c aX- a.3 1 a.M aXDX,.a.ZX,X,XJ K TXD BXD.aXDX,X,.DX,.w.0.'XU.uXo.5.zXk.IXk l.IXj.bXg.c.U.UXg.U.c.c.U.cXgXg.cXg.cXg.cXg.VXg.c.c.c.cXg.c.c.cXgXz.bXgXgXz.bXz.bXz.^.rXd : ).K 5X*X*.r.r.k.r eXt.rXt.r.r.rXt.r.r.^XtXt.rXj NXzXzXzXzXzXzXzXz.^XzXzXzXz NXz.^ N.^XzXz.b.o.oXg.o.c.o.o.oXg.VXg.V.o.V.o.o.oXg.V.o.o.^XzXzXzXzXzXzXz.b.X.X.^.r.k ~ ~.`XVX-XIXJ $ 8 8 B B.* B R $.wXlXP.n v s 'Xm '.w tXD.n.'Xh m |XJ ` :XJ c : c.~X- 3.5X- RX- c # ` 1Xc XB.[X+ xXrX+ .X4 v.sXe UXe.i.a.a aXDX, R RX1XI <XeXbXnXn a.u.8X*XtXt.rXtXt.r.r.rXtXjXt.^ N.o N.o.XXzXg NX i.o N.o NXk NXz N.^.^.^.b _ _XdXjXzXz.^Xj eXt.r.rXtXt.rXt.rXtXt.r.8.r.8 ~XtXjXtXtXt.r.rXt eXjXz.^.oXz.b _.o.#.# l.c.o.^ e e e.^.^.r.r FXt eXtXt.I q.f./.(X .tX Xg./X@X .A.t.A.t.&.t.t.6.6.cXg.c.c.c.c.c.c.c.V.c _ _Xz.VXg.c.c.cXg.c.b _.o e e.^.b. .cXgXg _.c.V.o _.c.c.c.c.c.c.V.cXg.V _.c.c.c _.c.V.c.c.c.#Xg.c.c.o.V.U.c.c.c.#.7.t.7X .t lXd.rXt.r 3.8XIXI R $ T !XU 9.v O / 2 JX0.vXn 0.s.YXD :.AXJ 5.K.~ ~", +" lXz.bXz.bXzXz.b NXz NXz.bXz.b.b.b.b.b.b _.b.b.bXgXg.X q ) 3.r.} aX3 x.Z U $.Z R c x.a.- 1Xw.j g v $ 8 t R 8 B 8XDX-X- RX-X- aXI R.eX-X-.e R R.~ aXI m K | 6 3.e.~.e 3.e.aX-.HX- $XN m.G.%X-X-X-.e a a RX-X- R cXN.,.uX1.~.~X-.e.~ R.MXD.a T 1XN : a a.~X-.Z R.eX- aXN.aX- aX1X,X,XDXDXD 3 xX$ $.ZX,X,X,.aXDX,XDXD s.9.'XO.H.rXjX*.b N.o.b.bXz _Xz.c l.U.c.c.c.c.c.c.c.c.cXg.c.c.c.V.c.c.c.cXgXg.c.c.cXg.V.bXzXg.X.bXz.b N.b.^.r.r N.KX*X*.k.rXtXtXj.^.rXt.r.r.r.rXt.rXt.r.kXt.rXt e.^.^.^XzXz NXzXz.^XzXz.^.^XzXzXzXzXzXz.^Xz.b.o.o.c.o.cXgXgXg.VXg.o.VXg.o.V.oXg.oXg.o.VXzXzXzXzXzXzXz.^ A.b.z.XXoXd.k F D.HXV m @.n B B a.~X-.~X-XD.w x.!.n.wXa s '.wXD BXs.n.'.3., k., $ x # # : hX1XI 3XI B t 3 # # ` h Xe._XqX7XpX4X>.<.@ . %XnX4 [ yXr.w.MXD a 3X-XVX-.M u.s ^X+ aX* ~Xt.r.u.rXtXtXt eXt eXtXj.k.^ N.o.^.^.b.tXkXg.UXg.b NXgXkXj.rXt ~ e e.b.b.VXz e.^.b.b.^Xj.r e.rXtXtXtXtXt.r.r.r.8.r FXt.zXkXj.r.rXtXtXt eXt.b.bXz.bXzXzXzXz.U.UXg.^ eXjXd.^ NXtXt e.r.r.rXtXj.X NXgXgXk.zXk.z l.UXg.I.U.z q.z.z.U q.U.I.c.c.c.c.c.c.c.c.c.c.c _Xz _.V.cXg.V.c.cXg _XzXz e e.b.o. Xg.c.c _Xg.V.V.V.c.c.c.c.c.cXg.c.V.c.o.c.cXg _.V.cXg.c.c.U.c.c.c.c.c.#.#.U.cXgX&X X .I.UXg.^ eXt.rXt.k.r.uX9 qXM TXD.Z.'.' bXG 0 J JX> b v o.9X5 `X5.a.u 3X-", +" l.b.bXz.bXz.bXz.bXz.bXz.b.b.b.b.b.b.bXz.b.b.b.b.b.o.X.XXV.r cX-.a V x ` $ 1.}.Z 1XDX,.Z 3XM.YXBXw.[Xw x xXD aX,.Z.wX,XD.e.`.}XIX- 3X-.~X-.eX1 R.a aX-.a.} cXN.e.G : a RX-XI a.` R R 3XI K : c KXIX1X-.~.e BX- R.a BXK.% KXV 3X- R.eX-.eXD.u.e R.e., K B R.~.aX-XDX-X1 a RXN <.a.MX,X,XDX, 3XD RXlXNXIXI.eX5XDXIXDX, 8 $ 'Xl T T.8XdXt.o N.b.b.b.b.o.bXz.o.c.# l.cXg.c.c.c.cXg.c.c.cXgXg.cXg.cXg.c.c.V.cXg.c.VXg.b.b.oXgXz N.b.bXz.^ eXt.rXVX*.rX*.r.r.rXk.I.6.r.rXt.r.r.rXt.r.r.KXt.r.r e.^XzXzXzXz.bXzXzXz.^XzXzXzXzXzXzXzXzXzXz.b.o.o.o.cXgXgXg.V.VXg.VXgXgXg.VXgXg.VXg.VXgXg _XzXzXzXzXzXz.^XuXx.t.R Q.R P g.2.RXy Y.G.ZX1 BX- aX-.e.e.* R 8.Z.Z 8 R.D.ZXDXD.*.Z.nXKXwXX # c.*X-.a.e.e.eX-XV.`.~ aXD.i #XX ` 1 x U .Xq .Xn.F ..J.C.{Xf.x.x.+.+X% = = y.,XJ.8XIX-.a p.v...YX, c ~.r.rXtXtXtXt.r.k.rXt.r.^.^.k N.X.r ~ ~./.I.b.oXz.b.bX9.b.r ~ ~ F ~XjXz _ _ _XzXzXz.b.bXjXt eXt.rXtXt.r e.rXtXt.rXV ~ ~.rXt eXt.r.r.r eXt e.b.bXzXz _Xz eXzXg.c.b e eXd.b.b.bXdXtXtXt.r eXj.^.b.b.bXg.UXg lXg.c.c.c.c.c.c.cXgXkXg.cXg.#.c.c.V.c.c.c.c.c.U.c _ _Xz _.V.c.VXg.c.o.V.oXzXjXj e.o l.IXg.c.V _.c.c.c.c.c.c.c.c.c.c.c.c.c.c.V.c.c.V _.c.V.VXg.c.#Xg.o.cXg.c.#.U.cXg.c.I.U.o.U.c.#.X e.rX* ~Xo 5 ) PX9.rX* 3.` RX1.Z h.Z 1.ZXsXG b s.Z.'.9 s.Z s T x", +".U.b.bXz.b.^.b.b.bXz.bXz.b.b.b.b.b.b.bXz.b.bXz.b.o.^XkXg.k ~XV.`.a ` VXM x c.Z.w.u R $.Z ` ` XBXwXH.YXlXe h x.w s.n 1XD.}X-.8 3X1XI R.D.w $.w $.Z.MXD t #XN.3XN ` 3 3.eXI.` RX1XI.~X1 K.3X$ $ 3X1.e R aX- aX- R RX#XcXN ` RXI R.e a.~X,.a a R hXN $X-.a B.e RXI R.e t RXNX,XD.ZX,XD 3 R.DXIXDXlXNX1.e #.~X,.a.a R BXl '.nXJ $.rXt.b.^.b.o N.oXg.b.b.VXz.c. .o.c.c.c.cXk.c.c.c.cXg.V.cXg.c.c.c.c.cXg.cXgXgXg.c.bXzXg.oXzXzXzXz.b N e.rXtXt.rXtX*.rXt.rXz.6.^ eXt.r.rXt.r.r.r.r.^.k.rXt.r N.^Xz.^XzXzXz.^XzXz.b N.bXzXz.^XzXzXz.^.bXgXg.o.cXgXgXgXg.oXg.c.o.VXg.o.V.c.V.oXg.V.c _.bXzXzXz.b.bXz.I A.t.R 5XxXxXx (Xx 'XJ (X,.*X-X-X-.e $ $XD.' RXl.w RXDX, h 3X, R.D.n.]Xw ` 1XM.a x hX,XI :XM 3X5 3 xXD `XM.[ VXp h E.m E vXqXp p..XAXf.;X8X> W MX>X>Xe.wXl h 3X- R <.d.).sX> h c.8.rXtXt.r.rXt.rXt.r.k.rXt.k N N.K.r.^ FXt.X e eXz.b.b NXk ~Xt F F ~ NXz _Xz _XzXz.^.bXzXj.r eXt eXt.r eXt.r e.r ~ ~ F.8 F F.8.r.rXt.rXtXt e.bXz.bXz e e.^.bXg.bXzXjXjXzXzXo.bXd.r e.r.rXjXj.^.bXzXgXg.cXgXg.c.c.c.c.V.U.cXg.c.c.c.c.c. .c.c.c.c.c.c.c.c.c.V _Xz _.o.cXgXg.o.V.c.oXzXzXz l.b l l.#.c.cXg.V.c.c.c.c.c.V.c.c.c.c.c.c.c.c.c.cXg.V _.cXg.V.c.U.U.c.V.c.V.V.cXg.V.c.c./Xg.cXg.UXg.zXjXt.^Xk.A.& qX*.rXt.K.r ~.8.8.8.8.8X1XIX1X1.D '.wXG.OXD.' 1.' s", +"Xg.b.oXzXz.bXz.bXz.^Xz.bXz.^Xz.b.b.bXz.b.b.bXz.o.b.bXgXg N ~.^X-.` #X3XMXB.l x h h.w 8X, $ 1 1 Xc.gXw nXG.wXG.n oXK.' 'XD a.eX-.~.e 3.Z.W x sXa.w x s t t #XS.e :XNX-XI.eX-X-X1 3.~ aX- K :.3.S.e 3 3XIX-X-.e 3 R $XHX5Xc 7X-XD.~ R.~X-.Z RX- a.% YXD.- RX- R a R.} aX-.aXNX, cXD 3.ZXIXl c 3 3.ZXNXl V T a 3.uXIX1XD.n.n.].0XI.r N N.X.o N.b.c.c.c.oXgXg.U.IXgXg.c.c.c.c.c.c.cXgXgXgXg.c.c.VXg.c.c.VXg.c.cXgXgXgXg.cXgXzXz.bXzXz.b.bXz N N N.K.^.^X* ~ NXk qXj.r.r.r.r.r.r.r.r.kX*.r ~ e.^.^.^Xz.^Xz.^XzXz.^.^.b.^.^.^XzXz.^.^.b.o.o.o.oXg.c.oXg.oXg.V.oXg.V.o.o _.o.V.o.o.o.o.b _Xz.^.^.^.^Xz.^.^Xg.k.r.r.r.H.`X1 B.0.0 : R RX1 RX1 x 3XJ TXJXKX.Xc.9Xc.,X,XD B.D.w.0XUXc : `X,XcX, : h xXJXD `.Z ` h kXKXB.- 1Xe E U t.M.Z v._.W._X>.xX4._.YXpXnXn.M 8 c a RX- a < E.)..XG h R 3X*.rX*.rXt.r.k.rXtXt.rXt.rXt.X.k.8.8X*.k.X F.oXz.b NX9 ~ ~ e.r eXz.b _Xz.b.b.b N.b.^XtXtXjXt.rXjXjXtXj eXt.rXt.r F.`.k.5.r F ~Xt.r.rXtXtXj.^.^Xj eXj.b.o.b.b.bXj.^Xz.b.^ lXd.r.rXt e e.^Xz.b _Xg.c.c.c.c.c.c.c.c.U.c.c.c.c.V.c.c.c.IXg.c.c.c.c.c.c.c.cXgXz _.oXgXg.c.c.b.bXg.b.b.bXj.V.# i l.U.cXg _.c.c.c.c.c.c.c.c.c.c.V.c.c.c.c.c.cXg.o.o.c.c.VXg.U.U.V.c.c.c.V.c.c.c.UXuXu.o.cXg.c.U.QXg.IX@.&X9.^.r ~Xj.r N.rX*.8 ~.8.8 ~.8.8XVXV.`.k D.KX1.u : ' ' '", +" l.b.^.^ N NXz NXz.b NXzXzXzXz.b.b.^.b.b.b.o.UXz.bXzXgXkXgXj N F.`.8X3 `XX .l x 8Xl.DX,.Z h.-.F .,X<.1Xc s v oXw.>.9.9.ZX- R RX- B.w.w b.E o.q y o.Z U a :XSX3XH IX- 3 R.e 3.eXD.aX- 3 K kXD YXJ 3 RXDX-.e R.e cXH :.~ 1X# `X-.~X- B.e.u.e R.H n.3X. `.e a a t a.M R a.eX. :XIXIXD cX5 c 3.e R :XcXK.].} RX-X-XD.DX5 '.0XPXVXd.k.b.b.b.b.o.o.cXg.U.c.c.c.U. l l.U.c l.c.c.U.U.U.U.U.U.U.U.U.c.U.U.U.U.U l.U.U.U.z.#.zXgXg l.XXg.oXgXxXgXgXg.XXx N.^.^.KXj N.^.k.^.K.^.k.k.^.k.X.5.^.^ N.X.XXgXxXgXgXxXgX9XgXgXgXgXgXgXgXg.U.U.U.U.U.U.U.#.U.U.U.#.U.#.U.U.#.U.#.U.#.U.#.#.#.U.U.# lXg l.cXgXkXk.z.IXx.X N N N.k.kXt ' g ' $ $ c c.u cX5 $ $ $XlXM.9 x `XK s x.DXl 9.9XUXH.[X3 XX 1.i c h x h $ 3XM h 1.[.- [XBXq xXq U U.i.9 x XqXpX+.;XrXnXnXw.@ ^XL x c cXIXDX, U.W .XnX> v 3 cXtXo.k N N N.k.5.k N.^Xo NXo.k.5 N.kX9Xt.r ~.bX9XgXkXx.k.k.kXj.b.o.o _ _.o.o.b.o.o.o.^XjXjXjXj.X.bXjXd.kXjXt.k ~.`.`.5.z.`.`.`.8.rXtXtXt eXtXtXdXjXz l.6. .b.b.^ N.b.bXzXxXt.r.r e.r e.^XzXz.b.o.V.V.c.c.V.U.c.c.V.c.V.c.V.c.c.V.o.#.VXg.c.c.c.c.V.c.b _XzXz.cXg.VXg.o.^.bXg.o.oXzXj eXj l l.UXg.o _XgXg.c.c.V.c.c.c.c.c.c.c.c.c.V.c.c.V.o _.c.c.cXg.#.c.c.c.c.c.VXg.c.o.VXg.#.VXg.c.UXg i Z d.&.oXt.r.rXtXt.r.X.r.r.r.k.r.r.r.kXdXt F.R.R./.k ~ ~.8X1XI.u", +"Xg.b.^.b.b.b.b.bXz.b.bXz.b.b.^.b.o.b.b.b N.c.f.#XzXz.o.cXkXz N.8.8.e # V.l #XMX,X,XDXsXIXD.l 1 1XB ` n nXw.j.>XwX0.9.'.Z.* t.eXD s.w b & H w o.q.9.wXa R xX5 x c a c a.a R.uXD 3XI RXD 3 $X,XI 3XIXI.a 3X1 3XDXDX1 3.a $.aXI.} 3X1XI 3 ' 3XD 3XI.u.a 3X, 3XDX,.Z $ 3XD.Z $ $X5 c : :X5XI 3 3 c.a $XD $X,.a h.u.Z.n g.0XO.5.5Xo.XXk.zXx l l.U.I.#.I.#. .I.# i.#.#.U.#.U.U.#.U.#.U.U.U.#.U.U.U.U.U.U.#.U.U.U.#.#.z.U.I.# l.XXg.o.o.o.X.o.b N.^.^.k.k.k.k.kXt.k.kXjXjXj.k.k.kXt.k N.^Xj.k.^.b.b.o.b.b.b.b.b.b.b.b NXzXzXz.b.bXgXgXg.oXz.o.oXg.oXgXg.VXgXg.cXgXgXgXgXgXg.cXg.c.VXg.cXg.oXz.b NXz.b.b.bXx.^XdXtXt.r.8.8X1.HXOX5.Z R RX- R.~ c a aX- R R hX-.M $ hXD RXD.D.wXKXwX3XX #XMXM # $ 3.a.a a.M.a.aXMXc.-.-Xq E U x a.aXD.ZXD U.M.F.@.pX>.j uX+Xn %.WXe.M.}.M u < uXF....XnXw x.`.uXt.k.k.H.KXt.kXt.k.^XdXtXoXt.k.K.K.zX9 NXtXxXg.^.K N.kXd N N.b.o.oXg.cXg.cXgXgXgXg.o N.kXt.^XxX9Xx N N.^Xo.K.kX*.rXV.K.r.r.rXt.k N N N.X N.bXg l.U.#X Xu l.U.z.U.zXk.o.z N.b.X N.b.oXk.U.U.#. . .#. . . .#.#.#.#.#.#.#. . .#.#.U.6.U.#.#.#.U.#.#.#.VXg.cXg.U.U.U.c.o.o.cXkXg.o.b _Xj _.U.U.Q.U.V.o.U.c.cXg.c.c.c.c.c.c.cXg.c.cXgXg.c.V _.bXg.V.c.o.#.oXg.b.o.cXg.o.cXgXg.c.cXg.^.o i.zXz.zXg.z.^.^Xj.r eXtXj.X.r e.r.r.r.rXV.H.rXd ]X@ )Xt.^.rXj.k.r.k ~", +".oXg.o N.b.b.b.b.b.o.o.b.oXg.o _.bXg.b.X.o.o.UXg l.c l.U.I.z.z N.k 3X*.,X3XB XK 1.' 1X5 $ xXHXH 1.-.- nX<.SX. [X. =XUXKXG s.w s.'.!.+.T S.@X6 =.+Xm.9Xl.D.H.wX,.a.M $ R RXDX, R.ZX, RXIXDXIXD 3X-.aXIXI $ R R RX1.a.a a.uX-.aX- R.~X-XI $X1.~ a.eX, t.ZXDXD.eX- a tX,XD.aXDXDX-XDXD.uXIX-.a.` R.e.ZX-.a.a R.a R.D $.0XU.5X1.u.u.^.^.bXz.b.b.b.c.c.cXg l.cXg.#Xg.c.cXgXg.c.c.c.cXg.c.c.c.cXgXg.cXg.c.c.cXg.o.cXg.c.c l.zXg.bXzXz.b.bXz.b.^Xj.rXt.rXtXt.rXtXtXt.r.r.r.r.r.rXt.r.r.KXt ~Xt.^ N.b.^Xz.b.bXz.b.bXz.bXz.bXz.b.b.o.VXg.o.bXz.o.o.cXg.c.oXgXgXgXgXg.cXgXg.oXg.oXgXgXgXgXgXg.o.b NXzXzXz.b.b l.k e.r.r.r F.8.H.`.0X5 $ 8X-X-X- RXIXD.e R aXDX, R.a $ cXDXD R.W.nXKXwX3XX #XMXM.l c.lXMXc c $ xXM V V.gXB x.M h <.aXD 3X, U.MXpXn .Xr.Y U.9Xf...WXs u.M uXsXe p pXbX= 0XK., 3.`.8Xd.r.^.uXt.k.k.rXdXtXt.r.kX*.r.r.K.^ ~.^X9.XX*.k.K.u.k.rXj N.b.b.^XzXzXzXzXzXz N.b.k eXt.k./.5 NXk.X.K.K.r.K.`.~.`.`.~.`.~.` F ~.r.r.r e.k.^.^.bXzXgXg.^.bXz.^Xj e e.b.r.r.r.r e.^Xz.b.oXg.cXg.V.U.c.V.U.c.c.U.c.c.U.c.c.c.U.U.#.c.c.c.c.c.U.U.c _.o.c.c.c.cXg.oXgXg.U.U.c.cXg.oXz l.U. .Q.#.U.U.U. .U. .#. . . .#. . .#. .I.#. . .I.U.#. .I. .z i.#.I.#.6.I.I.U.z.Q.#.z.z lXgXk. .b l.I.6.I.UXk.o.b.^ eXj.bXtXd.k.r.k.rXd.^ ) ].$ N.k N N.^XtXt e F.r", +".z.z lXgXgXgXgXgXgXgXgXg.cXg.cXgXg.cXgXgXgXg.o.o.b.o.o.oXk.UXk NXt ~.`XM V .lXq h $ h.D.'Xh., n.aXD 1 : `XMXBXc.[.YXn.wXLXe.n.s.jXh MX: r.s.T.T.>XO.2.0 gXlXcX, a.M.M.e $X,XIXcX5 R 3X-Xl $ 3X-X-.e.~ 3X-.e aX-X-.e RX,.eX-.e a.~X- 3XIXI a RX-XDXIX3 $Xc 1 ` :.a :X3 : : : )XJ.]XK.u RX- R RX-X,XD.M RXD.aX,Xa.n g.]XoXt.H.r N.bXzXxXz.bXzXk.cXg.c.c.c.c.I.c.c.cXk.cXk.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.cXgXgXg.U.U.oXz.^.b.^Xz.^.b.^.r eXtXtXt.r.r.r.r.rXt eXt.rXtXtXt.rXt.^XjXt.^XzXzXzXzXzXzXzXzXz.^XzXz.^Xz.^.b.o.o.o.o.b.V.o.o.o.c.o.o.o.o.oXg.o.V.oXg.V.o.o.V.V.o.V.oXg.o.o.bXzXz N.^.b.bXg.^.rXd.r.r.8 ~ ~ B.DX5.w.D R RX-.a R 3X- a.e R.aXD R hX,X,.} 8.Z sXK nXcXc.-.-XcXBX3 xX#X#.-XB k.,XZ.SXh.h k h h h R.aXDXDX1.a U vX4.<.@.jX,Xp.@X6.s p.. p.s.sXn.sXb.s 0X>.> gXI.HXt.u.r.rXtXt.rXd.uXtXtXtXt.r.rXtX*.k.K.^.K.5.K.5 )Xx.5 (.X N.bXz.b N.b.bXz _XzXz.b.b N.k FXx.f.A } 5 5 5 | ).$XV.` #X9 #.`.`.8.rXt e.rXj.b.o.bXz.bXz.b.oXz.^.^XjXj.r e.oXt.k.r.r.^Xz.b.b.V.c.c.c.c.c.c.c.c.c.c.c.U.U.c.c.c.c.c.U.#.c.cXgXg.c.c.c.c _.o _.V.o.o.b _.o.o.cXg.bXzXzXj e.o.o.U.cXgXzXg.V.c.c.V.c.c.c.c.c.c.VXg.c.c.oXg.cXgXz.V.c.c.cXg.#XgXgXg.6. .&.I.6.6./ AXk l.o.z.b.^.^ iX .#.I.#.#. .UXu.#Xu. Xg.b.X.XXxXk.A 5.&Xo.5.X lXg.z.z lXkXx.o", +".o.o NXz.bXzXz.b.b.^Xz.b.^.^Xz.b.bXj.bXzXz N.o.^ _.bXz.b.oXkXk.XXt.8.8 3XJ .l.l $ $.WX,X,.'XH.-X,X, 3 # ` .-X3 ` nXc y.9 9 JXGX>XC.@.@ %XA {.xX0Xm.n ' 8X1.DX, a.a.e XD : 1 $ T D DX5X. :XKXJ.e.~.a R a.a c 3XI.e.uXD 3 aX-.~ aX-.~ 3X1 3 a.~X-XDXl.ZX-XlX, hXlX,X,X,XMXlXl $ : : T 3X- RXD RX- $ R.a.a t t.Z.n.0 4X5.%.z (.R A.R.t.6./Xg.b.o.c.c.c.c l.c. Xg.c.c.c.c.c.cXgXg.cXgXg.cXg.cXgXgXgXgXgXg.cXgXgXg.c.c.c.z.b.b.b.bXzXzXz.^.^ e.rXt.r.rXtXtXtXj.rXtXt.rXt.r.rXt.r.r.^.k.^.^Xz.^Xz.bXzXzXzXz.bXz.bXzXzXzXz.b.o.VXg.o.oXgXgXg.b.cXgXg.o.o.V.oXgXgXg.oXgXg.VXgXg.VXgXgXg.oXg.oXzXz.b.b.^.bXgXd.r.rXt.r ~.8.8.HX1.0X5XD R RX-X- R RX,.e R.eX,XDXD.u x.Z 3 <.D.'.EXOXUXw g.jXw k.9X3X7XX `XB ` 1 k.[.Y.iXM.Y RXD.uX1 R.a.ZXq.x WX> MX,.9.E.@ b 0 . . 2 0Xn..X6 ^XC HXUXwX5XxXx.$.R 5.R ( 5.$ QX9.R 5.&XtXtXt.r.r N ) q D q I.A 5 : 5 qXg NXzXz.b.bXz _Xz _Xz.b.b.b.^.k.kX9 q.5XM.KXk.u.rX*X*X-.8.u ~.`.8.r.r.rXj.k.^.^.b.^Xz _.oXzXz.^Xj.r e.r e.^XkXjXj.rXt.^.b.bXz.V.c.V.c.V.c.c.V.c.c.c.c.#. . i. .U.c.c.U.c.c.o.cXg.c.o.oXzXzXz.o.V.o.V.o.VXg.c.c _Xz.^ e e.oXg.#.c.oXz.o.V.c.c.c.V.c.c.c.c.c.c.c.c.V.c.c.c.VXz.o.c.c.cXg.#XgXgXg.f.6.t.6.fX .&X&.& f.Q qXz.o F.#. .U.c.U.c.U.U. . i.6Xg.XXg././X Xk.r.k.r.r ~.r.b.^.^.^.^XgXd", +".^ lXzXz N.^.c.bXz.b.b.b.cXg.^.bXzXg.oXk.b.b.b.o.UXg _.b.bXgXkXkXt ~.8.`.lX3XM # h U h.ZX,XcXl aX5.} $ 3 h : c.l 1 k.,X<X0Xr.; & H H._Xb p .X4 .X>.E.w.w R B.e B t.eXD a 3X,X,.eXIX, $ a 3XDX- 3 R R.e.~ 3.u $ TXlXKXlXcXK `X1 aX-X- aXI R 3X-.e.eXD.e a R.e.e a.e.e.aXI.a aXI.aX,.e.~.~.a RX-XDXD.ZX,.M R t.M.w.w gXD.] ).R.XX d.I X AX@.o.o.^.o.c.cXgXg.V.#.o.c.c.c.c.c.c.c.c.c.cXg.c.c.c.c.c.c.c.c.c.c.c.cXg.o.cXg lXz.bXzXzXz.b.b.b.^.^Xt e.r.rXtXt.r N NX*.rXt.r.rXt.rXtXt N N.b.bXzXzXzXzXzXzXzXzXzXz.^.^Xz.b.b.o.VXgXg.V.o.o.o.o.oXg.V.o.V.oXgXg.VXg.VXg.o.VXg.VXgXgXg.V.o.VXg.o.^.^.b N.b.b.XXd.rXd.r.r.8 ~.8.H B.5.n.Z.aXD R.aX-X- 3 aX-.e.aX- cXD c c.}X,.w s sXP y 9.9 9Xw y.-X7.gXq.F xXMXqXBXB.-XB.l U.-.-.a 1.e.` R.Z._.jXn.x.h.j.uXl.jXC J JXi %Xi o w H.;.; HXm g g.kXJXx.R.$.|.| 5Xk.R.& 5.z q.A.^XtXjXtXjX9.$.$ ) :.K.5.5.kX9.XXx l l.oXzXz.bXz _Xz _XzXz N N.X.$ qXxX9 ).5XMXXX9 cX*.`.8.`X-.` ~ ~.r eXdXz.b.b.b.b.bXz.oXj e e e.r e ~Xj NXkXtXt.r eXz.bXz.bXg.c.c.c.c.c.c.V.c.V.c.c.#. i i. .U.c.U.U.c.c.o.c.c.c.b _ _ _.bXg.V.cXg.V.b.V.o.b.b.b e e e.bXg. .c.b _.V.c.c.c.V.c.V.c.c.c.c.c.c.V.oXg.cXg.o _Xg.V.c.c.c.I.oXgXgXk.z N.b.XXkXk NXx.X N NXzXj.^.o.o.cXg.c.V.c.c.cXu. .#.U.U.UXu.f.rXj.kXt.r ~Xt e e.^.^.b.bXj.o", +"Xg.tXk.b.b N.6.I.b.oXzXg i.IXz.b.^. .b.I.^.b.b. ./.c _.bXz.oXkXk.^Xt.8.8.` V 1.i h $.aX,X,.ZXlXlXDXI.ZX,.a.a 1.lXc.[.g.j.jXp HX>.@ p.)Xe._..XbX>.jXL.Z 8 B R a aX-.aXDX, T :Xl : :XcXl : ` $X- 3X-X-X-XDX- a.u cXMX5 1 c x.aX-.~ a.~ 3X-XDX-X-X- 3 aX- a R.e RX-.a.e.a.a.aXDXIXIX- R R R R RX,XD $X,.a.M t.Z.w 9 TX1XV.r eXd.^XoXz.z.b.b.^.b.oXz.o.c.V.cXg. .c.U.c.c.c.c.c.c.c.cXgXg.c.c.c.c.c.c.c.c.c.cXgXg.cXgXgXg.cXz _XzXz.^Xz.bXz.b.^.k.rX*.r.rXt.r.XXgXgXt.rXtXt.rXtXtXtXg.oXz.^.bXzXzXzXz _XzXz.bXzXzXzXz.b.oXgXg.o.o.oXg.o.o.o.o.o.oXgXg.o.o.o.o.oXg.V.o.o.VXgXgXg.o.VXgXgXg.oXzXz.b.^Xz.b.oXd.H.rXt.rXt ~.`.HXD '.n 8X, $X,.ZX-.ZXDX,X5 3XDXDXK.ZXDX5X-X-XD '.w.n.nXL s b yXqXnXq.[X7 1XpX7.SX%X7X<.S [X% kXhX#.,Xc.]Xc.[ [ M.<.@.jXw.DXV &.> &.jX>X>.E &XrX0 y J b O gXJX1.H.u NXV.k.r : I ~X5.r.K.k.kXt.rXt.r.rX*.5 ).KXxX3XJ D q.RXoXzXz.bXz _ _Xz _XzXzXz.bXz.b N.o./.f.&.f.f.f q qXX q ).8 ~X- F.` F.rXjXdXz.b.b.bXjXz.oXz.Q.UXg ~ eXt e.r N.bXg eXt e eXz.bXz.o.V.V.V.V.c.c.c.V.c.c.c.V.V.c.c.V.c.V.c.U.U.c.cXg.c.o.oXzXzXz.b.o.cXg.cXg _Xz _Xg.oXzXz e.I i.#.o.#.cXz _.c.c.c.c.V.V.c.V.c.c.VXg.V _Xz _Xg.V.oXzXg.o.VXz.b.c.b.oXgXkXu.z./X@X@././ q./.IXk N.bXg.c.c.c.c.V.V _.V.VXu.#.c.cXk.cXkXgXk.o.X.^.^.^ e.r.r e e eXj.^Xj", +"Xg d.oXz.bXz./.UXz.o.bXg. .#Xz.b _.U. .#.o.^.oXk.oXz.^.b.b.o.o.I N.r ~XVX-XX VXM.l $ hXK k $X,XlX- 3 3X,XIXD.M $.lXM XpXrX+ ^ . %Xn h u.W p...@ w 0.wXsX- aX- R.eX-XI cXDX5 c.u $ cXD $ c.} R RXI.e.~X,.eX-X- a.eXDX-.eX-.e a.eX- aXIX- c.e.~X- 3.~ a.e.a aX- aX-X-.a RXIX-XI.aX- R R.a RXDXD R.D.M R.a.MXaXaXKX5.H.k.rXt.^.X _XoXz.b.b N.b.b.b.b.cXg.U.o. _XgXg.cXg.c.c.c.c.V.c.cXg.c _.cXg.U.o.cXg.c.cXgXg.c.o.b.c.b.b.bXzXz.bXz.^.b.^.k e.r.r.rXt.r.r.r.r.r.rXtXtXt.r.r.^Xg.XXzXz.bXzXzXzXzXzXzXzXzXzXz.bXz.b.o.V.o.VXg.VXg.o.oXg _Xg.V.o.o.oXg.V.VXg.VXgXg.V.o.c.V.V.c.o.c.o.c.o.^.^.bXz.b.bXoXd.r.r.rXt.k.`.8.HX1X5.'.DX.XKX,.9 mXc.e gX,.Z.~.2 : 1 R.,.e.~.wXyXs.nXa 1XL x.jXq E E.F.p.[.p.-.g [.SX<X<Xr >.O.g.9XKXlXK `XcXpX%.J.@XpXK.DXIXU.> g.q.; &Xr.j o o v sXaXyXOXU.`.8Xt c.k cXx P ,.KX*.u.r.r.k.r e.rXt.r ~.rX9 `X3Xo.KXoX*.^ N.b.bXz _XzXzXzXz _Xz _Xz.b.bXz.b.b.X.XX9.XX9X9.^X*X*X*.8 ~.8 F.8.r eXj.^XzXzXz eXjXzXzXz.c.U.o eXd.r.r.k.b.X N.r e.rXj.b.bXz.V.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.V.#.c.c.V.c.o _Xz _ _Xz.b.c.V.c.c.V.b _ _.c.o NXj eXj.#XkXg.#.bXz.VXg.c.c.c.c.c.c.V.c.c.c.V.bXzXz _ _Xz.bXz.c.VXz.bXgXg.b.b N l.z q./.$.I.$./.& q.t q.oXg.U.o.o.VXg.V.VXz _Xz. .cXg.cXgXu.U.oXg.b _.c.U.VXg.c _XzXj e e e e", +"Xz.I NXzXz N.cXg.b.b.^.bXg.bXz.bXz.bXz.^ N.b.bXz.b.o.o _.o.b N.IX@.^.r.8.8.a `X3XB #.-.- x 1.Z x 3 3XDXl CX,.D.aXM.l.l XpXrXnXbXb.d.*X, tXe.) L.; J.s.s.Z $.aX-X1X-X- BXI 3 B 3 a RX-.a.a a a a 3X-X- 3X-X-.~ RX-.u a.*.eX-X-X-X- R 3.~ c.e aX-XDXDXDX- a.e.e R a.a RXIX- aXIXI.e `.' aXlXDX,XDXD ` c x.n.w 'XJX1.u ~XjXd.b.^.^ _ N.b.b.b.oXz.o.b.b.o.cXg. .U.c.#.#.c.c.c.U.6. .c.c.c.c iXgXg.V.V.6 i.U.c.c.U.o.c _.6.b.bXzXzXzXz.b.^.b.^Xj.rXt eXtXtXt.r.r.r.rXtXtXt.r eXt N.o.b.^XzXzXz.bXzXzXz.bXzXzXz.^.bXz.b.oXgXgXg.oXg.VXg.oXg.o.cXg.o.c.c.o.cXg _.o.VXgXg.o.o.c.cXg.c.o.b.c.b.bXzXzXz N.bXg.r.r.r.kX*.r.r.H FXaX5.n $ TXJXD :X,XK RXlXJ.w.e.9 :XD.D DX5X-.0.] sXDXlXs.w v.jXG.W E.mXqXq .FXBXB.Y.p.[ ._X7.9 U $.e R.M.M._Xn...@.T g.HXVX; g.! gX0 o.9 o.'Xm.nXaXaXy 4.G.2., 5 I 5 I q.5 qX-.8.`.8XtXt.rXt.rXt.r.r.u c 3XlX1 cX*Xt.k.b _XzXz _Xz.bXz.bXz.bXz.bXzXzXzXz.b.b.b.b.b.b N.k.r.r.k ~ F.8.`.r.r.r eXz _XzXz e.^.b _.^Xz.^ e e.r e.k.b N.^.^ e.r eXjXz.b.b.V.V.c.V.c.c.c.c.V.c.c.c.c.c.c.c.c.c.cXg.#.c.c.o _ _XzXzXzXz _ _.cXg.c.c.oXz _Xz.c.^.bXz e eXz.V.c.U _Xz.V.V.c.c.c.c.V.c.U.V.c.V.oXz _ _Xj.bXz _Xg.V l _XzXgXg.^Xz.XXj.X N.^.b N.^.k N.^ N N.o.oXg _.o.V.V.V _Xz _.^.U.^.b.o.o.IXz e e _ i.U.c.c.V.U.c.U.V.V _.oXg", +" NXg.b NXz.b.^.b.bXz.b.b.^Xz.b.bXz.b.b.b.b N.o.oXz.bXzXz.b.b.b.z.A dX .AXX |.5XZ } XM $X,.MX, $ cXI cX5.*.D.M x h c.}.iXBXq.j.< .X6 t.*X, B.Z.s 0.;.4.@XGXK.W 1X,XD BX- R.eXDX,XI R R.aXDX- aX-X-X1X- a RX-X-X- aX- a 3X- aX- t a RXI 3 R $.~ R R 3 T ` : $X5 c cX-.a R 3.eX- R 3 aXK.KXH.,XwXJ.- 1X..OXcXy s T.0.8X*XtXt.b.bXzXz.XXz.^.b.^.b.bXz.b.b.cXgXg.#.c.cXuXu.U.c.c.UXu i.c.V.c.UX&.U.c.U _. . _.V.c.#Xg.#.b d.oXzXz _XzXz.bXz.^XjXt.r.r.r.r.r e.rXt.r e.rXt.rXt.rXt.^.X.o.^.b.bXzXzXzXzXzXzXzXzXzXzXz.^.b.c.cXg.o.VXg.o.o.o.V.o.cXg.o.o _.VXgXgXg.c.c.V.o.V.V.o.VXg.V.o.c.U.bXzXz.zX&.b.X.X.rXoXt.k ~ ).u.HX1 TX5.w B.* a.* R 8X,XDX,.e R.e BX- RX1 R RX-.DXaXa.n s.wXe v HXn p E U E E h EXq X+.p.-X%X% WX+XeX, UXD x.1.g._Xf.@ yX,X1 (XyXwXyXPXy n s.9 'XD 8 BXa.]XO.|.u.u.kX9X9.5.5.u.`X5XI )X-.kXtXt eXt e.r.u.rXI 3XJ RX5.8.rXtXz.bXz _XzXz _Xz.b.b.b _Xz _XzXzXzXzXzXz.bXzXz.b N.kXt ~.r.kXk N.r e eXj.bXzXj eXz.^XzXz _.oXz.^XjXjXj N.b.k.^XtXt.r e.^XzXz _.c.c.c.c.c.c.V.c.c.c.c.c.c.cXg.c.c.U.c.c. .V.c.oXzXzXzXzXz _.bXg.c.c.cXg _XzXz _Xg.o.o.^ ~ e.^Xg l.cXzXzXg.c.c.c.V.c.c.c.c.c.V.o _Xz _Xj e.cXg.bXg l.V l.Q l.oXgXx.^.XXxXo.X.X.b N.oX9.^.b.b.cXgXgXz _ _.o _XzXz _Xz.z.b.b.^ e.^ eXj ~Xz. _Xz.V.#. .#.U.c.U.#.#.U", +".b.o.o.bXz.o.^.b.bXz N.oXz.b.b.^ _.b.o.b.b.b.b.bXz.o.#. .b.b.b.c.tX@ q.zXx 5 c YX#Xl.lX,X,X,.Z h :.}.Z $ R.DXDX,X, h.}.} xXBXr.C.J 8 B.H.~ C.WXb ^.@XCX0 = M nXwXcXKXc.9XK R.DX, R RXDX- a.MX- RX-XDX- 3.e a.~ aX-.~.aXI aX-.eX-.~X,XDXI 3.e.e B a c $ :X5 :Xl $XIX-XI RX-X-X1X, a xX,.Z xX, x.Z.wXJ.0 gXUXPXU.`X* ~ eXd.X.^.XXz.bXg.^.b.o.^.o.b.b.o.b.UXg.6.c.c i i.U.c.c.c. .6.c.U.o. .#. .V.V.c i i.UXg.c.U.VXg _ i.z _Xz.^.bXzXz.b.^ e.r eXtXtXtXtXt.r e.rXt.r.r.r.r eXt.^Xg.XXzXzXzXz.bXzXzXzXzXz.bXzXzXzXz.b.o.cXg.oXgXg.o.V.oXg.oXg.o.V.cXg.c.b.c.c.o.VXg.c.cXg.o.VXg.c.c.V.bXz.bXz.zX&.t ZX@ A.A 5 5 f.R ].0 ]XO $X, t RXDXlXlXDX,XI.Z.~.eXDX1.*.eXI.a BXD.w.Z 9XG.9XGXG.Y HXe U E U.d h.W h E.i 1XqX7.y.TX<.1.YXp xXq t nXp.. J ^.j !.H DXy g ( '.0Xl.Z.Z B RX1X1.D ' (XU.H.8X* 3 :X9X9.k #XV.5 #X*.8.rXt.rXj.r.rXV.8.} T xXlXD.rX*Xt.^ _XzXz _.bXzXzXzXzXzXz.bXzXzXz _ _ _XzXz.b.b.bXj.r.rXt ~.`.XXgXt.r e.^.^.^ e.^.bXz.^.^Xz.bXz.o.^.b N N.^Xt.^Xj e eXjXz.b.b.V.c.V.c.c.V.c.c.c.c.c.c.c.c.c.V.c.c.c _Xz.# _ _XzXzXz.b _XzXz.o.c.c.c.c.cXzXzXz _ _XzXzXj e eXz.c.cXg _.b.V.c.c.c.c.c.c.c.c.V _Xz _XzXz F e l.6.6X X .Q. X X&X .t./X@ AXk.I.&.RX@X@.t.6.oXg.o.o.c.cXz _Xz.b _XzXz.b.b.X eXjXj e e eXz eXz.c _Xz _.V i i.V.V.V i.#.c", +"Xz.o.X.^Xz.bXz.b.bXzXzXz N.b.bXz _XzXzXz.b.b.b.^.b.o.I i.oXz.bXk.o NXtXt.u.`X- 3 V XM c.}.M 3 $ $ $ R TXcXD.ZXD x.u h hXM.FXB W.{.. u B.D.~ B.N.)Xn.s.j.>Xr.q = &.Y.E yXKXG RX,.W $XsX5Xl RX-.e BX-X1.eXV R aX-X-.e.a aX-X- B.a R.e 3X,XD.}X-X-X-.eXD aXI.e a.e R B R 3X- RX-XI 3.e., c 1XKXw.,.9.9 k TXUXP (X5Xx.R.K.k./.^Xg.bXg.6.b.oXk.o.I NXg.#Xg.IXg. .Q.cXg.U.U.c.V.c.o.c.c.c.o.c.VXg.c _.U.c.V.V.c.c.c.c l _.b.oXzXz.b _XzXzXz.^.^ e.rXt.rXt.r.r.r.rXt.rXt.rXt.r e.rXt.^.X.b.b NXz.^.bXzXzXz.b.b.b.b.b.^Xz.b.b.oXg.V.o.VXgXg.o.c _XgXgXg _.U _.V.V.o _.U _.V.V.V.VXg.V.c.V.o.cXz.^Xz l.zXgXxXx.^ ].X.XXoXoX5 (XOX5Xa R aX-XI T.,XJ :XlXK x D : TX5 $X,X1.e.DXLXmXU.qXw H y y.j vXs U t.M t < t UXe XqXh WX<Xh.y kX<.YXH UXB.mXnXf.s yXc B T.O ! !.D.D cXIXD.u R BX1.Z ' T.]X-.8X*.r q.| I 5., 5., 5 I.5.rX* e.rXt.rXtXIX, x s.'XlX-.rXtXj.bXzXzXzXzXzXzXzXzXzXzXz _Xz _ _XzXzXz _.bXzXzXj.^.rXj F FXt ~Xt e.r eXj.^.^XzXzXj.rXj.b.o.b.^Xz N.bXj.r.r.b eXtXjXz.b.b.V.c.c.V.c.c.c.c.c.c.c.c.c.c.c.c.V.c.c _XzXz.UXzXz _ _ _.o.V _ _.o.c.c.cXg.oXz _ _XzXz.bXzXj e e.oXg.U.o.b.V.c.c.c.c.c.c.V.c.U.VXzXz _XzXz e ~ e.b.o.U.c.z.I.z./XkXg.XXkX@.o N lXk l.Q.I.#.oXg.V.oXg _.bXzXz.b _.bXz.b.b.^ eXj eXj e.^Xj eXjXz.bXzXz _.U.#.V.c.V. .#.V", +".^.oXg.bXz.b.b.^Xz.b.bXz.bXzXz.bXz.b.b.b.bXz N.o.oXz.oXz.o.^.oXg N.X.X A F.u ~XIX*., `Xc.M $.MXl sXh a m.,.a $X, U $ h `XBXB W.< % tXI F.~ R <Xe U._.W.jXw M ^ M =Xh.+.j =XL.W.w.ZXD $ $XDX5X,.u $ 3.a.a.a.~X- aX-.eX,X,X-.e.e.e R aXIX1X1.eX-.e aXDX1 RX-.e a.e.e R RX-X- RXD aXDX-.aXD hX,.a tXD '.nXPX5X1.uXx.R.I./ l AXg.t.U i./.U.bXg.#./.I.I.z.6 i.Q.I.c.c.V.c.cXg.c.VXg.c.c.c.c.c.V.c.c _.U.c.cXg.o.cXg _Xz _ lXz _XzXzXzXz.b.b.^ e e.rXtXj.rXtXt NXg )XdXt.r.r.rXt e NXg.XXzXzXzXz.bXz.bXzXzXzXz.bXzXzXzXzXz.o.oXg.o.o.oXg.VXg.b.V.V.c.c _ _X .o.cXu i.U.c. .6.c.U i. Xg.U.UXz.b.I.IXzXo.X.^.rXtXVXt.uXVXxXPX5Xa.*XD.aX-XD.aXDXIXIXIX-X-X1XD 3XD RX, R.M.Z.w y 9Xe.WXe._.NXGXeXK x.YXK nXK $.9 h h U x.F.Y.FXp.Y.- t.MXq U .X+ 0.. b.GX5.]Xw.j.] '.5 RXI a R.D B.].Z : g.0.~XI ~XV.rX9 ) ) :XXXMXM :.K ~Xt e.r.rXt 3.HXqXGXL.'XlX-.rXtXj.bXz.b _Xz.b.^Xz.bXzXz _XzXzXzXzXzXzXz.bXzXzXz.r.^.r ~ FX9Xg.^.rXtXtXtXj.bXzXj.r eXjXz.bXz.bXz.^ eXtXt e.r.b e eXz.b.b _.c.c.V.c.V.c.c.c.V.c.V.c.c.c.c.V.c.c.VXz _ _XgXz.o.c.o.V.c.c.o _ _.o.o.o.b _Xz.b.bXz.b.b.^Xj.^XjXg.b.# _.VXg.c.c.V.V.U.V.c.c.c _XzXz.b.b.b.o.b.b.o.bXg.c.U. .IXu. q.I./.I././.oXzXz.o.V.c.c _.b.c.o _Xz.b.bXzXzXjXj.^Xg.bXzXz.^XjXj.b.^ e.^XzXzXz.b.o.o.VXgXgXg.cXg.o", +".^.bXgXz.bXzXzXz.^.b.b.b.bXzXz.b.b.bXz.b N.b.bXzXz.b.VXz.o.o.b.oXg NXx ,.R I I D ` |.3 |X<Xc [ xXc.ZXc Y kX5 c <.uX,X,.W.-.-.- [.<XA t.Z.~.`.~ <.e U.e.a._.n..Xb 0Xi ^X>.;.q yXG x sX, RXD BX-.e.e RX-X1.~XI.a a.~X- aXX.]XMXl 1Xl TXl T 1 :.ZXV 3X-X-X- R 3X1X- R aX-.eX-X-X1 3.aX- tXDXD.Z hXDX,.Z.!.n g '.HXV.rXj.r.^ N.^.oXd.oXz.^Xz.b.b.^Xz.b.bXz.bXk.o.# l.UXg.c.c.c.c.c.c.c.cXg.c.U.c.V.U.c.c.o.V.cXg.V.V.b.o.b lXz.bXz _Xz _Xz.b.^.^XjXtXtXt.r.r e NXg.zXtXt.r.r.r e.r.^.b.b.^Xj.^Xz.bXzXzXzXz.bXz.bXzXz.bXzXz.bXg.VXg.VXg.V.o.o.oXgXgXg.o.U _.I.c.V.U. .U.V. .6.V.c. .#.o.U.I.o.b l.UXz NXdXd.r.rX*Xt.r.D ( '.nX1XDX,.a.a 3X- 3 3.~.aXD RXI cXI.}XI 3.a t.wXL y.EXe U._ E U xXB 1 s cX, 8 a t $ t.M.i U U.p.iXrXqXw x ._Xe...j.J bXC.jXlXlXwXw g.]X1 3XI.aXDX- R.,.2XOXU.0 B.H.8.r.r.5.KXX VX3XJXXXX.$X*Xt e.rXt.r.HX5 xXL v o sX1.8XtXtXz.b.b.b.b.b.bXz.bXz.bXzXz _XzXzXz _Xz.bXz NXz.r.^.r ~.`.r ~X*.r.rXtXj N NXj eXt eXj.b.b.b.^XjXj.r e.rXt e.X.r.^.b.bXz _Xg.V.c.c.c.c.V.c.c.V.c.c.c.c.c.V.c.c.VXz _.o.VXzXg.c.o.c.c.V _Xz _ _ _.bXzXz _.b _.^.b.^.^.b.#.I lXg.I _Xg.c.V.c.c.c.c.c.c.c.c _ _ _ _XzXzXzXz.bXg.b.cXkXg.c.I.IXg N.^.^.^.bXz.^.o _Xg.c.c.cXzXz.V _.VXzXzXz.^Xj.r.rXj.cXz.^Xz.b.b.oXz N.bXg.cXgXg.cXg.cXgXgXgXg.o.c.c", +"Xt eXg.^ N.b.^.b.b.^XzXzXzXz.bXzXzXz.b.b.bXz.b.b.b.bXz.o.^.#XkXgXg NXg q.RXk ).KX* # k V :.i.M R R.W $ 1 3 3 :XK DXlX, hXcX3 [X<X2.. uX,XI 3X- a <.}.eX-X-.w u.)XbXb.s ^ ^ ^X>.j o v.Z 8X1X-.~ RX-.eX-XI aX-XIX-.~X-.~ cX, :X, :XlXl `., ' : `.aXD.eXI RX-.aXIX-X- BX-X- R RX- 3 aX-.a.a.aX,X,XD UXDXKXaXP.D.8X*Xt.r.k.b.b.X.^.X.b.^.b.o.b.b N.b N.bXz.o.oXg.#.U.c.c.cXg.c.U.V.c.V.c.V. iXu. Xu.#.c.c.c.V.cXgXg.V.oXz lXzXz _XzXzXzXz.bXz N.^ N.^.^XzXtXt.r.r.r.r.r.r e.r.r.rXtXjXj.r eXj.^.b.^.bXzXzXzXzXzXz _XzXzXz.o.cXgXgXgXg.o.o.o.V.c.c.VXg.o.c.VXg.c.V.c.V.c.o.V.c.c _.o.c.o.o.^XzXz.bXoXz.k.^.rXt.r.r.uXo g.D.n 8XD.aXIX-.aX-.`X-.aX-X-X-.aX,.aXDX- $ a.MXeXL yXpXe.i <.} a t.e.e.eX1 B RX-X-XI t.e t U E.-Xp M [.1 M n [ M.h =Xh.+.OXU.O.w y HXU T.u.`.a.a.~.MX1X,.'XlXP.0.~.8XVXtXt.rX*X*.u.u.uX*.uXVXt.r.r eXt.rXV.'Xp 2.s b g aX*Xt e.^XzXzXzXz.b.bXzXzXz _Xz _Xz _ _.b.b.b.bXzXz NXj.k.8 F.`Xt.r.rXjXt.rXj.^Xt eXt eXt.^.b.bXz.^ e e eXtXt eXtXk e.^.bXzXz.b _.V.c.c.c.c.c.c.c.c.c.c.c.c.V.c.c.c _XzXz.oXgXg.c.c.c.c.c.o _Xz _.b.b.oXz.bXz.^Xj e.^.b e ~Xg.I.cXg.c.bXgXg.c.c.c.c.c.c.c.c.c.V _.bXzXz _.bXzXg.c.bXg.V.c.c.I.#.U.b.b.b.b.b.b _Xz _.c.c.c.V.V _ _.c.o.bXzXj.r eXjXj.^.U _.o.o.o.b.c.b.bXg.cXg.o.cXgXg.o.c.c.c.o.V.c.c", +" e ~.b.k.bXz N.b.bXz.^.bXz.bXz.bXzXz.b.bXz.b.bXz.b.b.bXzXg.z.I.UXgXz.b.bXg.X.rXt ~.` V :XMX, < t <XD.Z.MX,XD T.] ` :X.XwXHX<.h.T.pX4 UX,X1 cX-X-X-XIXIX-X- 1 t t G.) p 2.s %XiXf.;.E.Z $X1.~ R.e a a.eXDX-X-.`X-X-.eX-X-X-.eX-.eX-XI.uXI.e.a R a.~XIXI.eX- RX, R B.eX-.aX-X-XIXI aX- a R.a UX, hX,XDXP.n.] '.HXVXt.r.^.X.b.bXz.b.bXz.bXz.bXz.b.bXz.o.b.bXz.o.z.UXg.c.V.c.c.c.U.c.c.V.c.U.U.#.#.#.U.V.U.VXg.c.V.cXg.oXz.cXz.b _.bXzXzXzXz.b.b.^ N N.^.K.rXtXtXt e.rXt.r.r.rXt.rXt.k.k eXt eXj.^.bXz.^Xz _XzXz _Xz _XzXz.V.o.V.o.oXg.o.oXg.oXgXg.VXgXgXg.c.VXg.oXg.V.c.c.VXg.VXg.c.o.cXz.oXz.^ NXz NXd.^Xt e.rXt.r 'XPX5Xa BX,X1X-XI.aX- 3 a RX-X-.aX-.aX,XI t cX- t $._.j.@Xe U h <.e R a.~.aX-XDX,XDXD R.~ B a $ kXB.Y.YXp.p vXn =.j &X0.>.>.+.E.OX0 9XC !.n 'XD 3.D D 3XD B.Z.'Xc TXl.u.K.8X*X*.K.K.uXdXd.rXtXt.u.r.k.r.rXt.HXc.s.s 0 bXKX1.r.rXt.^Xz.bXz _.bXzXzXzXz.bXzXz _XzXz _XzXz.b.b.b NX*.5.8.8X-XxXk.rXtXt e.r.r e.r eXjXjXz.o.b.# N ~ eXj ~Xj.rXj.U.rXz _.bXz _.V.c.c.V.c.U.c.c.c.U.c.c.c.c.cXg.c.c _ _Xz.U.cXg.UXg.c.o _XzXz.b.b _.b.b.b.^.^ eXt.rXt.^.r ~XjXzXg.c.c.V.c.cXg.c.c.c.c.V.c.c.c.V.V.b _.bXz.bXz.o.c.b.c.c.c.c. .U.U _.bXz.b.b.bXz.V.c.c.V.#.c.V.c.c.o.c.bXzXj eXj.r e.b.IXg.cXgXgXg.U.c.c.c.cXgXgXgXg.VXgXgXg.c.c.c.c.c", +".r.r N.k.b NXz N.b.bXzXzXzXzXz.b N.bXz.b.b.bXz.bXz.bXz.^Xz.o.oXz.#Xz.^.b.X.b NXkX9.5 I V | #.} < a hX,.MX,XDX1 $.] ' :XlXB k.- r W.x.NXeX-.`.e R.~ R 3.~.~XI R <.* t *XeXb -.B {.;.EXa.D.` RX-.a aX- a aX1 3.~ 3.`X-.~XIX-X-X-X- 3 RX1 3 a.` R.~XDX-.e a a.a 3 aX- RX-.aX-X-X1 3.~X-X- a R R.a.M.M B.'X5 g.Z.K )Xt.k.X.^.b.^.b.bXz.b.b.b.b.b.b.b.b.b.b.b.b.b.U.U.c.c.c.U.#.c.V.c.c.c.#.V.c.U.V. .U _.c.c.U.c.c.c. .Q.o lXz _Xz.bXzXzXz.b.b.^.kXjXtXtXj ~XtXt.rXt.r.rXt.r.rXt.rXt.kXd.r e.r.^XzXz N.b.^XzXz.bXzXzXzXz _.o.c.b.c.oXg.V.oXg.o.cXgXg.V.V.o.oXg.VXg.c.V.cXg.o.V.cXg.c.c.o.o.^Xz.^.b.^ N.^.k.r.r.kXt.H.XXP.D.D R R R.KX-.e.~XIX-.eX- RX-.a R.Z R.~.Z.a R $XL yXpXe E h t t.eXIX-XI 1.-XJ RX- RX- a R aXwXB._.FXpX+X+X>X0XU yXm y.+ &X0.j oXC J.>.'.n.Z 3XcXl T R 8XD '.].2 D.2 D.f q.$ 5 D.I F.r eXt.r.rX* ~XtXtX-Xl.'.s.... o.!X-.rXt.r.^.bXzXzXz _Xz _.b _ _Xz _XzXz.bXz _.^.bXzXz NX* #.8.8.8.5 N.r.r.rXtXj.^Xt e.r e.b.^.b.o iXu.^Xt e ~Xt.r.k.cXj.^ _XzXz.o.V.c.c.c.c.c.c.c.c.c.c.c.c.c.c.cXg.o _.b.b.U.c.c.c.c.o _ _Xz _.o _.b.bXz.^ e eXt e.rXtXt ~ e.^.b.VXz.cXg.c.c.c.c.c.c.c.V.c.c.c.c _ _ _.bXz.bXz.o.VXz.V.c.c.c. .#.U.b.b _XzXzXz _.V.c.V.c.c.c.V.c.c.VXg.o.o.^Xj e eXj.X.#.V.c.V.c.c.cXg.VXgXg.c.V.cXgXg.V.c.cXg.c.c.c.c", +".r e.bXz NXz NXz.bXzXzXzXz NXzXzXz.b.b.b.b.b.b N.b.b.b.b.bXz NXzXkXz.b.b.b.b NXk 5X9 }.,.,XX h.a.a hXDXDXD $XD.D.ZXD RX,XK.[ .1XrX4 U hX1X-X1X-.a.eXI R 3XK 3X,XD U 8._ C.PXAXi.4.;Xa.wXDX- B a aX- RX-XI RX-X-X-X-.}XI.e R aXIXI.eX-XI.~ R R.~XD.e R.~X-.aX,.eX- RXDXI R R RX-X-.e RX- R RX,XD R.aXGXaXU : (.$ 5 (X .z./.I.b.b.b.bXz.b.b.b.b.b.b.b.b.oXz.b.c.UXg.U.V.#Xu. .V.c.V. Xu.V.c.c.c i. .V.c.c.I.U.c lXu i.c lXzXz.bXzXz.b.bXz.^.k.r eXtXtXtXtXtXt ~Xt e.r.rXtXt.r.rXtXt.kXt e.r.^XzXzXz.bXz.^.b.bXz.bXz.oXz.c.bXgXg.cXgXg.oXg _XgXg.cXgXg.V.o.oXg.V.o.V.o.VXg.VXgXg.V.o.c.o.^.bXgXgXx NXV.^Xd.5Xt.u.H g.'.w sXl $XlX.XKXcXK `XcXK `.*.a.eX-XDX- RXVX1X1.w.nXmXpXe h h a.a.u T :XK #XcX-.e RX-.e R a t E xXeXr M &Xr y.9.!XG s vXU = & = & & b.>.0.' R.a.e `.e R R.D.9.0.O 'X5 qXJ.$ ).$ ).R.rXd eXt.r.k ~X*X*.8.5XUXpX>.@ 0XG.9 BXtXt e N.bXzXzXz.bXzXzXzXzXz _Xz.o.bXz.b.X NXk.fX9.$.$ qX9.5X- F.rXt e.r e.^.bXj eXjXz.b.oXz _.c _.o.^.r e.r e.^X9.^ _XzXz _.V.c.c.VXg.c.c.c.c.c.c.c.c.V.c.c.c _Xz _ _ _.#Xg.c.V _ _XzXz _.b.b _ _.b.^ e e.r ~ ~ e.r e F.rXj.oXg.b.V.c.c.c.U.c.c.c.c.V.U.c.c.c.o _.b _.b _.b.oXg _.c.V.c.c i.c.# _.o.o _.b _.V.c.c.c.#.#.V.V.c.cXgXg.V.bXz.^ e e.^.c.U.V.cXg.c.c.c.b _.b.o.cXg.cXg.c.VXgXg.VXgXg.c.c", +"XtXj.X.XXzXzXzXz.b.b.bXz.bXzXz.b.bXz.bXz.bXz.bXz.bXz.b.b.b.bXz.b.c.bXzXz.^.o.X.bXtX*.` : V.5XM #.} h hX,.M.9 x hXlXD.a #XKXBXw.gX2...W.W.aX1XDX- aXIXDXIXD c.9XlXKXlXcXp n W ^Xi.CX0.W.Z 8X-.M RX-.e.aX1X-.eXI aXIXIX-.~.a aXIX-X-X-XIX-X-X-.aX-XDX-.e a.e 3 R.e RXDXD.e R.a.uX-.a.eX- a a RX,XDX, R.'X5XUXPXx D.z.R 5.t.6XuXzXz.b.b.b.b.bXz.b.b.b.b.b.b.b.bXg.UXg.cXg.#Xu. .c.c.c. Xu.#.c.UXg i i.c.o.V. .#.c.o. .QXg.UXz.bXzXzXz.b.bXz.^ e.r.r.rXt.rXt.r.r e.r.r.r.rXt.rXt.r.rXj.kXt eXj.^ NXz.^Xz.b.b.bXz.^.b NXz N.bXg.oXg.o.o.o.oXg _XgXgXg.o.VXgXg.VXg.o.VXg.V.o.V.VXg.c.oXg.c.o.^.o.oX&.&.$.$.& ) I q ( :XUXa.n.W s x 1 Xl T.w $., sXl R R aX-XD.H.e 3 BX1.w.n y JXe h E a.}XK ` c 3 a.M.e.K :., a.e t.}.W EXnXrXrX+ 1 sXG v.w.n.n 9.9 & &XG b J !XG.9X, RXD.e 8 R.D.0 g.2.]X1.H.H.r.`.5Xd.u.H.r eXt.rXtX*.rX*.8XI.- x v.) % 0XL.]XI ~Xt.r.bXzXz.b _XzXz _ _.b _.b.b.b.b.b.^XgXkXk.$./.fX3 ) 3.8.r.kXt.r.r e.^.b.bXjXj.^.oXzXz _ _Xz.bXzXzXjXt e.r.kXg N.o.bXz _.cXg.V.V.V.c.c.c.c.c.c.c.c.c.c.c.V _XzXzXz.o.I.V.V _ _Xz.b.V.V.V.V _Xz _Xz e.r e F F.r.rXt ~ eXz _Xz.VXg.c.c.c.c.c.V.c.c.V.c.c.c.c.c.o _ _Xz _ _.V.V _.V.c.c.c i.c.#.c.VXg.V.b.V.V.c.c.#.#.c.c.c.c.c.cXgXg.b _.^ e e.b.U.U.c.V.c.cXg.V _Xz _ _.V.cXg.V.cXg.c.cXg.VXgXgXg", +".^.^XgXg.^.b.b.b.bXzXz N.bXz.b.bXz.bXz.b.bXz.bXz.bXz NXzXz.b.bXz.U.b.^.b.b.b.b N NXt.`.8XX V #Xl : $ hX, hXw `.Z $ hXDX,.-.- [.[X>.mXe.MXDXI.e t R a R 3.uX1XVX,XDXDX, h.W ....C H H s.n RXD B.M R 3.u R R.a.eX-XDXI.aXIXIXDX- a.~XIXI aX- RX1XI.eX-.~X-.~XD aX-.aX,.aXI R.eXDX- R.~X-XI RX,X,X, cXD T.n.0 :.`XVXV.HXz.^ N.^Xz.b.b.b.b.b.b.b.b.b.b.b.b.b.bXz.o.#Xg.c.c.c.U.c.c.c.c.U.U.c.V.c.V.c.U.V.c.c l.o.c l.o.oXz lXz.b.b.b.b.b.^XjXt e.r.rXt.r.rXt.r ~.X.rXt e.r.rXt.rXt.r.k.^.rXd.^XzXz.b.b.^.b.^.^.b.o.^.^.b.bXzXgXgXgXgXg.V.o.o.oXgXg.V.o.o.VXgXg.V.cXgXg.V.c.c.VXg.VXgXg.c.cXz.^.#Xk d.f.& I ( q.$ D D @XaXLXD.D.e aX-XD a.e.* $XD.a a aX1.e RXD.e.u.e B.w.n yXGXe E $ a $.aX-.e a RXI.~X1.,XX hXB x._Xe._XG.jXw.>XU gXl.w CXLXL.!.9 & H o b o.q y.2XK xX,X,X,.wX. g KXy.| D.2 D.& (X@XJ (XtXd.r eXtXt 3X*.8Xl 1 v O.sXb.) J bXc.D ~Xt e.b NXz.bXzXzXz.b N.o.^Xj.o.b.6.6.t.X q NX9 N.K 3.K.`.8 ~ NXk.r e.^Xz.bXzXz.^ _XzXz _ _Xz _ _Xz.b.^Xt.r e.^XgXz.bXzXz _.o _Xz _.c.c.c.c.c.c.c.c.c.c.c.V.o _XzXz _.o.# _ _Xz _ _.V.c.c.c.oXz _.bXzXj e e F F.r.r e.r.rXz.oXz.V.V.c.c.c.c.c.c.c.U.V.U.U.c.c.cXgXz _Xz _.o.c.c _.c.V.V.c i.c.#.c.V.V.c.V.V.c.V.c.#.c.c.c.c.V.V.VXg.c.o.oXzXj.^Xg.z.c.c.c.cXg.b.bXzXzXzXz.oXg.c.V.cXg.cXgXg.V.c.c.c", +"Xz.^.o.c.^XzXzXz.^Xz.bXz.bXz N.bXz.b.b.b.b.b.b.b.b.o.bXz.b.b.bXzXg.oXz.b.b.^.^.k.^.KX*.rX-X3 qXX # ` :.iXK.-.W h x UX, hX3.-.-XwX+Xn nX.Xl $XwX..a.>X,.Z.2XlXKXK $XH.* x [.N pXi.4 H b.nXsXD R.a R.Z.e.M.eXD : $XI x R $ aXD RX-X-XI.eX-.~ R.aXI R.e R.e 1 cXlXcX- R.a RXD `.ZX-.e a R 3X, cX, 3.aXI.n '.0XP.H.H.r.rXoXgXz.b.b.b.bXz.bXz.b.b.b.b.bXz.b.b.b.bXg.U.c.c.c.cXgXg.cXg.c.V _.cXg.V.c.V.cXg.V.o.c.V.o _Xz.bXz l.b.bXzXz.bXz.^Xt e.r.rXtXtXtXtXt.r.rXgXtXt.r.rXt.r.r.r e.k.^XjXj.bXzXzXzXz.bXj.b e.z qXxXg./ q.zXg.U.U.cXg.o.o.V.o.c.c.o.oXg.c.o.VXg.V.o.o.cXgXg.c.V.o.VXg.o.o.bXz.^.b.^ N.kXt.r.H.H.H T.0.nXa.D hXD RX-XI BX1.e.] 3XJ.ZX, $.Z.u.Z h $XD.*.w v yXG.w U 1X,.e.e.~.e IX1 3 3X, $XD x.S [ E.F.<Xr M.>.O Y !XH !X; =XP.> =.G.>.q v.q.>XU n m 1XDX,.DXD ' g m 4 DXx.5.f ( ( ( (XxXtXt.rXt.r 3.8.` c.9XK.EXn.; S 0X>XK.0.u ~.rXj.bXzXzXz _Xz.^Xz.X.^Xk.I.&.&.&.IXg.XXg.b N.X ~.rX9.`.`.8 ~Xt.r e.^.bXz.b.bXzXz.bXz _XzXz _.^.bXz N e e.r.b.oXz.b _XzXzXz _Xz.b.V.V.o.V.V.c.c.c.c.cXg _Xz.b _.b _Xg.UXz _Xz _.V.V.c.c.c.o _Xz.b _ e ~ e.r ~ e.r.r l.^Xz.cXz.c.o.cXg.cXg.c.V.c.c.V.c.cXg.c.c.V.o.oXz _.V.c.V _.c.c.c.c.#.U.#.U.c.c.V.V.V.c.c.c.#.c.V.c.#.U.c.V.V.cXg.o.b.b.oXg.#.c.cXg.c.o _Xz.b _XzXz.o.V.c.cXgXg.c.c.oXg.c.cXg", +".bXzXzXgXz.^XzXzXzXzXzXzXzXzXz.b.b.bXz.b.b.b.b.bXz.bXz.b.b.b.bXzXg.bXz.b.b.^XjXt ~.k.^X* 3.8 V VXXXMX3 1.} U $ h.wX,XD hXK k 1 [XnXn.jX#.' mXDXcXqX. a.Z m.eX..2.eX..eXcXh.dXb %.@.;XaXL.DXD.wX5XDXVXDX1 : x $ x x 1 1Xc :XcX1 R.a R.e.e.~X-X1X- R.eX-X,X. DXc D.-XlXw D TXcX5 k.~X- RXIXIX1 RX- R a.Z.' T (.`.H.HXd.r N.b.^.b.^Xz N.b.b.b.b.b.b.b.b.bXz.b.b.b.UXg.c.c.c.c.c.U.V.cXg.c.c.c.V.c.c.c.c.c.c.V.bXzXz _ _Xz.U.b.bXz.b.b NXj e.rXt.rXt.r.rXt.r.r.r.^.r e.r.rXt.r.rXtXtXt.^.^.^.^.bXzXz.b.^ _ F.^.X A.zXx./.t.& X.tX .t.oXg.oXg.o.cXg.V.cXgXg.VXg.cXg.V.V.c.V.V.c.c _Xg.V.c.b.b.^.b.^.bXz.k.^.rXdXVXd gXl.n.DXaXD B.~ 3.` B.`.~ '.] TX..] 1 .9 kXJXl.M aXaXL.jXGXe U.[X, a aX-XI :X-X- B.a a.,.Y n.- >.[.gX% [ nXH.O.%X;X.XKXUX; y.q =.j.qXL H = yXcX, h.Z.M 8Xa.n.0 !XV.e.8.rX*.rXV.H.rXVXtXtX*.8.aX1XlXc s.nXG.s / ^.@ vXGXG :.u.r e.^Xz.^XzXzXzXzXz e./.$ d./.zXk.b.^Xz.X.^.b.XXt.^X* c.8.8Xt ~Xt eXj.^.bXz _ _.bXz _.bXz _ _. iXz.b.b.rXj eXg NXzXz.bXzXz _XzXz _ _Xz _Xz _.o.VXg.V.o _ _XzXz.bXz _.VXgXz _ _.c.V.c.c.c.c.V _ _.b.b.^ e.r eXt e.r e.I.z.U _Xz.c.V.cXgXg.V.c.c.c.c.c.c.c.c.c.o.o.c _Xz.o.V.c.VXz.V.c.c.#.#.#.c.c.c.c.c.V.c.c.#.#.c.#.#.#.c.#.c.c.c.V.c.o.o.oXg.c.#Xg.c.V.c.bXz _.b.b.bXz.o.V.cXg.VXg.VXg.cXgXg.c.c", +".b.^Xz.UXz.bXzXz.bXz.b.b NXz.b.bXz.b.b.b.b.b.b.bXz.b.b.b.bXzXz.b.oXz.b.z.I.b.r eXtXt.k.K.rX* ~.K VX3 `XM 1 1 h.M h.M.}X, `X. h $.< v.1Xw.O :.S.j $.1 :XlXH.eXl $ 8X. $XKXqX+ pXb ^.; bXaXL.w.w 1.'XD RX,Xc.}Xc $ `.9 T 1 :XK 3.aXI.e R.eX-.eXD.e.aX-X- B ` c : ` s $.-.9 1Xl xXKX-X- RX-X- a RX1.}.u.'.0.0 gX1.`.`.rXtXj.^.o.^.bXzXzXzXzXz.b.b.bXz.b.b.b.b.b.b l.o.cXg.c.c.VXg.c.c.V.cXgXg.c _.c.c.c.V.cXzXzXz.bXzXz.^ l _.bXz.b N.bXj.rXtXtXt.r.rXt.r.r eXt ~.r.r e.rXt.rXtXt.rXt.X.^.bXz.bXz.bXz.bXj e.`Xd NXxXx.z.z.zXkXg _.c.VXg.o.c.oXgXg.o.o.VXg.V.U.U.c.V.c.U.c.c.U.U.V.c.cXg.#Xg.b.bXz.^.b.^XdXd.r.r.H.2.n.n.n g.'X1X- B.H B.` BX- BX-X, a R R.Z 1 aXD t.M.wXeXwXGXe EXH $ aX- a B R.~ R a VXKXc.Y.MXq.[X+ X7., k mX. !X.XUXc.'XPXm.0.q.!XGXC.>.OXmXcXsX,.DXD.w.n 'XP.2 B 3 ~Xt.r.rXtXtXtX*Xt.8 ~XIXl TXK v.EXa O.=Xe u.N 0XG $.0.`.rXj.^.bXzXzXzXzXzXj F.bXk.X N.I lXk.z.zXkXg.fXgX9 ~ 3.r.8XtXkXkXj.r eXz _.bXzXzXz _Xz _ _Xz.o i.I.o.b.^ eXt e.UXz.bXz.b.bXz.bXz.bXz.b _XzXz _Xz _ _ _ _ _ _.b _Xz.bXz.o.o.b.V.c.V.c.V.c.c.c.V _.b _XzXzXj e.r e.r.r.r eXjXgXzXz.#.V.c.c.c.V.c.c.c.V.c.V.c.c.VXz _.U.c.V.V.c.#.V _.c.c.c.#.#.#.U.c.c.c.V.c.c.c.c.#.V.c.#.#.c.#.#.c.c.V.cXg.o.c.c.c.#.o.UXg.o.b.b.b.bXz.b.b.b.o.c.c.V.o.c.VXg.c.c.cXg", +"Xz.o.^.cXzXzXz.bXz.b.b.^.U.bXz.b.^.U.^Xg.bXg.U.U.b.b.b.bXz.b.bXz.o.^Xz.IXzXj.rXjXtXtXt.k N.k ~.8X*X3 VXXXM .9.i h R h.} kXK ._.jXpXcX5.a x xX,Xe.Z.aXD.uXI.eXD R R a t u.d.s ^.; w b.!.9.E.9.'X. : $ x $ hX, $ $ hXD aX-.eXD a.a a.e.a.eXD B.eX1.aX1 B a.e.e.a.a.e R.aX-.e RXD.eX, R R RXIX,X, R.D.n.].]X1.`.H.r.rXdXj.b.bXz.b.bXz.b.bXz NXz.bXz.b.bXz.b.b l.b _.c.cXg.c.cXg.c.c.c.V.c.c.c.V.cXg.c.cXz.bXzXzXz.bXzXg.XXzXz.bXz N.r.k e.r.rXtXt ~XtXt.r.r.rXt e.rXt.r.r.r.rXtXtXgXoXdXz.^XzXzXzXzXz.^Xd.^.^XkXk.R q.t lXgXgXgXgXg.VXg _.c.cXgXg.VXgXg.cX&.U.c.#Xu.c.V i. _.#.UXg i iXgXz.b.^.b.^Xj eXt.HX5XJ.n.n s 9 '.wXD.Z.DXDXIXDXDXIXD.DXDX1 RXD B BXD B B.w.w.j.Y._ x U U.a t R B aX-XD `X+XwXe h x .[XX.l VXBX3XKXcXJX.XH.>XOXm.!.! g &XC.q & &.O.9.MXD.w.w.n '.0XOX5.8 ~ ~X*.rXt.r.r.r e.r.}Xl.'XLXL 0Xa b 2.= bXe.M.)XeXG.Z.`.8XtXj.bXzXzXzXzXzXzXz ~ e _XzXz. .IX .z.t Q.A./ 5Xx.r.r.`.8 ~.8.^Xt e.^.b.^.b _.bXz.^XzXz.b _ _.o.U.b.^Xj e e N lXz.b _.^.o.b.b.bXz.b _.b _Xz _Xz.bXz _ _XzXz _.o.^.b.^.c.c.U.V.c.U.V.c.c.c.c.c.c _Xz.b.b.bXz.^.^ e ~ eXt e.V.o.b.U.cXg.U.V.U.c.V.c.V.c.o.c.o _ _.c.6Xu i.c.c i i _ _ i.#.#.#X&.#.c.# i.c.V i i.c.c i. .#.#.#.#.#.U.V.c.c.V.cXgXg.c.U.cXg.VXg _.b.bXzXz.b.b.o.V.c.V.o.V.c.c.V.cXg.V.c", +". i.bXg.b.^.I.U.bXz.b.c.f.cXz.b.^. Xz.b.oXg i i.b.b.bXz.b.b.b.b.b.b.b.o e.r e.rXt.r.r.^ N NX*Xj 3.`XXX3 V.-.l # x.} $ $.a kX3.Y.pX+XrXK.Y.aXD h.Y.FXD R R.~XDX1.~XD.~ R t.e.).)X6 w H H H HX>.; y s.9 sX. 1X.XK xXwXc.9 BX, ` RX-X1.ZXD.e RX, a B.eX-.aXI.eX-X-.} RXD aXD a R R : :X..u 1 :XK : $ $ $ ! g.2XIX5.5Xx.XXjXj N.b.^Xz.b.b.bXz.b.b.b.b.bXz.b.b.bXz.U.b _.cXg.V.c.c.cXg.VXg.c.V.o.V.cXg.c.o.c.b.bXz.b.bXzXz l.b.b.^.o.b.k e.r.rXtXt.r.r.k ~.rXd e.r e.r.r.rXtXtXt.r.rXt.k.^.b.bXzXzXzXzXz _XzXz.b N.b.IXk.I.6.U.bXgXg.V.o.cXg.o.cXg.VXg.o.o.V.c i.UXg.#. .U.c. .#.c.#.UXg.#.U _.bXz.b.^.b.k.r.r.H.5.2 'XC g & y x.n.0.w.w.w.w.w.w.w.w '.w.wXl 8X1XD B B.ZXa sXr.9 UXe.i.i h U.W.M $ nXp.Y U h x.l c XM.lX3.lXX `XK.9.-XJ.>X; g.0.!XUXC @XCXm.9 9.Z $Xl s.w ' g g.DXV.8 3.rXt.r.r.r.rXt ~.8 3Xq.W.s / /.= O.=Xa.9 1 xXsXL.9 cX- FXtXz.b.bXzXzXz.bXzXzXjXzXzXzXzXzXz.X.I.z N.r.k 3 ~X-XV F.8 FXt eXt eXj.bXz.bXzXz.^XjXjXzXzXz _Xz.bXz.^ e.rXjXz lXz.bXz.cXzXz.bXz.bXz.bXz.bXzXz.b _.b _.b.b.oXzXz.b.bXz.U.cXz.U.c.V.U.c.c.c.V.V.cXg.o _.^Xz.b N.^.rXj e eXjXgXz.o.#.V.c.o.UXg.c.U.U.c.V.V.V _ _.c.U.#.#.#.c.#. .# _.V i. i.#Xu. .c.#. .V.#Xu i.U.U iXu iXu iXu i.#.c.c.cXg.cXg.V.U.U.c.VXg.o.b.b.b.b.b.b.bXg.c.c.V.o.o.o.V.c.o.c.U.b", +".Q i.bXg.c.b i./.bXz.^Xg.6.c.bXz.^.#.bXz.b.o.U.I.b.b.b.bXz.b.b.b.^Xz.^XzXjXj eXt.^XjXj.k N.X.bX*.r ~.8.}X9.,X3 #XM 1.}.a `.-X7 n.jXZX.XJ tXc < =XcXc.-XIXD.eXDXI.~ F.~.~ R.) pX=Xn ^.vX6XfXf HXp s.MXD t R.M.a.a R R a R `Xl : ` 1 `Xl.,Xl :XK : x R.~.a R.e R.e t t a R R.eXJ :X.XcX. m 1 : `.-XJ.9XU ! ! I IXx 5.AXkXjXjXz.b.b.bXz.b.b.bXz.bXzXz.b.bXz.bXz.UXz _Xg.cXg.c.cXg.c.c.c.c.c.c.c.o.c.cXg.c.oXzXzXz.bXz.bXgXg N.bXd.bXjXjXtXtXt.r.r.r.kXt ~Xt ~ eXt.r e.r.r.r.r.rXt.k.^.^ NXj.^.bXzXzXz.bXzXz.b N.^.^.^XgXg.o.c.o.VXg.oXgXg.o.c.VXgXg.V.o.oXg.U.VXg.VXg.o _.c.c.VXgXg _.VXzXzXzXzXz N NXjXt.u 3 :XwXw &.j.j.q.9 o.9 v v sXn s v v.n.9.n.w.Z 'X1.H B B 8.w.D 9.jXGXe EXq.m.d.p._X%.i E U U x xXJX3XM # h.a.a.iXM V.-.Y m.OXU s.' ' ! =.> 9XmXa.'.w.n T.] g ( B.DXV ~.rX*.r.r ~ ~.r F F B.ZXL.N / / / C.sXa.M.Z $XDXaXn.9X5X-.rXt.bXz.bXzXzXz.bXz.b.b.^.b.^.b.o.b.IXg.z.I )Xx.z.k.8.r.8.` q.k e.r eXjXz.oXzXz.bXj eXj.b.bXz.bXz.^Xj e e.rXj.b lXz _ A A.7.z.b.b.b.b.b.bXzXz _Xz _ _ _Xz _.o.b.b.b.b.o.I.o.#Xg.c.V.c.c.U.c.c.c.c.c.oXz.b.oXz.^XjXt F e e.^.VXz.V lXg.c.U.c lXg.c.V.c.c.V _.V.c.U.U.c.c.c.c.V.c.cXz.V.c.U. .U.#.#.#.#.V.c.#.#.#.c.c.#. .#. i. . .U.V.c.V.cXg.c.o.#.c.V.c.V _.b _.bXz.^.b.oXgXgXgXg.V.V.c.V.c.oXg.oXg", +".c l.o.oXgXz.o.b.b.b.b.b.c.b.bXz.b.b.bXz.b.b.^.b.b.b.b.bXz.b.b.bXz.bXz.^.r.r e.z N e.r.^.oXgXg.bXj N.r.r.8.aX3 VX3XlXMXM 3XBXcX7 MX+.+ x.,XcXwXD 1XqXJXJ $ R RX-XI.`.`.HX- a.* UXb.)..XbX=.B ;.4 b v.n.M.*.a R R aX- RX1.eXl., :XK :XJ.0 1 : TXJXlX,X-X1.aX-X-.e R R aX- R a R aX1 h.Z.e.e t.a RXDX-.w s T.5X-.8 3.rXt.r.rXt.^ N.b.^.bXzXzXz.bXz.bXz.b.bXz.bXz.UXzXz.cXg.c.c.c.c.c.o.VXg.c.c.VXgXg.o.UXg.c.o.^.b.^.b.bXg.bXz.o.b.^XtXt eXt.r ~.kXt.r.rXtXt.kXd.rXdXt.rXt.r.r.r.rXt.^ ~XtXj.r.^Xz.oXzXz.bXzXzXz.bXgXgXgXgXg.cXgXgXg.VXgXg.o.cXgXg.c.V.V.cXg.o.V.cXg.o.V.c.c.c.c.V.cXg.oXzXz.bXzXz.b N.kXt c.HXl.j y.E.@ oXr M M.j & & &Xr.q HXU.qXw &.0.n.n ' '.uXa.D.n.wXLX>.j...mXA W %XA zXq E E EXq 1 1X3 #XX #XI c a.a a.a $Xc `Xw =XO.!.! s y.G.GX;XG.' '.0.] D gX5XDXV.8X*.r.rXt.r.r.r ~ F FX1 R v.s.) *.N u u.Z.M t.ZX1.~XL 9.9.K.8 ~Xj.b.b.bXz.b.bXz.bXzXz.^.oXz.b.bXz.I./X .zX q qXx.`Xt.8X*Xx q.rXjXjXj.^ NXzXz.bXj e e.o lX@.I.o.^ e.rXtXj.^.b.cXz _ NXzXg j.bXgXgXg.o.b.bXzXz _Xz _XzXzXzXzXz.o.^.oXg. .o.V.c.c.U.V.V.c.c.c.c.c.c.o.b.o.^.b.bXtXj.r ~ e.b.o.^.#.U.I. .V.c.c.V.V.U.c.VXz _.c.#.U.c.U.U.cXg.U.V.U.b.V.c.c.#.c.#.#.c.#.#.#.U.U.c.c.c.c.c.V.c.c.c.c.V.c.o.VXg.VXg.o. .VXg.V.o _XzXz.^Xj.^Xz.bXgXgXg.cXg.o.V.oXgXg i.IXz", +"Xz.^.b.^.c.b.^.b.^.b.b.b.bXz.bXz.b.^Xz.b.b.o.^.b.b.b.b.b.b.b.bXz.^ N NXj.^.kXt.X./.^.r.^ N.^.b.cXg.X.k.rX*.8.8XM., VXMXX x [.SX2X2.M hX1XD R U.a.M.a a 3X,XD t a 3.8.~X1X1 8 C uXF.. *XbXbXf.4.EXG v.w a RX-.~X- B.e.e R R a a a.e a a R.eX, R B R BX-X,.~.eX-.a aX- t aXIXD.aXD $X-XD R R.a.}.M.M.n.'XPXlX1.` ~.r.rX* eXtXjXz.b.b.b.b.b.bXz.b.bXz.b.b.b.b.b lXz _Xg.cXg.c.c.c.c.c.c.V.oXg.c.c.VXgXg.UXgXgXz.b.bXz.bXg.bXg.^Xz.b.b.k eXtXt.rXtXtXt.rXt.r.r.z.X.r.r.r eXt.rXt.rXt.KXt e.r e.k.b.QXzXzXz.b _.o.o.o.o.c.o l.b.6.z.cXgXg.o.o.cXg.VXgXgXgXg.c _XgXg.V.o.V.oXg.c.VXg.c.V.V _XzXz.bXz.^Xx.kXtXV 3XMXcXGX>X>.@.jX>.E.@X>X>.@.EXp.EX+.EXmXmXwXG.n s gXa.wXaXL v 9.E HX8X>X2.<.x.x.J E E.m x.-Xc V #.K 3.u.e.}.e aXD <XD .Y nX;XwXP.'.'.' !XwXP.!.0XlXO.]X5X1XI.8.8.kX*.r.r.rXt.r.r.r.8 F B.DXL 2 * * u < t h.lXJ.9 B.n o.9X1 3.8.k.^XzXz.b.bXzXz.bXz.b NX9Xz N.b.^Xz.X.^Xk N.X.rXt F.8.k.8.rXj.r.rXj ~ e eXj.^Xz NXt e.^.^.o.:.RXzXt e.r eXj N.oXgXz _ _Xz.b.I.bXg ZX@.b.b.bXz _XzXzXz _ _.bXg.I.IX X&X .I l.UXg.c.V.c.c.c.VXg.c.c.c.#.U.o.o N.^Xj e ~.r e.bXg.^.#.#.# i.7.c.U.U.c.c.c _ _.c.#.U.c.c.6.7 i.UXg.c.c.V.o.U.#.#.U.#.c.#.c.#.#.U.V.c.c.U.c.c.V.c.U.c.c.c.V.c.V.cXg.cXg.#Xg.c.VXzXzXz.^ e e.r e.^.b.o.o.o.o.c.cXg.cXgXu.&.z", +".bXz.bXzXk.b.b.bXz.b.b.b.bXzXzXzXz.bXz.bXz.b.o.bXz.b.bXz.bXz.b NXzXgXzXj ~XjX*.^Xj.r.k.o.b.b _.o.c.o.o.k.r ~.8.8 3XXXXXM.lXM.g [ WXp.N.M 8.M $.aXGXBXJ.9 tX,.}.M.aX- 3.`X-X-XD t.* t U CXe.sXbX6XC H s s t.eX-X-.~X-X1 B 3XIX- aX-.e R.eX- 1.2XlX,XDXl : :XD h c 1 3.a RXD B.aX1X, R R R a.aX,XD R.a.n s.' T.~.`.`.`.8.rXjXtXj.r.bXz.b.bXzXz.bXz.b.b.b.b.b.bXz l.bXz.cXg.c.c.c.c.c.cXgXg.U.c.V.oXg.#.V. XgXgXg.b.o.b.^Xg lXd.XXz.^.o.b.^Xt e.rXt.r ~Xt.rXt.r.z.R.X e.r.r.r.r.rXtXtXo.X ~Xt.rXd.IXgXzXz _ _.oXgXg.cXg.o.cXg Z.I.U.c.c.o.o.o.cXgXg.oXg.VXgXg.VXg.VXgXgXg.VXg.c.VXg.V.oXg.o.^Xz.b.^.bXgXdXV.r 3 xXc x.< vXnX2XpXp JXGXnXGXnXn JXnXnXGXG y !.j.j &XU.jXm yXC.; H.4X8Xf.<Xf.C.x W.<.F ._X#XZ ` | D #XJ 1XK ` 1 k $.a ` [ =XU.'.Z.w.n.0.' ' T.'XP 'X1.`XV.8.8.8X9Xt.rXt.r.rXtXt.r.H.`.`.w.s.N.) C.a.a.a c < x 1 C.wXG.9.aX* ~ ~Xz.b.b.b _Xz.bXzXzXz.b.b.^.b.b.b.X.b.bX X@./ q.RXt.`X*.r.XX*XtXt eXj e.r eXj NXj eXt.k N.^.:.^Xd eXt.rXjXj.bXg _XzXzXz.X.b.I.7.^.6.^.b.b.bXz.b _ _ _.bXz.b.oXgXz.7.6 A j.IXg.c.c.c.c.c.c.c.c.c.V.o. jXg.oXz.^.r.r.z.^.^.o.oXz.Q.cXg _ ZXu.b.c.c.c.VXz.V.c.#.U.cXg.#Xg.:Xu.c l lXg.c.o.#.U.c.#.#.#.#.U.c.V.c.c.VXg.c.c.V.c.U.c.c.V.cXg.V.c.o.c.c.#.VXg.V _Xz _Xj ~ e.r.r e e.^Xz.o _Xz.o.bXgXgXk./.t", +"Xz.bXz.^XkXz NXz.b.b.^.b.bXz.b.b.^.b.b.bXz.^.b.^Xz.b.bXz.b.b.bXz N.o.rXj eXg.^.rXtXjXz NXzXz.b _.c lXg.o.^.kX*.8 3.8XJ ` Xq [X<X2.@XG x x.~XD.w.wXK.9 x $.eXD h < < $.,XIX1X,X, x.M.}.YXq v . 0 w &.EXG R R.eX-.`.e.~X- RX1 aX- a a B aXc :Xc.' D 1 B., :XJX5XJXKX. aXIXD a.aXDXD.a.a RX,XDX, hX,XD.w TXU.Z R.`.`.`.8 ~.rXtXt eXz.bXzXz.bXzXz.b.bXz.b.b.b.bXz.U.b _.o.cXg.cXg.c.VXg.V.V.UXg.o l.Q.I.6. XgXg.c.o.b.oXz N l.b.z AXg.^ N.^XjXt eXtXtXtXt.XX@.R N A.RXoXdXt.r.r.r.rXV.X ,X@./X@.A l.^Xz.XXzXzXg.c.c.IX& X.U.tX&.XXgXg.VXg.V.b.cXgXg.VXg.o.V.oXg.VXg.o.V.o.o.V.o.V.o.V.c.VXg _Xz.o.bXz.bXjXd.r ~.}X3XpXGXe p.YXp.YXGXq sXqXq v._Xq v..X4XpX4.x.j W H.; H S H w.@ ^Xf.4.{.4.{ ^.@.-.[.g.,.S., [XH.9 xX.Xc.-.YXc.O :X, 1.YX. =XcXP.D.DXD $ T.!.n.0 m BX1.H F ~.r.kXj.^XtXt.rXtXdXtXV.r.8 RXeXL.N E tXDXDX- $X,.a h tXs s.'.aX*Xt.rXzXzXz.b _Xz.bXzXz.bXzXz _Xz.b.b.bXz.X./.f qXx V.8 3.k.rXkXk.k.rXt.r e eXt e.^Xt eXtXt.XXg.:.rXd.r.r.rXt.^.^.cXzXzXz _.XXd.6.: d.6 NXz.bXz.b _Xz _Xz _Xz _.b.X.^ jXk.z.7X&.b.c.c.V.c.c.c.c.c.c.oXz. Z.^.o N.^ e ~.^.o.cXg.b.o.#.o.cXg.7.7.c.U.c _ _ _.c.#.U.U.U.c.oXg.Q j.U.I ZX&. .c. .#.U.#.#.#.c.#.V.c.c.c.oXg.c.c.c.V.c.V.c.c.c.c.oXg.V.c.U.c.c.c.V.bXz.b.^Xt.rXt e.r.r e eXjXz.^Xj.b.o.^.^.k ~", +".^.b.b.^Xg.b N.b N.^Xz.b.bXz.b.b.b.b.b.^.o.b.^.oXz NXz.bXz NXzXz.^.o e e.rXgXk.^Xj.^ N.c.U.bXz _ _.o.U.c N./.f.K.8.u # VX3 1X<XpX2 H._XsX,.Z.MX,XlX,.w TXw.9.9.W.} hXHXK.] !XK.9 XH UXKXq.9X> H M.E M x.M.eX-X-.~X-X-XIX-X- a a a a a B a.e.aX, RX-XIX1 BX- 3 3 3X- a.` hX-X- R RX,.aX,X, hX,.M t $.wXP.0 BX-.`.`.`.8 ~Xt.rXtXtXzXzXz.bXz.bXzXz.b.bXz.b.b.bXz l.b _Xg.V.cXg.c.V.c.U.c.cXg.o.UX&Xu.U Z.z.cXgXgXg.U.b.b.o.z Z l A.7.b.b.b.^Xt.r.r eXtXtXt.:.X.uXkXkXj ~Xt.r.rX*.rX*.^X9Xx.:.X.^.X NXzXz.^.bXgXgXgXg.:.zXz j.I.XXg.o.oXgXg _Xg.V.VXg.o.VXg.o.c.o.c.V.o.V.c.o.V.c.VXg.V.o.o.o.bXzXz.^XgXdXt.H.r.` .9XqXp U u.MXe.M.a < t < t t t uXeXnXnXnXnXp.@Xf.C.@.@.CXi.v.BXi.{X>.P.s.s vX+ `XM 1 $.a R RX,X1X,XD R $ R $.FXc.1XH.'XKX,X1X; gXaXO DXU.0X1XI.`.8XtXt.rX9.rXt.rXt.r.r.r.rX* ~X-.wXe.).N R 8X1X1Xl xX, h.MX, v sXIXVXt.k.b.XXz _.b.bXz.bXzXz _ _XzXz.bXz.6 q.$XkXxXXX9XM.5.KXX.^X9 N.rXj e.r.r e.rXtXj ~.r eXt.^.R P eXt.r e eXt.^.^.UXz _ _XzXzXz i.o j./Xz.b.b.bXz _XzXzXzXzXz.bXz.b.U.:Xg.z.:Xu.c l.c.c.c.c.c.c _.c.oXzXuX .^.b N.^.r.r F e.^.o.o.c.#XgXgXu.6.:.cXg.V.oXz.V.c.#.U.c.c.c l.U.# Z.:.U.6.U.c.c. .c.#.#.#.c.#.c.c.c.V.V.c.c.V.c.c.V.U.VXgXg.c.c.V.c.cXg.#.c.c.o.VXz.^.b.^ e.r.rXt.r.r e.r e e.r e e.^ N.k ~.r", +"XzXzXzXz.o.oXz.b.b.bXz.bXz.bXz.bXz.b.b.b.b.b.b.bXz.b.b.bXz.b.b.b.^.XXtXj.^ eXjXz.o NXg.UXz.b.o.^Xz.oXg.cXkXg.$.&.A q 5 DX# [XZX4X6 SXn p UXeX,X, h xX5XDX, 1XK Xl x 3XVX-XIXI R.M.M.}.d.M t.d vXi.@.; 'XDX1 3X1.a.a.a a.eX-.eX-.eX- a.eX- aX-XIX-.a 3 3XI 3X-X-.aXI a.a :X- a R RX,X, hXDXD h.aXD $.ZXm :.`.~.8.`.~ ~.rXtXtXt e.b.^ _Xz.bXzXz.bXzXz.^ _ _.^ _Xg.o.b l.cXg.c.c.o.V.V.V.U.V.V.cX .: A.IXkXg.o.c.c.cXg.b.b.:.RXoXz j.oXg.^.^.b.^.^XdXj.kXt.:XtXdX9.^.r.rXtXt.r.u.r.r N.r./.(.^.X.^XzXzXz.b.b.oXgXk l.:.t.R j.X.o.X.oXg.V.o.oXgXg.c.o.VXg.oXgXgXg.c.VXgXgXg.c.VXg.c.VXg.cXg.o.bXz.^Xz.oXd e.r.H.8.8.Y.9Xq x u t.MX,X1.u.a 3 c.e <.* tX, xXq vX4 > ^ wX6.sXb 0X= -.v.PXiX= p.) pXrXn # #.lX5 aX- R BXDXD.wXIX1XDX, $XMXc.1.>.'Xc 8XU.O.n ' g.2 $.`.`.8 F.H.rXt ~ NXtXtXt.rXt.rXt.rXt.` :.'Xa.=Xs.M R R RXcXc h hXs y.w.wX,XV.rXt.bXzXz.XXz l.^Xz.^.bXz.b.bXz.b.^./.$.$.f VX3X3X3XX V.f.$.k.kXtXt.rXtXt.rX* ~.rXt e.r.r N././.^.^Xj.r.r e.bXz lXzXzXz _XgXu Z.b l.UXzXzXz.b.bXzXz.bXz _Xz.b.c.U.t.7.#X& Z.c.U.V.c.c.o.c.c.c.c lXz.^.7.U.b.b N.^.r F ~ eXz.bXz.U l.c.IX&. j.UXg.o.b.V.c.U.#.c.c.U.c.c.c i.U Z ZXu.c.c.c. .#.#.c.c.#.c.c.V.V.V.c.c.c.V.c.c.c.cXg.V.c.c.VXg.V.c.c.#.c.V.c.o.b.bXz.^XtXt.r.r.r.r.r e.r.r e.r.rXt.r.r.8.8", +".^XzXz.^.oXgXz.b.b.bXz.b.bXz.b.b.bXz.bXz.b.b.b.b _ NXz.b NXz.b.b.b.o.r N.#.^.^.b.b.^Xz.o.bXz.b.oXz.b.o.c.UXgXgXk N NXt.r.u.-XpXn ..4.. v U h :XDXD.nX, $.w h.a x.S VXK.Z B.e.* R.M u E p E *.) 2.B w H.nXI.~X-X-.a.a.e a.eX-XI.eX-.eX-X-X- R.aX5XI 3.~.e.~.e RX- a 3 aX, c a.aX-.*XDX,X,X,.}XD.a.a s.w gX9.e.H.~.`.`.8X*XtXt.rXdXz.b _XzXz.bXzXz.b.b _Xz.^ _.bXg.o.o.oXg.c.V.c.V.c.c.V.o.c.U l.U.A j.(Xg.U.c.oXg.c.o l.b.:Xg N.X j.o.^.^.b.b.^.b.^Xo.b.X 7X* ~ ).kXtXtXt.r.r.r.r.k N ~ f.I NXz.b.bXz.bXz N.oXgXg.z.:Xz l.:.o.bXg.V.cXg.cXg.c.cXgXgXg.VXg.VXgXgXgXg.c.o.o.o.V.V.o.V.c.c.c.oXz NXz.^.XXd.r.H.8.8.a c.-XGXG u a.MXD R.KX*XI aX-.eX-.e t.* < <..XG ^.{XiXb.W.s 2.sXFX=.).) *.).d.pX+.l.S :.ZX3 :X, m B DX, m #Xc.,.,XH kX; n.9 s.aX1.0.n.0XO T.~XI.8 F ~.r.rXt.r.XXtXt.rXt.rXtXtXtXt ~.HXD sXs.= 8XDX-.aXD.[XHXrXp.OX. D D.$.& A AX A d.& d AX .IXzXzXzXzXz.b.X.^ NX* 3 c 3 cX*.uX* N.k N N.b ~Xt ~Xj ~.r.^ e.r eXt.r.r.r.r e.z.6.U e e.b.b lXz _XzXz _.^Xz.^.o.^XzXz.b.b.bXz _Xz _Xz.b.o.c.Q.U.Q.I.6Xg.cXg.U.c.V.c.c.c.c.o.c.c.#.7 i.b.b.^.b ~ F.r eXz.bXz.U.z i ZXg.U.: d.#.bXz.o.c.U.U.c.c.c.c.c _ d.c l.:X&Xg.U.#.#.#.V.#.#.#.c.c.c.c.c.cXgXg.c.c.c.c.c.V.c.VXgXg.c.V.c.c.#.cXg.V _XzXz N.^Xt ~.r.r ~.rXt.rXt.r.r.rXt.r.r.8.8 F", +"Xz.bXzXzXz lXzXz NXz.bXz.bXzXz NXz.bXz.b.bXz.b.b N.bXzXz.b.bXz N.^ N e e.X.^.b N.o.b.b.^.b.b.o.b.oXzXz.V l.UXk.X.b.k.r ~ 3XDXhX8.;X8XpX4 x E x 3X,XV $X, xX, $ a.M.9.-.-XU v.j.) p.)Xb {XbXb.BXb { w.j.' RX1.e.e.a.e hX- c.eXD.e.eX- RX- RX-XIXD.~ aX-.e.~X-.e.~ a 3.~.e.Z a R tX-X,X,.aX,X,XD.M R.W.n T.0X-.`.`.`.` ~Xt.r.r.rXdXgXz.^.b.o.bXz.bXz.b.^.b.o.^.oXg _Xg l l.V.c.VXg.VXg.cXgXg.o.6X&.o.z.:.U.oXg.c.c.o.U.bXz j AXx.t.&.b NXz.b.b.bXz.b.^ NXk.7XtX5.z ~ e.r.rXt.r.rXt.8.X N.:.I.X.^.^.bXzXzXz.b.b.o.X d.7.XX@.7 lXgXgXgXg.oXg.V.cXg.o.cXgXgXg.o.o.V.oXg.o.o.V.VXg.VXg.o.VXg.oXz.^.^.b.k.X.r.H ~ ~.8.} a.Y 1.Y x a R R B.`X1.e.` aX-.e.a.a R a t EXp . wX6XF.N.W.* u.wXq._ C t u pX4.p XH xXc., $.,XlXJXlXc T :Xw 1X#.- = ! gXG x.n.w.0XO.ZX1.H.e.8.8 ~ eXt.r.r N.rXtXt.r.rXt.r.r.r ~.`.aXGXsXs.M 8X1XD R hXh.YXp 9XwX5XJ )XxX@.t l A.t l.z.Q.Q.I.^Xz _XzXzXzXz.bXt e.r.r.rX*.r.k.^.X.^.^XgXd eXj e ~ N.^.r.k.rXt.rXtXV.r.r.r.b.X.^.rXj N.bXgXz.bXzXzXz _Xz.bXzXz.bXzXz.bXzXzXzXz _Xz.V.V.o.U _Xz l. .o.cXg.cXg.V.c.c.c.U.c _XzXzXz.^.b.b.bXt.r F e eXzXz.b.#.c.I iXg.#Xu. XgXz.o.c.U.U.c.c.c.c.c.UXu.: i.V iXu.c.U. . .#.c.#.c.c.c.V.c.c.cXg.c.c.cXg.c.c.V.V.V.c.c.VXgXg.o.c.U.V.o _XzXzXz.^Xj.r ~ ~.8 ~ ~ ~ ~ ~ ~.r 3.r 3 ~.8.8.`", +" NXz.bXz.^ l.^XzXz.bXz N.bXz.b.bXz.b.bXz.b.b.bXz.b.b.bXzXz.bXz.b.b N.z.^ e.^.bXz.b.^.oXzXzXg.z.b.bXz _Xz _.cXk.c NXzXj ~.`X,.9X0 S w.T n z xXl x.DX, 8Xl.3.9 x 1 h.M u 8XqXrXrX8 ^ {Xi L {.P.P.BXi.4 M.>.0 T :X5.9XKXc :Xc.eXIX-X- R.~X- RX5.e 3X-.~.eX- R.eX-.eX-X-X,X1.ZX- RX-X-XDX, RX,.aX-.M.a.D.wXP.] F.~.`.`.~XV.rX* eXdXdXz.b.b.bXz.^.^.bXg.^.b.b.b.b.^XgXg l.o.c l l.c.oXgXgXgXgXgXg. .f.&.tX@ lXg.o.c.oXg.c.bXg.zX@X@.z NXz.o.^Xz.b.bXz.^.^.^XtXx.RXk.rXtXt.r.rXtXt.rXtXtXg q./.RXzXg.bXz.bXzXzXz.b.bXz.I q l. ./XgXk.bXg.c.o.VXgXg.V.VXg.cXg.c.oXgXg.c.V.o.VXg.o.VXg.V.c.o.o.b.b.bXzXzXt.^.r F.`.8XI.8.a 1.Y nXw t < RX-X-.`.e a RX1 R R t.a a.*XeXpX6.{.PXb U U a < a <.M a C tXeXn.xXB .l.l.a.a RXIX- R.ZX,X, $.}Xl VXc =Xw g.n $ '.0.| @.Z.K c.k.8 ~.rXtXtXtXt.X.rXt.rXt.rXt.rXt.r.`.HXD vXa.W.W RXlXlXl.* $Xe..XL.9.~.K.u N NXj.bXzXz.^.b.^.^Xz.bXz _Xz _XzXz.oXj F.8 ~XV.rXt.r.X.b.X.bXjXj e e ~.rX@Xk )Xk q ) qXxXx qXxXt ~Xt.r.rXt.^ N.o.^Xz _.oXj.b.oXzXz _Xz _Xz _Xz _Xz.bXz.b.V.cXg.c.o _.b.#.c.c.b _.c.U.o.cXg.c.cXzXz.oXz.o.b N.^Xj.r F ~.^.bXz.o.IXg.c.o.U.c.c.o.b.bXgXg.c.c.c.c.c.VXg.UXg.V.c.#.U.U.#.#. .#.U.c.#.#.c.c.V.c.V.V.c.c.c.V.c.V.c.c.c.VXg.c.o.cXg.o.U.oXzXzXzXzXzXzXj.r ~.8.8 F.`.8.8.8.8 F.8.8.8 ~.8.8.8.8", +"XzXz.b.^Xz l.bXzXzXz.bXz.bXzXz.b.bXz.b.bXz.bXz.bXz.b.b.bXzXz.bXzXj.^.IXg.^.b.^XzXz.^XzXz.^.c.U.b.bXz _ _ _.o.oXkXkXg NXt.H BXG 0 *..X0 M.Y xXe 3X, $X5XcX;XwXUXc xXG 1.p.pXf.@X:X8 ;Xf.4 L L ; L.P.4XmXcXDXd 8 $X,.MX,XD.uXI.eXDX-.~X-X-.K.u.e.u.e RXI.a.~.e R.eX1.e BX-XI BX- R RX1 hX1 c a a.M.ZXG s ! : B.`.`.`.`.H.r.r.uXtXtXz N.b.b.b.X.b.b.^.^.oXzXz.X.b.o.o.o.bXg.o.oXg.c.oXg.cXgXk.b.XXg.b.b.oXg.o l.o l.cXzXz.bXgXd.^ N.b N.^Xz N.^.^.^ e e e.rXt.rXkX9 N e.r.r.r.rXt.r.kXx.^.^.^.^.^Xz.^.b.bXz.^.^Xz N.b.oXgXg.o.oXg.cXg.cXg.o.oXgXgXgXgXg.VXgXgXg.oXgXg.cXg.V.o.b.b _.b.bXzXzXz N.^ e.r.^.r ~.H.8.H 3.aX,.- y n.*.M R R.eX-X-X1 hX1 BXD R R a <XeXp ..4.PXF *.MX-X-.e 3.~ B a.* C.sX4.j x.i.i t.a.e a 3.MXD.ZXs h hXB.9Xw.>.! y.GXy @XU gXJ 5 (X9.K.r.r.r.r.rXt.^.rXt.rXt.r.r.r.r.r ~ 3 B v 2.N U t.ZXc U.M U.W bXGXlX1X9Xt.^ NXg.^.b.X.I l.^.^Xz.b l.b _.oXzXx.^ N ~ F ~.r.r.X N ) N.b.XXdXjXtXtXt.rXXX3.$.,XX ).$ D.$ (.5.r.rXt.r.rXtX* N.^.^.^.b.bXzXzXzXz _.b.bXz.bXz.bXzXzXz _Xz.b.V.cXgXz.o.o.#.o.oXz.U.c.V.c.c.V.c.oXzXz.^.b.bXz.bXj ~ eXt e.^Xz.o.c.U.o.c.cXg.VXg _.o.o.cXg.c.c.c.c.UXg.c.c.U.c.U.U.c.#.#.c i.#.c.#.c.#.c.V.c.c.c.V.c.c.VXgXg.c.c.VXg.VXg.c.o.cXgXz l.bXzXzXzXzXzXj e ~ F.8.8.8.8.8.8.8.8.8.` F.`.8 F.`.`.`", +"XzXzXzXz.^Xg.bXz NXzXz.b.b NXzXz.b.bXz.b.b.b.b.bXz.b.b.b NXz.^.^.r.^.b N.^.b N.bXz.oXz.b.b.oXz.bXzXzXz _ _.b.bXk.cXk.bXt.HXD x b.)X=X2 vXe.w $X,X,X,.ZXD 'XlXJX.Xw.-XpXnX>.x ;Xf ^Xi.BXi.B.B.P L.C H.Y.nX1 B.e B t t aX- R.eX-.eXIX-.e :.G.uXl.,Xl R c.] `Xl 3Xl $XlX5XlXJXK.'.H 1 3XD RX, a R R $.n.'.2X1XI.H.HXI.H.H.kXt.^Xd.^.XXz.b.X.o.b.o.XXgXg.XXxXg.oXx l.UX9 l.XXg.U.I.U.I.U.U.z.I.I.U.I.I.z.#.U. .#.Q.Q.Q.z.z l. Xk.zXk.z lXk l l l l.UXg.X.^.o NXgXx.R.z.X N.X N N.X NXg q.zXx lXk l l l l.U l.c.U.U.U.z.I.Q.U.I.#.#.#.#.#.I.#.U.#.I. .#. .I.#.#.#.#.#.#.#.I.#.U.cXg.c.cXk l lXx.oXz.^.^Xx.^Xt.rXt c.u c 3XcXc =.M hXDX1.Z cXl $ 3 $ $ $.w 3 U.M x.jX>.4 ;.. v $X,.H #X5XD 3XDXDXe vXnX> W.gXB ` h 1 cXlXJ s x 1 1XwXJ.[X;X;.!.0 ! ! '.Z.5.HX*.K.k.k N N N.^ N.XXxXo.^ N.k.K.^ N.^.kXtXVXD yXnXpXG $.ZXI.Z.ZXL v.@XG.ZXV.5.^.X.X.b.b.b.b XX d AX&Xk.IXx.IXkXk.I.I.k.rX*.H.rX9 N N.z lXo.o.XXt.r.kXV.8XX c.K h 3 $ ) c.k.u.rX*.r.r.r.rXt.r.^Xt.kXj.^Xz _.o _Xz _Xz _XzXzXz _Xz.b _XzXz.VXg.cXgXz _.c.UXgXz.V.cXg.o.c.cXg.c _.b.oXzXz.b.b.^Xj eXkXk.b.^.bXg.U.U.o.cXgXg.c.c _ _Xg.c.U.c.c.c.c.c.cXg.c.c.V.c.#.#.#.U.#.#.#.#.#.c.#.U.c.V.V.c.cXg.VXg.c.V.c.V.c.c.cXg.c.c.o.oXzXg.^Xz.b.b.^Xj e e.r F F.8.8.8.8.8.8.8.8 F.` F.` F.`.`.`", +".^XzXzXzXz.oXg.bXzXz.bXz.bXz.b.bXz.b.b.bXz.b.bXz.b.b.b NXz.b.^ e.^.X.X e.b.b.b.b.^.bXzXz.b.bXz.o.^Xg _XzXzXz.bXgXk.UXkXj.rXIXDX> 2X= & y 1.-X,X,XI.uX,XV $X,XD.ZX, R u.)XbX6.P.BXFX= /.v.)X= -.P ^X0X0X. 8.DX-X,XDXDXI RX- 3X1XIXI.uX-X3.%.3.,.%.%XK :.-.,X.X.XcXJXJ IXw 5.,.% : mXK x.K $ c $ c g g.>XOX5 '.k.u.k.uXoXo.5.^.^.b.X A ].z.X.XX@Xg Q.Q.I.z.z q l ] (.^Xd.rXx A iXk l l.&.6.z.z./.z l.I./.I.c l l.cXg _Xz.bXk.b N.o.^.b.b NXz.bXz.^.^.b.^ e e ~ e.rXj.r ~.r.r.rXt.r.r N.^.b.^.^.^.^Xz.^Xz.^Xz.b.o.o.cXg.bXg _.V.c _.oXg.o.o.b.V.o.o.o.o.o.o.o.o.b.o.o.o.b.bXz.^Xz.^.^XzXz.^Xj e.r.r.r.^ ~ F.` F.`XIXI a cXK.j.a.e a RX,X- a.eXD 3 a B.a.e a.e._XnXn ; {XF.M.eX,XV.`.HXI.H B.e tXe._.. .X+.Y $X< :X.Xl #XJ x v.9XB., [Xw.OXm.nXa.0XUX1XI.~.8.8.8.8.kX*XtXtXt.r.k.kXt.kXjXjXjX*XjX*XjXVXI.D v.WXe.M hXlX5Xl.wXGXG 0 y 3XoXxXx.U lXgXk l.z d.z.t.t.IX@.&.& fX .( f ,.R P q f f.| Q.t Q Z.f P.& QX@ ] ) cXJ IXJ |.,XJXc.,.$ q.$ qX9.XXxX*.kXt.5XtXjXj N.b.bXzXzXz.bXzXzXzXzXz.^XzXz.^XzXzXz.V _.VXzXz.cXg.cXj.c.V.c.c.cXg.o.bXzXz _.bXz.b.^.^ e.r ~.oXk.^XzXg.#.UXgXg.oXg.VXgXz.VXg.V.V.c.c.c.c.c.c.V.c.c.#X&.c.#.# i.#. i.#.#.#.#.U. .#.c.V.c.c.V.c.c.V.c.c.c.VXg.c.c.o.b.bXzXg.^.^.^.^Xj e.r ~ ~.8.8.` F.8.8.8.`.8.8.8 F.`.`.`.`.~X-", +"XzXz.^Xz.b.bXgXz.bXz.b.bXzXz.b.bXzXzXz.bXz.b.b.b.b.b.b.b N.^.^.r.rXd lXj.^.bXzXzXz.^.bXz.^.^.b.^.b. .UXz _.o.X.b.o.U.z.oXtXVX,XK 2.s.j MXeXK 1 c hX5 $ x $ 1 x :.' sXeXpX6 ;.4.v.. O.s v.s.v 2Xi.@ H.+ y.2 D.,.-XJ.- h RXD R R.a RXV R.5Xl.K RXVX,.e cX5X1.MX-.a.u 3.a.uX-X-X-X-.eX-.~.Z B aXI 8.9XPX..] D ).$ (.RXx.$XxXk ~XtXjXd.RX@ A.RXk.t N./.RX@.& Q.t.&.t.f.8.r.rXg.R.AX&.(.zX&X&X&XuX XuX .cX&X X&.U.c.c.c.o.b.b.U.^.^.b.o.^.b.b.^.bXz.bXzXz.^Xj.r eXt e.r eXt.rXt.r.r e.r.XXjXj.b.b.^.b.bXzXzXz.bXg.c.c.o.V.c.c _Xg _ _.o.c.oXg.V.c.cXg.oXgXg.V.o.VXgXgXg.V.b.bXz.b.^.b.^.^.^Xt e.r.r e.r.^.r ~.8 FXI.8.8.8XIXKXG.Z U.9Xl R :.M `XK xX5 mX, ` <.9.iXp.@.{ {.d.W UX5X-X-.~.~.HX-.uXDXe._.).mXn.p.F 1 x k.-XJ n.3XcXH.3.1Xh.G @.w.nXL.'XPX1X-.8X-.8.8.8.rXtXtXtXtXtXd.^XtXtXtXtXt.rXtXt.u.8.H.n.s.).) UXwXcX, $XL s.s o v.`XV.b N.^.b.bXz.bXzXd.X.^.^Xz.^.^.XXt N N.^ FX@ 7 qXk.$.z.I.R d.R.R.I (.I ].R )Xt # c #Xl # :XM.5X9.5.5XxXo NX9Xo N.kXk.^ N.^.b.U l.U.c.#.U.c.U.U.c.U l.U.U.c.U.U.V.I.I.UXg.c.6.#.V.U.U.U.U.c.c.c.o.bXg.b.^.oXzXz NXj e ~ ~ ~.rXz.^.o.c.b.o.o.c.cXg _ _ _.c.c.cXg.c.cXg.c.c.c.c.V.#Xu. .# iXu. .#Xu i.#. . .U iXu.#.c.V.c.cXg.c.c.c.c.c.c.VXg.c.o.b N.bXgXj.^.rXtXt.r.r.8 F.8 F.8.8.8.8.8.8.` F.`.`.`.`X-X-X-X-", +".^.^Xz.bXz.^.c.^.^XzXz.^Xz.^.^.^Xz NXzXz.b.b.b.b.bXg.b.b.oXg.^.^Xg NXk.bXkXgXk lXk.c.U l.U l.U.U dXu.z.U l d d.t.R.t.t Q q.]XJXwX>.) &.j.M E.M hXD h 3X,.MX, $.a hXD.).).BXf { - * C.* 8 t.*.N G 2 wXmXc $XD RXK aX, cXD.~.~X- B.~X-.` cX5.`X- RXI a.e a R aX-X-X-.uXIX3.u.aX-.~.aX-XI.ZX- BXD.9.' g.2X1 DXo ) q 5.$X9.$.&Xt.r e.k.^ N.^Xj.^.^.k.bXgX9.bXxXg.XXx.X.r.8.8Xt.X.U q.#.U.U.U.#.U.U.U.c.c.c.#.U.cXg.cXg.o.oXz l.b.b NXz.bXzXz.b.b.bXz.^.b.b N.^.^XjXjXt.r.r e.rXt e.r.r.^Xj.^Xz.^.b.bXz.bXz.b.cXg.V.VXgXg.o.V.V.cXg.o.cXg.VXg.oXgXg.VXg.VXg.oXg.c.V.o.oXz.^XzXzXz.^.^.bXjXj eXtXj.^.^ N.X ~.r ~.H ~.8.` 3X-.9.'XJ hXc.- x.OX5 |X.X5 xX.XKXK xXHXpXnX4 w %.).W $.a.e a a.e.u.e 3 3.a u.)X= ..jXM.l h.a.aX5XD $.}.} ` `XH n.9Xa.>XPXP g.5.`X-.`.8 ~ ~.u.r.r.rXd.H.^X5 e.rXt.rX*.rXtXt.r.8.ZXL.=.).N <.}.u.aXD.M O.sXG U.8.k.X.bX .I./Xz NX@ d NXz.XXg.X.XXtXtXj.^.b.rXjXk e.X.^.b.^XzXg.b.^.^.b.XXg l.r.rXt.rXt.r.r.r.r.r.u.r.r.r.r.r.r.rXt.r.k ~.r e eXzXzXzXzXzXzXzXzXzXzXzXzXzXz _Xz.b _.o.V _ _.U.6.U.c.U.U.U.U.c.V.c.c.c.c.U.U.U.U.U.U.o.b N.b.bXgXk.#.U.I.c.U.c.#.U.#.U.U.#.#.U.#.c.c.c.U.U.U.c.c.V.c.#.#.#.#.# i.# i.#.U.#.#.U.#.#.#.c _.c.V.V.c.c.c.V.c.c.cXg.c.bXzXzXk.^Xj.rXj.rXt.8 ~.` ~.8.8.8.8.`.8.8.` FX-.`.~X-.8X-X-.~.`", +".o.oXgXgXgXg qXg.c lXk.cXk.U.U.U.U.U.U l.U l.c.U.c lXgXkXg.b.^.^.b.kXg.X.o.b.o.b.b.b.bXz.b NXz.b N.o.^XzXz.zX@ f.& Q.t Z.& qX3.jXG.) WXr E.M t h.}.}.MX,.}.M U x.MXD pXbX6 L {Xv.N.*XlX1 8 R C.) 2 ^X;Xm.w R.ZXD ` < cXV.eX-.*X-.~.eXV.K 3 3XI RX1.e aX-.e.e R a.~.e.u c cXI.eX1.eX1X,.*X1X-.w TXcXO $X1.u.`.r 3.r.r.HXtXt.^.^ N.k.^ NXj.kXtXtXj.^ N N.b.b N.b.z.$ c.u.r NXkXk lXgXgXg.V.c.c.cXg.cXgXg.cXg.oXg.V.cXgXg.b l.^.b.^.b.b.b.bXzXzXzXzXz.^Xz.b.bXz.^ NXt.r.r e.r.r e.r.r.b.^.^XzXzXz.bXzXzXz.b.cXgXgXg.VXg.V.cXg.V.V.V.cXgXg.V.oXg.V.o.o.oXg.oXgXgXg _XzXz.^Xz NXz.^.^XtXtXj ~XjXdXz.^.I./.XXd.r F.8.8.8.`XI.u.jX;.i.M CXD.Z h.aXDX,X,.wXDX,.M U.jXnXf.CXfXe.W.9XM 1XlXM c TXXXJ :XM x.@.s vX+.F xXM.l 3 hX,.a 3XXXMX3.,XUXl sXaXOXPXU '.~.8 ~.` ~.k q q )XkXxXo.kXt.rX*XtXj ~XtX* ~ ~.H sXs /.N C UX, cX,.M s 2XL.9 a FXoXg.^.t.t.tXg A.t A P QX@.&.(Xg P N e e.^XjXj.r.b N.^.b.oXgXg.b.bXg l i d d e eXt.rXt e.r e.rXV.r.r.r.r eXtXt.rXt.k N.r e e eXzXz _XzXzXzXz _XzXz _Xz _Xz.bXz _ _Xz.bXz _.U.#.c.V.c.cXg.oXzXzXzXzXzXzXzXzXzXzXz.^ e.r e ~.r.^.bXgXz.UXz _.b _.U.U.U.U.U.U.U.U.U.U.#.#.#.#.#. . .# i i. i iXu.#. . .#. . . . .U.U.c.c.U.U.c.c.c.V.cXg.c.c.cXgXz.^.^Xg e.r.r.r.r 3.8.8 3.`.`.8.`.8.` FX- FX-.`.~ 3.~.~.`X-.8.~", +".o.o.o.o.b.o.UXg.b.b.b NXzXzXz.^XzXz.^.^XzXz.^XzXzXz.bXz NXj.r.r eXt.b.X.b N.b.^XzXzXzXzXzXz.b N.b.b.b.o.^ N.X.QXo.oXg.6 N ~XI 1Xn.) 0 &X>XG._.W.W <.M U.M.WX,Xe._ u - - { ;.BXv C 1.>XK.a t.*.N / 0 = =X;XK.Y.-.-X..aX-.~.~.eX-X-.eX-.u.eX-.`X, 3 BX-.e R.eX- aX- aX-X9 R.K.}X-XI.aXDX1.M.*.Z.0XPXJX1.H c.8.k.rX*.r.k.rXd.5 NXz.^.b N NXg.^ eXj.b.b.b.b.b.b.o q f.$ 5 5X@.f lXgXgXg.c.c.c.V.c.V.cXg.V.o.o.V.VXg.cXg.c.o.UXzXzXzXzXzXzXz.^Xz N.b.b.^.b.^.^.^ N.b e.r.r.r.r.rXt eXjXg N.b.b.^.bXz.bXz.b.oXg.c.V.c.c.c.c.VXgXg.VXg.VXgXg.o.o.oXg.o.V.o.VXg.o.V.o.bXz.^XzXz.^.^.kXj e.r e eXd.^Xz.b.^ l.k.r.r ~ ~ ~.8.8X1 B 1.' x.M.aXD.aX- tX- R RXDXD RXe.-Xr.. H S.4X0XsXD.WX,X7 h 1 #., cXlXK xXnX4X2.EX+ .lXM 1XK.}.} c.lXX.-XH g $.w.D ' '.0.0.`X-.8.8 3.X.$ q q D q.HXdXdXtXt ~X*XtX*Xt.r 3 $.w.=.= u.W `XD.} c.M v O b xX- ~.o.XXz.U l.UXgXx q (XkXx.z.z q NX ./ F.r.^Xz.^.^.X.b.^ NXz.o.b.o.z.6X& A.z _ ~ e e.r.r.r e.r.r e.r.rXt.r F e F e ~.kXj e.r eXj _XzXz _XzXz _XzXzXzXz _XzXz _XzXz.bXzXz _.o.U.U.c.c.cXgXg.VXzXz _.b.b _.b _Xz.b.^Xz e eXt e.r.^.bXgXz lXzXz _ _.oXgXg.V.cXg.c.c.V.V.c.cXg.V.c.c.c.V.#.c.#.#.#.#.U.#.U.c.#.#.#.#.c.U.U.U.U.#.U.U.#.U.#.#.#. .#.I.U lXk.I.b NXz.kX*.r.8XV.` ~X* 3.r.` 3.8.`X-.`.e.`.e.`X-.~.~.`.~", +".b.b.b.bXz.^.o.oXzXzXzXzXz.bXz.bXzXz.bXz.b.b.b.b.b.b NXz.^XjXjXt.r.r.bXg.^Xz.b.b.b.bXz.b.b.b.b.bXz.b.^.o.bXz.^.X.b.oXg.z NXtXI x JX= 0 w &Xf v.W u.W._Xe.N U.N.) p._XF.B {Xf.B.).N U aX-.a R t C /.NXC.j s.WXDXD UXD.~.eX-.~ B.e.eX-.~ 3.~X-.eX- cXD a RX-.~.eX- a.`.e # c.~XDXI R.e B.D R.DXl.wXU.0X-.`X*.`Xt.r.r.r ~XV.^.b N.b N.b NXz.b.b N.o.b.b.b.b.b.b.bXg 5.z./ q q.z lXg.o.V.c.c.c.V.c.c.cXg.c.V.cXg.cXg.o.VXg.o.UXzXzXzXzXzXzXzXzXzXzXz.^.b.b.^.r.^ e ~Xt.r.r e.rXjXd.^.^Xg.b.bXz.^.b.bXz.bXz _.o.cXg.c.oXg.VXg.V.V.o.c.o.oXg.o.o.VXg.VXgXgXg.VXg.o _XzXz.b.b.^.kXt e.r.r.r.r e.^XzXz.b.^.X e.rXdXt ~.` F.8.`X-.w xXp 1 R a < R a R t $ '.M h.- M.h.y.y.+ H.@Xs.M t t a < < aX-.~X-.*.* < p.)XnX+.jXB.Y.iXBXM.lXMXM `.- g '.'.w B 8X5.n DXIXI.`.8.5.5X9 c.k ).r.HX9.rXtXtXt.r.k ~.rXV.uXK.W.WXs.NXw.9X, <XDXeXe vXG.}.8.r.X.b.b.b.^ NXx Z.RX@Xk.R.z qXkXxX*Xx F.rXt.X N.o.k N N.bXk.U././X@.6XxXzXz.b.r e.r.r.r.r e.r e.r.r.r eXjXd.zXkXx.r.^Xt.r e ~XzXzXz _XzXz _XzXzXzXz _ _Xz _Xz _Xz _XzXz _Xg.#.c.c.c.c.cXg.VXzXzXzXzXzXz.bXz.bXz.b.b ~Xj.r e.r.^.b.o.oXg.bXz.bXz.b.VXg.VXg.V.c.c.c.c.c.c.c.c.V.c.c.c.#.c.#.#.#.#.U.c.c.c.c.c.c.c.c.cXg.o.V.o.V.o.o.o.o.o.o.V.o.o.#Xz.bXg.^ e.r ~ ~ ~.u c qX*XIXVXV.K 3X,.uX,.uXV 3XVXD.u 3 x.uXM", +"Xz.^.^XzXz.^.o.c.^Xz.bXz.bXz.b.bXz.^Xz.^XzXzXzXzXz.bXz.bXj.r.rXjXt e N l.^Xz.b N.bXzXzXz.bXzXz.^.b.bXzXz.b.b.^ N.b.b.c.c.o.k.8XD.EXv 0 0 SXC ^.s.s...s........Xn . .Xf.J.B.{.B *.).* tX,XJXc.* U.N.vXC 9.wXLXeXL U.Z.eX1.~.eX-X-X1X-.aXIX-.eX-.~XDX-.HX- B.e R.e.~ R.~XI.uX- RXD.D B R R 8.ZXK.'XO.0.`.`X*.H ~.rX*.r.uXd.rXo.b N.b.bXz.b.^XzXz.bXzXzXz.b.bXz.b.o qXkX9XgXgXk.c.c.c.VXg.V.VXg.V.o.VXg.c.VXg.cXgXg.V.o.c.o.UXzXz.b _ _.bXzXz.^Xz.^ NXz.^Xj e.z q.zXt.r e.rXtXj.b N.^XkXzXz.^XzXzXzXzXzXz.b.o.c.o.V.o.V.VXgXg.V.o.cXgXg.VXg.o.oXg.oXgXg.oXg.V.o.bXzXz.^.^Xj e.r.r e.r e.rXj.^.b.o lXgXg e.r.r.rXt ~ F.`XIX-.aXcXnXpX,.* RX- <X- `XHXw nXw.1 MX:.4.4 ^.v.W.*.9.- xXBXKXKXJ 1X..2Xc.9X+Xn M 0 0 ^.j.jXBX7.lXMXM gXU s.w.DX1.' R.nXa (.uX-.8XV 5 I.$.$ I q.|.k.KXd.uXtX*.r ~.K ~.HX5 s.NXs.NXDXD.9 RXD.M v v bXG B ~.r l.b.bXz.b.oXg././.f.&.f.f QX@ 5.8 F ~.r.k.X N.XXk.R.R.&.&.I.z./XkXj.o.^.bXjXj.rXtXtXtXt.r e.rXt e.H.r ~ eXgXg.X e N e e ~ eXz.b _XzXz _Xz _XzXz _XzXzXzXzXz _Xz.bXz _ _.c.#.c.c.V.c.V.o.bXzXz.b.b.b.b.b.b.b.bXz eXj.bXkXjXt.^.o.b.c.o.bXz _Xz.b.c.c.c.c.c.V.c.c.c.c.c.c.c.V.c.c.#.U.#.U.c i.#.#.c.c.c.c.c.c.cXg.o.o _.oXg.c.VXg.VXg.VXgXg.VXg. Xz.c.b.b.^.r ~ F.8.`Xt.$ ( ) qXV ) :.5.u : `X, h RXq.aXG.-Xp.Y", +"XzXz.^.bXz.^Xz lXzXz.b.bXz.^.^.^ N.b NXz.b.b.bXz.oXz.^.b.rXj N.I.rXt.bXk N.b NXz.b.b.b.b.b.b.bXzXz.bXzXz.b.b.b.oXz.b.U.c.oXt.8XD y ^X=.@.@.;X> 0....XnXp....Xn._ .X4..XA.CXfXb * G.* R tXU h.e.N.)X=.E o.sXaXL.s.wXa.w.~X1X1X-.e.e.~ 3.e a.`.e aXIX- R 3 R.~ a.~ B.e B BX-X-X1X-XDX1X,.' T s s 'XK.0.~.8.k.`.kXtXt.8XdXd.r.^.b.^.bXz N.bXz.b.oXz.b.bXz _.bXz.oXg.I.UXg.cXg.V.c _.c.c.V.cXg.c.V.VXgXg.c.o.V.V.cXg.VXg.c.o.UXz.bXzXzXzXzXzXzXzXz.^Xz.^XtXj FXj e.r.r.rXt eXtXd N.b.^XgXz.bXzXzXzXzXzXzXzXz.oXg.VXg.c.c.VXg.VXgXg.cXg.VXg.o.o.VXg.VXgXg.VXgXgXg _XzXzXzXj e.r eXt.rXt.r e.^XzXz.o.#.I.z eXd.r.rXj ~ ~ ~.H R tXc.pXr.a.a a aXD 1.2XH y $XG.F.EX2XAX6Xi.)Xs C 1XKXK : U 1 :XlXl.9.- vXpX4 S.@Xv.vX6.;X+ n.-.-XBXwXw.'Xa.n t : c.0XaX5 gXl.8.H 3 ).KX*X*.k.u.5XV.5 ~Xg q ~.K.rXVXVXVX5XL 0._ u 8 R.~ 8XD U v.s.Y.Z.` ~Xt l.bXzXz.b.b.X./Xk.5Xx N N N N.k N N.XXx.I.I q.&.AX@.$.I.z.I.b.^ N.oXz.b.bXj ~ eXt.r.r.r.r.r.r.r.r e e e e.^.k e ~.^.r.r e.^.bXzXzXz _XzXzXz _XzXzXz _XzXzXzXzXz.bXz _.b.c.#.c.c.cXg.o _XzXzXz.bXz.b.b.b.bXzXz.bXj e.6 q.o e.b.o.b lXz.b.bXz _.b.c.c.V.V.V.V.V.c.V.c.c.c.c.c.V.c.U.c.U.U.U. .U.U.c.c.c.cXg.cXgXzXzXzXzXz.o.c.o.o.o.o.o.V.V.V.c.cXz.U.^.^.^ e ~.`.8.`Xd.8.X.5.uX*X5.K.,XM.3X. [.Y.[ =X< 1XqXq._", +".b.b.^.bXzXzXzXgXzXz.^Xz.b.b.b.bXzXzXzXz.bXzXz.bXz.^.bXzXt ~.rXj.rXj.^Xk.b N.b.bXz.bXz.bXz N.b.b.b.b.bXzXzXzXz.^.bXz.V.cXg.^.HXI o...) ^..X0 S .Xi .X2X:.xX:X2 ..x.xX2.xX>X4.s U.N.*.*.*.DX,.eXw.s 2 HXmXm o & b vXL $XD.~.H.e RX- 3.e `XKX- RXIX5 3XIXI.ZX- B.~.e R.~ RX- B RXl.w.'XK.].' TXP ! g.D.`.~.kXV.r.rXtXt.rXd.HXzXo.oXz.^.bXz.XXdXz.bXz.bXz _XzXz _Xg.# l.c.c.o.c.c.c.c.V.VXgXgXgXg.o.c.VXg.V.VXg.V.cXg.c.c.b.UXz.bXzXzXzXzXz.bXzXzXzXd e eXt eXt.rXt.r e.r.r.r.^ N.^Xz l.^.b.bXzXzXz.^Xz.bXz _.o.V.V.V.o.o.oXg.VXgXg.o.VXgXg.oXg.cXg.VXgXg.V.V _.bXz.bXjXj e.rXt.r.r e ~ e.b.^Xz _.cXg lXd.r.rXt e.r F FX-X1XDXK nXr.Z RX- a.-X.Xc s.Z U.wXnX4X2 { - - p.M a R.e R a.e R R BX-.* a.d.*Xb.)..Xi ^.@Xi.vX4XpXn s.q oXa.w 8.eX1 TX,X5.n g )X- 3.u ) )XX )X3Xx ) ~X9 ~ ).$.f ~X*.u.H.D.n.N.) t aX,.wXDXD.MXs v vXpXD.8.HXd.cXz.b.bXz N.b./ q.f.f 5.&./.A N.&X .6.6 d.I.#.Q l.o.oXzXz lXz _ _.^XzXz _Xz.o.^.^ e e.r eXt e.r.r.r.r ~ e ~ e.r.r.X e.r e.^.^XzXzXzXz _XzXzXzXzXz _XzXzXz _Xz.bXz _ _ _.c.#.VXg _ _XzXzXzXzXz.b.b _.b.b.b.b.b.b e e e l.rXj N.bXg.cXz.b _Xz.b _.V.c.c.V.c.c.c.c.c.V.c.c.c.c.c.U.#.#.U.U.#. .U.c.U.c.cXk.c.oXzXz.^XzXjXzXz.V.o.o.o _ _XzXzXzXz.o _.U.bXz.^XjXt F ~ F F F.`.`.8.` 3X5.a.i.Y.YXB x E U EXeXp", +".^.bXzXz.^Xz.^Xg.oXzXzXz.bXzXz.^Xz.b.bXz.bXzXzXz.b.bXz.r.r.^Xg NXjXj.^Xg.oXzXzXz.b.b.bXzXzXzXzXz.bXzXzXz.b.b N _ _Xz.o.UXgXzXtXIXp.s M J..X>X8.<.p r.y.p.<.[X+ W.jX%XpXnXp.pXpXLXeXa C.*.M R.* C /.= O.W 2.=.v.E 9Xa.Z B.~ 3.aXVXDXIXl $ cX1XIXDX1XIX-.eXI 3 R 8 RXD 8.M T T.]XJ DX;.%.G K.O.0 D '.` ) P (.A.k ~ QXx f ( fX@.( d.tX&.t X l.bXzXz _.bXzXz.o l.o.#Xg.c.c.V.c.c.V.cXg.c.c.c.cXgXg.cXg.V.cXg.c.o.cXg.c.c.b lXz.XXzXzXzXzXzXzXz.^.^ e.r e.rXt.r.r eXt.r.r.r e.^.^Xz.^ lXzXzXz.^ N.b.^.^Xz.^Xz.b _.o.o _ _.o.o.V.o.V.cXgXg.V.o.oXg.o.o.VXg.o.bXz.^Xz.^Xj.r.r.r.r.r.r.r.^.^.^Xz.#.U.b.^ l.^Xt e ~.r.r ~.8 FX1 R.Y.pX+XD a aX-X- a R x.Z v xXpXf.xXAX6 u E t.} RXIXI.Z.aX1 3X,.} a < *X=X=XiXf %X=X=X=.sXn.) 2.s o.j.nXa R B.eX- BXaX5 T.0X-.8XIXt 3.u.rXV.r.u.k.KXt )Xk.KXxXoX9.5X5.n 2.).M.}X,.Z R.aXD.d v.@ hXI.H eXj l.bXz.bXzXz.b.^.X N N N N.K.bXz.b.^.bXzXz _XzXzXj.bXz.b.bXg.bXzXz _Xz _XzXz.b.bXz.^ N.b.^Xj e.r e.r e eXt.r e.^ e.^ ~ eXd.b.bXz.bXzXz.bXz.bXzXz.bXzXz _XzXz _ _XzXz.b _.c.# _ _Xz _ _.b _XzXz.bXz.b.b.bXz.b.b.^Xj ~ eXj e.^.b.o.UXgXz.b _Xz _.b.V.c.o.c.V.V.c.V.c.c.c.c.c.U.#.#.U.#.U.c.U.#.c.c.c.c.c.c.o.^ e e ~ e e e.^XgXg.bXzXz.^XzXzXz _.V.U.c.o.bXz.^.^.r.r F.` F.`.8X-.}.} 1.- h h.}X, h E.} < t a.} t", +".^.b.^Xz.^Xz.b.b.c.^Xz.^XzXz.bXz.bXz.bXzXzXz.b.bXz.b.^ e.^.r.rXt.r.b N.bXkXz.bXzXzXzXzXz.bXz.bXz.b _Xz.b.b.^.b.^.^Xj.o.cXg.X ~XVXq & vX0XL 0 S.x rX<X+X+XpXB.YX7.[XB.l.l.l.F.jXn.).N.WXs.M < <.e U x.>.n.NXs.N 2 ^XmXa.ZX1.e 3.a a a aX- t R cX, c $X-X-.~X- R.uX- R RXDX5 'Xw.2Xw !X. m 4.% IXJ.2 (X- 5 } 5.A.r ) f.R P A A.&.(.IX@X@.zX&.X.b.^.bXz.^.bXz.oXgXg.U.U.cXgXg.cXg.c.V.c.c.c.cXg.c.c.c.oXg.c.cXgXg.c.c.cXgXg.cXgXzXz.o.b _Xz.X _.XXd eXdXdXd e.kXjXdXtXd.k.kXd.k.bXx.b.zXgXg.o.o.o.oXg.o.o.oXgXg.o.b.oXgXg.c l.U.U.UXg.U.U.U.U.o.#.U.U.c.U.U.c.oXgXg.X.^Xj.^ N.^Xj.^ N.o lXd.#X@.QXg.o.zXgXzXd.^Xo.k.k.8.uXV 3XcXr M h CX1.aXD.ZX1 $ x 1._X+X>X8Xf S._Xw xX,XKXlXcXl ' :.- cXM a.).s.BX6.C 0.v.NXa O.N.w *.W.s JXrXP.wXD.e : 'XD.n.nXPXo.H.` ~X*Xt.u.r.k.rX*.u.K.r VXk IXX m.,.,.' v.=.=Xs aX1.H R 8.N.WXnXG tXI.r e.^Xg.bXzXz.b.^XzXzXz.b.b.^XzXz.b.^.bXzXzXz.bXz.bXzXz.bXzXz.oXgXz.b.bXzXzXz.b.bXzXz.bXz.b.b.bXz.^ eXt.r.rXt e.r.z ) qXtXj.rXjXz.^XzXzXz.b.bXzXz _XzXz.b.b.b.b _.b.bXzXz.bXz.U _.bXz _Xz _XzXz.bXz.bXz.b _Xz _.o.b.^XjXt.r e eXzXz.o.UXzXzXz _XzXz _.o.c.c.V.c.c.c.c.V.U.U.c.c.#XuXu iXu.V.V.#.V.U.c.U.c.cXg.o.^ e e e e e e.^Xg.o.b NXj e.^.b.^.b _. .o.V.o.bXzXz.^X* F F F.`X-.}.F >.l h xXM.a.}XD.a a a.e a.} a", +".b.b NXzXzXz.^Xz.U.b.bXzXzXzXzXzXz NXz.b.b.bXz.^.bXz.b.rXxXg.k eXt.^XzXz l.^.bXzXzXz.bXzXzXzXz.bXz.^.b.o.I N.^.^ eXtXzXx.U N.^.` $ =Xs = J vXr W WXr.pXB $.YXB.lX3.l.l h.i.lXBX+ v.W.N.N.N.w.a <.a xXU.n.N C.)X= ^.E.wXa.DX,.u.e a.eX-.e R.e.e RX-.K : 3Xl.` R.u h BX,.w.wXJ.2XO.u.D.H.~XI 3XV.8 3.HXV.5 N.X.5.k.k.kXoXo.XXj.X lXx.I.^XxXg l.X.U lXg.o.U.#./.#.c.6. .I.#.#.I.#.#.U.#.U.#.#.U.#.#.#.U.U.#.#.U.U.#.U.U.U l.z l _XgXg.X.o.bXgXg.bXdXd.^.^.^.rXd N.k.kXt.k.^.kXd.^.b.XXk.b.b.X.b.b.b.o.b.b.b.o.b.bXz.oXg.VXg.c.cXg.c.o.c lXg.c.oXg.c.c.o.VXg.oXz.bXz N eXtXtXj.r.rXj e _.^ _.o.b. .^.X l.bXjXtXtXt.k.u ~.H.8.aXc.j.+.M t.aX-X1XDX-.aXD hXpXnX>.4.. %.Z.M.MXD.a.a RXI 8X1X-.} u.* %.vX6XfX6Xb.N.= 2 8XDXs u._.s J.q o T.ZXDXlX;.D.0.0 gX5.uXtX*.^Xo.^Xd N N N NXX.K.$XX.u.5X9 `X5X, 1.@ vXaXw.9.Z x RXGXn.jXn 3X5.X N.o lXgXgXg.c.oXg.o.o.o.o _ _.o.o.o.b.b.o _.bXz _.b.bXz.^.bXg.oXzXzXz.^XzXzXzXz.^XzXz.bXzXzXzXz.^Xj.r.r.r e.r.r.XXgXk eXj e.^Xz.b.oXzXzXz _.b.bXz.b.b.bXzXzXzXzXzXz.b.b.oXz.c _XzXz.b.bXz.b.bXzXz.bXzXz.bXzXz.b.b.b e e eXj.^Xz _.c.U _Xz _ _ _Xz.o.c.c.c.c.c.c.c.cXg.V.V.c.c.c.U.U.c.U.c.c. .c.c.V.V.cXg.c.oXz.^Xj e ~.r e NXg.bXzXj e eXj.^XzXz _.U.o.V.VXzXz.^ N.r.r.`Xt :.}.[.l.m.m E U a 3.a.e.eX- a.a.eXD.e", +"XtXjXj.^.^Xz.bXzXg.b.bXz.bXz.b NXzXzXzXz NXz NXzXz.b.b.^XjXk.^.r.rXz.b.^XkXz.bXz.b.b.b.b.b.b.b.b.b.bXg.z.I.b.b.r e e.bXg.z.X.^ cXG o.W 9 v s.@.<.p WX7.9.i $X,.i x : h <.}.l.l.-Xr v.sXe.WXL.M.M U xXG aXDXD 2 2 ^ H o.n.n g.0.ZX-Xc.-Xl `XI x 3XlX. }XlXl DX,.2 s.OXcXc.2Xw 'XIX,XI.H.` 3 3XV.8XV ~.kX*X*.5X*.k.k.H.^Xd.kXd.b.X.b.o.^.b.o.b.bXzXz.b.o.cXgXg.cXgXk.UXgXgXgXg.VXg.o.V.o.c.V.o.c.oXg.V.V.oXg.V.o.o.oXg.o.b.o.b.^.^Xz.bXz.^.^Xz.^ eXt e.r eXt.z.k.r ~ e.r e.r.r eXt.^ l N.bXzXzXz.bXz NXz.b.^XzXz.^ _.oXg.o.VXg.V.o.o.V.c.oXg.oXg.o.V.b.V.o.V.b N.^.^Xt ~.r.r ~ ~.r e.^XzXz.b.bXj.bXzXxXz e e.r.r.r ~.8 ~.8 RXcXq.j.M a R a RX1 B.* < U.YX4X>.{ %.).M R.*.*.a.* aX- a R a t t.d /Xi.@XiXv.) G t.* B.MXD uXe 0 0.q 9 '.D.* D.].Z.D.0 gX1.`.8 ~.r.r.rXt.r.r.rX*.k.uX3XX q )X3XX :Xc.wXG 2.jXw.a.a <XsXn vX+XDXI ~XtXz.b.o.o.bXz _ _.o _ _.V.o _.b.oXgXg _ _Xg.c.o _Xg.U.cXg.oXg. .UXg l.c.cXg.c.U.c.cXg.c.cXg.cXg.c.c.o.k.^.^.kXj.k.^.k.X eXt.^.X.bXz.b.b.o.^XzXz.b.^.b.b.bXzXzXzXz.bXzXz.b.bXzXg.b.b.bXzXz.bXzXzXzXz _ _.bXz _.bXz.b.^XjXt ~XjXz.^ _.c lXzXzXzXz _Xz.V.V.V.V.V.VXg.V.c.c.c.c.c.c.c.c.V.c.c.c.V.#.V.V.c.U.c.c.c.o.b.^ e e e e.r.^.o.o.bXj.r e.r e.b.^.o.U.o.c.oXz.bXzXt.r.`.8X3.}.Y.F.m U h.}.e a aXI.} cXD.a aX,XI.e", +".r e eXj.^ NXz.^Xk.o.bXzXz NXzXz.b N.b NXzXzXz.b.b.b.kXz.rXjXt e.r N N.^Xg.bXz.^XzXzXz.^.b.^ N.bXz.b.b.b.^ NXt.k.^Xj.XXk.zXxXo.k xXpXLXs.EXG.@X4X+.1X%.Y x 1 x $ x : $ $ 3 # k.[XB.TXp v.W.E v U.W u.a.wXw C.=XvXb J.E o 9XP.w.D.eXKXJ c m T.,XI 3.%Xl.2., m.,XJ mX;XPX$XO mXVX1.`X-X-.`.`.8XIX1 FXV.r.rX*.^XtXt.r.rXtXtXj.o N.b N.b NXz.b.^.b.^.b.b.bXg.o.c.c.c.U.U.c.c.c.cXgXg.V.c.V.cXg.V.cXg.VXgXg.VXgXgXg.oXgXg.o.b.oXgXzXzXzXz.bXzXz.^.XXz.^.^ N.^.kXx./Xg.r.r.r.r.rXt.^.^.^Xg.^Xz.^Xz.^XzXzXz NXzXz.bXzXz.b _ _XzXz.oXg.VXg.o.c.oXgXgXg.V.o.VXg.o.o.o.o.^.^Xj e.r.r F F.r e.^.^ l lXz _Xz.^Xg.^Xj e e.r.u ~ F.8X1XIXK XrXe.* RX-XI B R R.a <.jX4.4.@ %Xb C R t t t t.}.* t t.M t UXF.s ^.@X= * C C C B 8 RXIXn.x =XmXC.q g.D B BX-Xa.n.0 gX1.8 ~.rXtXt e.rXtX*.r NX*X* N.K.5XX ) :.5 :Xl.s *.)Xq t <XsXe vXG.9XI 3.rXj.bXzXz.bXz.^Xz _.bXzXzXz _XzXzXz _XzXzXzXzXzXzXzXzXzXzXzXz.^.c.^.^XzXzXzXzXzXzXzXzXz _ _ _.b.b.b.o.o.kXz.^XjXj.kXt.^.X e.k.bXg.b.b.UXg.c.o l.U.U.o l.c.c.c.c.c.c.c.o.V.c.c.c.#Xg.c.o.o.oXg.o.o.b.o.b.bXzXz _.b.b N.^.z.^.^ e.bXzXz l.c.bXzXzXz _Xz.V.c.V.c.c.V.V.c.o.V.c.c.c.V.c.U.c.U.V.c.U.U.U.c.o.V.V.VXg.o.bXzXz e ~ e.^.o.cXz.^ e ~ e.r.r.b.^Xg.c.o.o.bXzXz.k.r.8XIXM ` .FXq.i U.M a a a a a R VXHX-X- kXI.e", +"Xt.r.r.rXjXzXz.^.b.o N.^Xz NXz N.^.^.^Xz N.^.^ eXt.kXzXkX@ N.k.^.^.oXg.XXg.UXgXk.oXgXk lXgXg l.z.XX .X.R.&Xk.X.&.z ( A.IX@.R QXl =.+.MXs vXnXnXn.p.1.Y # $.i.M.MXaXKXlXlXc h., k [ kXh.1 W.+.jXrX2.W.M.M x.* CXF.)X6X> HXm.q.w.wXD.]Xc.'.,Xl.].a R.9.e : $.w ' ' ' g TXUXoX,.~.`.`.`.8.8.8.` ~.8 ~XVXtX*.rX9 ~.kXt e.r e.X.^Xz.b.^.b.^.b.^ _Xz.bXzXz.b.c.c.c.c.V.c.#Xg.c.c.cXg.c.V.c.V.c.c.VXg.V.o.VXg.c.c.c.c.oXgXg.bXz.bXgXzXz.^XzXzXz.^XzXzXz.b N.^.^XjXgXjXt e.r e.r eXj.^.b.^XgXzXzXz.bXzXz.bXz NXz NXzXzXzXz.bXzXzXz.o.VXg.V.oXg.oXg.cXg.o.V.o.V _.V.o.oXzXz.kXt.r ~ ~ F ~ e.r.^.b.VXgXz.b.^XgXz.^Xj.r.rXt.u.8 ~ FX1.9X+.j 1 a a.aX, BX1 R t.M.Y.pX>.4 -XF._XG h x.iXD.Y C., tXp.M J.@ 0.C 0.=.) C t a.eX,Xl k.-Xe 2.=.!.!Xa.0XD.nX5.w.n.0.0.`.8.8XtXt.r.r.rXtXj ~ NX*.rX* ~.rX*.r.8 cXVXl.).) u C t tXs vXaXmXlX1.8Xt.^XzXzXz.b.bXz _Xg _XzXzXzXzXzXzXzXzXzXz.bXzXzXzXz _Xz.b.bXzXz.cXz.bXzXz _XzXz _.bXzXz.b.bXzXz _Xz.bXz.^ NXjXj.r e.rXt.^.r e.r e e.b.^Xz.b.bXz.^XzXzXzXzXzXzXzXzXzXz _.b _ _XgXg.o _.V _.o.V.V.o.o.V.c.c.cXg.c.cXg.c.b.b.I e.cXkXg.c.# l.oXg _.oXgXg.c.c.c.U.c.c.c.c.c.V.V.c.c.c.V.c.V.V.o.V.#.V.c _.V.c.c.cXg.c.o.o.b NXzXz.b.oXg.b.b.k e.r eXj.^.b.cXg.o.bXz.^.^ e ~.8XD >Xq.m.i x t a a.e.e a aX-.a 3XD.eXc 3.e", +".rX*Xj.k.k.^.XXgXgXkXgXgXxXgXgXkXg.b.b.XXgXgXz.k.oXz N N l N.^.^.k.o.b.oXzXkXz.o.^Xz.b NXz.^ N.b l Z.&X@.&.R.&.R.f.(.&.( , f 5 5 n o.).NXG vXLXnXrXwXB 1 h $X, tX,XO TXc $ $ `., k.,.Y.gXH.1X+Xp._.d.).MXD u.9 C *.s.v 2 OXC s.wX,.*X-.e.e.e.eX-.e.aX- B B B.wX5.wXP g R B.`.`.`.`.8.8 ~ ~.8.8.8X*.r.r.r.r.X.8 e.rXt.r.r.b.^XzXzXz.b.bXz.bXz.^XzXzXz.V.cXg.VXg.cXg.U.oXgXg.V.V.c.c.cXg.cXgXgXgXg.VXgXgXgXgXg.o.o.o _.bXz.bXg.bXz.bXzXz.b.b.bXzXjXj.r e e.r ~Xz.r.r.r.r ~ eXt.^Xj.^Xg.^XzXzXzXz.b.b NXzXz.bXz.b.^Xz.bXzXzXz.oXg.o.oXgXgXg.o.cXg.V.o _.c.o.V.oXgXz N.^Xj.r ~ F.8 F.r.r.^Xz.^Xz.bXz.^Xg.^XzXj ~.r.rXt F ~.8X1 $.YXnXG.MX- 3XD RXD R t <XpXf H.C { -XG.W.w.WXGXeX+._Xn t._Xe z.T.@ 0.v.= C C a RXD ).-XK.WXe.= 2XC.!.n ' '.ZXa.0.] g.D.`.8 ~Xt.r.rXtXj e.r.r N.r.rXjXt.^ ~X*.r.rXVXl.W / * t u pXLXL.n TXI.8 ~Xj.b NXz.^.bXz.b _.c.V.b _XzXzXz _XzXz.bXzXzXzXzXzXz _.b.bXzXz.bXgXzXzXz.bXz.bXzXzXzXzXzXzXz _Xz.bXzXz.b.b.bXjXj.r.r.r.^Xk.X.k e ~ e.^.bXzXzXz.b.b.bXzXzXz _Xz _ _Xz _XzXz.bXz.c _ _XzXzXzXzXz.bXzXz.bXzXzXzXzXz.bXz.^ ~ e.r.r N.b.b.o.I l _.o.b.b.V.c.U.U.U.#.U.U.U.#.#.#.U.#.#.#.#.#.#.U.U.U.6.#.U _.V.U.c.c.VXg.o.o.o.o.b.o.oXg.c NXz.^.r.r e.r.r.^Xg.o.oXz.^.^ e F.`XI U .m.m E U <XD.eX-.e.e.e a.eX-.a.a.uX- a.e", +"Xt.^ N.^Xj.k.^.X N l N.^.^.^XjXjXj.r ~.r e.r.r.r e ~XjXz F.k.^XjXz.b.bXz.^XgXzXz.b.b.bXz.b.b.b.^Xk.^XkXkX9.X.k.^.X.o.A.zXkXkX9X-.wXp *.W v vXG [ z.-XM x x h h y.* TX,.D.e.'X,Xl.-Xc.- 1Xp.[.pXn pXsXsXsXw *Xp.N.d / / OXmXG.wXD R B.a B RX- B aX1 R.* R.Z.wXlXU.]X1X1X1X-.~.`.` ~.8.8.8 ~.rX* ~Xt.rXt.r.kXjXt.rXj e e.^Xz.bXzXzXz.^Xz.^.bXz _.b.b _.V.VXg.c.cXg.#.o.c.c.c.V.c.c.c.V.c.c.VXg.VXg.o.o.o.b.b.b _.b.bXzXz.oXgXzXz NXz.^XzXd.^ e.r.r eXtXj.rXt ~.r.r.r e.r e.r eXt.^Xg.^XzXzXzXzXzXzXzXzXzXz.bXzXzXzXzXzXzXz.b _.o.b.c.oXg.o.oXgXg.c.V.V.oXg.o.oXzXz.^.^.r F.8 F ~.r l.zXz.oXzXz.bXz l.^Xz.^ e.r.r.r.r.` FX1X,X+XG 1.M tX, 3 RXD R a < vXn.4.@X6.v.j p.*X+.).. 2 2.s U.)X=.@ M.B /.N.w t <.ZX5 `XJX5.}._Xe.= O oXP.nXa.0 D g.] 'X1 B.` ~ ~Xt.r.r e ~ eXj.r.bXt.k.rXt ~Xj.r.kXt.r.Z v.N.).) 2.W.).W 9Xa.`.HXt.^Xz.b.bXzXz _.oXg.c.V.o.o.b _XzXzXzXz _XzXz _ _.b.b.V.o.VXzXz.oXg.b.bXzXz _XzXzXzXzXzXz _XzXzXz.bXzXzXz.b.b.^ eXt e.r.o qXk.^ eXj e.r eXzXz.^XzXzXz _.bXz _XzXzXzXzXz _Xz.bXz.c.bXzXzXzXzXzXz _Xz.bXz _.bXz _.b.bXzXjXjXj.r eXzXz.b.o.#.oXz _Xz _.b.c.o.VXg.VXg.V.VXg.V.V.V.c.c.V.V.c.c.cXg.V.#.U.c _.V.U.U.U.U.#.U.U.c.U.#.I.U.c.U.UXg.^.^Xj.^.k e.^.o NXz N.^Xt F F.`.` h.F E E.d <.* R.u.e a.`.e aX-.e.a.e 3.a.e 3", +".r.rXt.r.rXtXt.r ~ N e.rXj e ~ e.r eXj.^.kXjXj.^.k.^.b.fXg e.^Xz.b.^XzXz.^.c.bXzXzXzXzXzXzXz.b.bXz.X N.z.fXgXtXt.b.X.b.XXgXk NXV $Xp.WXe o.Y M n.,.9 : x h $.MXl c D.,Xl.D T.] T :XcXH .lXMXBXp.p y v.=Xe.YXw u u.NXs.N.sXmXGXeXD R BX- B.e R.e.eXD 8 R.Z.w 'XU T RX1.`.~.`.`.`.`.8 F.8.rX*.r.r.rXtXd.rXd NXt.r e ~Xt eXz.b.bXzXz.^Xz.bXz.bXzXzXzXzXzXg.cXg.o.VXg.#.oXg.V.cXg.c.V.V.V.VXg.V.cXg.b _.^XzXzXzXzXzXz.^XzXz.X.oXzXzXzXzXzXz e e e.r e.r e.r.r.r e.r e.r.r.r.r.r e e.bXg.^XzXzXzXz.bXz.bXz NXz.^XzXzXzXzXz.^XzXzXzXzXz.c.oXg.o.o.cXg.o.o.V.o.V.V.oXzXz.^.^.r ~.8 ~ ~Xt.b.t.oXz.VXjXz.bXg.^Xz.^ eXj.r ~Xd.` F.HXD.-XnXG.M a cXD RXD R t <XGXn SX6.CX6X> yX%.; M M M S.;X: H.y ^.@Xv.) 8Xs.* $., x.u RX. =.j.....v.qXm.nXP g T c BX1X1XI.8.8.rXt.rXt.r eXjXj.r N.r.^.k.^XzXjXj ~.k.r.k s 2Xs.N.W v v b.0X1.H F.^.b.^.b.o.bXzXzXgXg.c.VXg.V.V _ _Xz _XzXzXzXzXzXz.V.c.o.V.c.b.b.V.bXzXzXzXzXzXzXz _XzXzXzXzXzXzXzXzXzXz.bXz.^.b e eXt.r.^.k e ~ ~.r.r e e.^Xz ~.bXzXzXzXzXzXz _Xz _Xz _.bXzXzXz.UXzXz.bXzXz.bXz.bXz.bXzXzXz _ _XzXz.^Xt e.rXj eXjXzXz.c.#XgXzXzXz.bXz.c.c.c.c.V.c.c.c.V.c.c.c.c.V.c.c.V.o.V.c.c.UXg _ _Xz.o.V.o.V.V.c.oXzXz _.o.oXg.cXz N eXtXtXjXj.r.^Xk.X.bXg N.^ ~Xt c 3 ._Xq.m u tX-.`.a.8.e aX-.e.e a.eX- #.e.e a", +".r.r.r.r.r.r.r.r.r.^.k.rXt.^.^.^.^.^.b N.bXzXzXz N.b.b.zXjXj.^.^.^ _.^.b.^Xg.b.b.b.^ _XzXz.oXzXzXzXz.oXg.b.^ eXj N.b.b.o.cXk.b.r hXL.N.s.s.j M.Y k kXl.- mXl x x.a.} a aX-.e.eXlXDX,X,X, h h.Y x y.[XrXp = y U t CXs.N.NXL.EXGXLXJ R R.eX, 3XD c xX1XD.D.w.9Xc mXI.`X-X-.`.`.`.` F F.8 ~ ~.rXtXt.rXt.r.r.r.kXdXt eXj.^.^XzXzXz.b.bXzXz.bXzXzXz.b _XzXz _ _.V.c.VXg.#.V.o.c.c.V.cXg.c.c.cXg.VXg.o.bXz.bXz.^XzXzXzXzXzXz.bXz l.^XzXzXzXzXd e e.r e.r e.r.r eXt e.r e ~ e e e.r e.^.b.bXz.^XzXz.bXzXz NXzXzXzXzXz.^XzXz.^XzXzXzXzXzXz _Xg.o.bXg.c.V.V.V.V.V.o.bXz.^.^Xz e.r F ~ F ~Xt.^ _XzXzXzXzXzXzXgXz.^XzXjXt.r.r.r F.8X1X,XKXGXG < RX,X1.a.Z.M t UXnXn SXi.CXiX6._XnXn ^ HXf.@.@Xi..X6 ^ ^ * * C.M $XKXB aXI R.Z y vXn 0.@ &XmXPX;.' :X1XIXIX1.`XV.`.rXt eXt eXj.^.b.^.o N.b.b.bXz.^.^XjXt.rXVX5 sXLXe v 9 s $X1X1 F eXz.bXz.b.o.b.bXg.c.VXg.c.oXgXg.o.bXz _XzXzXzXz.V.V.V.V.c.V.VXg.VXgXz _XzXzXzXzXz _XzXzXzXz _Xz.bXz.bXz _ _Xz.bXz e e e.r N.rXt ~Xj ~ e.r e.^ e e.^XzXzXz.bXzXzXzXzXzXzXzXz _Xz.bXgXz _XzXzXzXz _Xz _Xz.b _XzXzXz.b.b.^ e e.r ~Xj.^.b.b.U.U.c.oXzXz _ _.c.V.o.c.c.V.o.c.c.V.c.V.c.c.V.c.c.VXg.V.#Xg.b _XzXz _.V.c.V.c.o.c.V.oXzXg.c.cXg.b e e.r e ~Xt.rXj.^XzXj.r F.` F.`.`.uXB.i E U t t.~X-.8.aX-.a.`X1 a.a 3Xl c.e 3XI", +".r.r.r.r.r.rXt.r.rXj N.r eXtXt.^.^.^XzXz.^.^XjXjXj.^.^.bXj e ~ e e.^.bXzXz.b.o.^.b.b.b.^ _.^ _Xz.b.b.^Xj.r.r e.^Xz.bXz.bXgXk.X.r 3XG.).W 0.@ [ n |.SXHXc n nXKX3.i a 3.a a R.*.e `XJ : ).Y., k.,Xw =XHXh.TX0.)XG &XK 8.D v oXG =.w g : D 1 DXc TXHXlX. sX;XOXw '.a.`.`.`.`.`.`.`.8.8 ~ ~ ~.rXt.r.rXt.r.r.r.^ eXtXj.^XzXz.b.bXzXzXz.bXzXzXzXzXzXzXzXz _Xz _.o.o.cXg.#.c.c.c.c.cXg.VXgXg.VXg.c.V.bXzXzXzXzXzXzXzXz.^XzXzXzXz l.^Xz.^XzXzXj ~ e.r.r.r.r.rXt.r ~.r.r.r.r.r.r.rXt.^.^ N.o.b.^XzXz.bXzXzXzXzXz.b.^XzXzXzXzXzXzXzXzXzXzXzXg.oXg.oXg.cXgXg _ _XzXzXzXzXzXzXj ~.r.` F F.rXj.^XzXzXzXzXzXzXzXgXzXzXz.^.r e.r.r F F.8XD.Y 1Xq 8 t hX,.M.Z R a <XpX>.4X6 wX6 2 pXbXb ^.vX=XiXf.@Xf ^ 0Xi * u a R.,XHXl R.wXlXsXLX4X>.; ^X0.OXP m.|.2 D TXJ )Xx 5 )./.k.r ~Xt.^.b.b N.c N.b.b.b.bXzXzXzXjXj.r.8XI.Z '.n R.e.a.8 ~ ~XdXz.b.b.b.cXg.o.cXgXgXg.c.V.V.V.V.b _Xz.b.o.b.V.U.U.#.U.c.#Xg.VXg.#Xz.b _XzXzXzXz.bXzXzXzXzXzXzXzXzXzXz _XzXzXz.b.^Xj ~Xd.^.r.rXj.r e ~ e ~ e.r e.b.b.^.b _Xz _XzXz _XzXzXz.bXz.o.VXz.b _.b _XzXzXz.bXzXzXz _XzXzXz.^Xg.k.rXj.rXtXjXz.b.UXg.c.oXzXz.b _Xg.V.c.cXg.V.c.V.c.c.V.c.c.c.c.c.c.V.cXg.#.o _.bXzXzXz.cXgXg.c.o.c.o.V _ _ _Xg.oXj e.r.rXt ~Xt.r NXtXj ~.r.` F.`.` aXX 1X, E t.e.e.~.~ a a.aX-.e.eX-.e aX-X- a.~ a", +".r.r.r.r.r.r.r.r.r.r N.r.r.r e eXj.^Xz.^XjXj e.r e NXz N.^ e e e.rXz.^.b.^.b.c.bXzXz.b.bXz.bXzXz.b.^XzXj.r e.rXj.b.bXzXzXg l.o.kX-Xq v 2 2Xn n.- XJX, R.wXDX, hX, #.} R t.~X-X-Xl 3XM #.5 # 1 x.5X3 XBX%...N.NXK.MXs.N.n =Xr =XwXyXU T hXl `XlXK TX; gXH gXUXI.`.`X-.`.`.`.8.8.H.H.r.r.rXt.r.r e.r.rXd.rXdXdXj.^.b NXz.bXzXzXzXzXz.bXz.b.bXz.bXz.bXz _Xz _ _Xg.o.#Xg.VXg.V.V.V.o.V.c.VXgXg.oXz _Xz.bXzXzXzXz.^XzXz.^.bXz l.^XzXzXzXzXd.r e.r.r.r e.rXt.XXg N e.r.r.r.r e.^.^ NXz.bXzXz NXz.bXzXzXzXzXzXzXz.b.^XzXzXz.^XzXzXzXzXz _.oXg.oXgXgXg _XzXzXzXzXj.^.^Xj e.r F F F ~Xt.^XzXzXzXzXzXzXzXzXgXzXzXz.^ e.r.r.r F F.8XI.YXn 1 U tX, h RX, t t.WX+.E.;X6X6.C.B.4.s w.@XiX=.v 0X6 0X6 0Xn.W u.a h.aXl < 3.w.w y.).@ S.x.x.O KX; : TXJ I V.|XX IXx.R.&.r e.^Xz N.b.b.bXkXz.b.b.b.b.b.bXz.^Xj.r.r.`X-.` RX1XI.8.8.r eXd.^.b _.b.U.c.cXg.VXg.c.o.c.c.c.c.V.VXg.V.o.V.c. iXu iXu i.c.V.V.I _.oXz _Xz _Xz _ _XzXz _Xz _Xz _Xz _ _Xz.b.^Xz.b.b.k eXdXd e ~.r ~.^.rXt e.rXjXz.^Xz.^Xz.bXzXz _Xz _XzXz _Xz.c.oXzXz.bXzXz.bXz.bXz _XzXzXzXzXz.o.b.z.6 N.r.rXjXz.b _.c _XgXg _.b.b _.cXg.c.V.c.c.V.o.c.c.c.V.c.c.c.c.cXg.c.c.UXz _XzXzXz _.VXg.V.c.V.c.VXg.VXzXz.o.oXj e e.r e ~.rXtXgXt.r F ~ F.8.`X-X9 ` $X, <.*.e.e.eX-.e.e a 3 R R.~ 3.~ 3 a.e.e.e", +".r.r.r.r.rXt.r.r.r.r.bXt e.r.r.r e.^.b.^ e.r e.r.rXj.k.^.^ e.k F e.^.b.^ N.^XgXj.b.^.b.bXz.b.bXz.b.^Xj e ~ e.r.bXz.b.b.b.c l.o.k.` s v /.. 0X%XcXB :XDX,XeXe $XI h.M.a $ a a a.~ aX-X- a a a cX-.~.}.l.i.@.s.N C.a.*.Z.q 2 &.j.[.'.w $ 8XI.a.eX-.* B.Z x.nXU TX-X-.`X-.`.`.`.8 ~.r.rXt.rXt.r.rXt.rXt.r.r.rXdXo.^ NXz NXz.bXzXzXz.bXz.bXzXzXzXzXzXzXz.bXzXzXz.b.o.V.#.c.VXg.VXg.V.V.cXg.o.o.V.b.^Xz NXzXzXzXzXzXz.^XzXzXzXz l.^XzXzXzXz e e.r.r eXd ~ ~.r.b q.z.r.r e.r.r e.k NXz N.b N.^XzXzXzXz NXzXzXz.bXzXzXzXzXzXzXzXzXzXzXzXz.o.oXg.oXg.o _XzXzXzXzXz.^ e.r e ~.r F F.r ~ eXzXzXzXzXzXzXzXz.b.cXjXzXz.^Xj.r.r e F F.8X1.9.9Xp._ t h x.* $ t a UX+X> S 0Xf ^Xf S r.+.; MXC HX>.; M H &.j.j.9 : TXc a a.a t.9 b.s r.+X>.x W.OXU.~.u.`.`X*.u.`.8 ~.`.kXt ~.r.b.bXz.b.o.cXzXzXz _XzXz.b.bXzXj.rX*.8.8.`.`.8 ~ ~.r.rXjXdXz.b.b.b.#.cXgXg.V.V.V.V.V.cXg.V.V.VXg.c.c.V.c.U.c.U.c.c.UXg.c.c.#.o.cXzXzXzXzXzXzXz _XzXzXzXz.bXz _Xz.b _Xz.b.bXzXzXd.^Xd ~.rXt eXt ~ e FXjXj.b.^.bXzXz.^XzXzXzXzXzXzXz.bXzXz.UXzXzXzXzXzXz _XzXzXzXzXzXz _XzXzXz.^.IXg e.rXjXj.^.^.b.cXz.VXg _Xz _.oXg.V.V.V.V.c.c.V.c.V.o.c.V.c.c.cXg.c.o.U.oXz.bXz.bXz.oXg.c.V.c.V.c.VXg.o.b.b _.o.bXj e.r.r e.r.k l.r ~.` F.`.`.`X- ` x hXD.e R BX-.e a.eX- RX- BXVXD.e a.` aX-.e a", +".r.r.r.rXt.rXt.rXt.r.^.k.r eXt e.rXj.^Xj.r.r.rXtXjXt.r.r ~.rXjXt.r.^.^ N N.^Xk.b N l.^.#.^XzXzXzXz.b.rXj.I qXjXz.b.b.b _.c.U.o.kXVXG v * 0...j.g xXM h.MX,XlX,X,X, 8 R RX,.eX- a a.~.eX- aX-.a #.8 a .lX4.).) C.M t H o v.E.Y.-Xw s.wX, a.aXI.a 3XD.w ' T ! g R.`X-.`.`.`.8.8.r.r.rXt.r.r.r.rXt.r e.r.r.rXdXz.^ N.bXzXz.b.bXz _Xz.bXzXzXzXzXzXzXzXz.bXzXzXz.b.b.c.U.UXgXg.V.c.c.V _ _ _.o.b _XzXzXz.^ NXz.bXzXzXzXzXzXzXz lXzXzXz.^XzXj eXt.rXt ~Xj.r e.X.z.b.r.r.r.r e.r e eXjXz.bXzXzXzXz.bXzXzXz.bXz.bXz.b.^XzXz.^Xz.^XzXzXz _Xg.oXg.b.o.b.^XzXzXz.^.^Xj e.r e e F.r F.o N.bXzXzXzXzXzXzXz.^.bXgXzXzXz.^Xj.r e ~ ~ F.`X1 y.j.Y._ xXc.w.9.9 $XGX+X> SXi.@X6Xf.@ H b.v O 2.M 2.WXe.)XeXeX, RXl `X-XD <XJ $.MXG 2.+.LX: z =Xh.2 c ) c.K.KX*.5.`XV FXt e e.^ N.b.bXzXg.o.b.bXz _.b _.b.bXz.k.rXj.r.8 F.8.`.8.k.rXt.r.kXz.bXz _.#.cXg.c.VXg.V.c.V.V.VXg.c.c.c.VXg.V.V.c.V.c.c.c.V.V.c.U.U.V.c.bXzXzXzXz _XzXzXzXzXz _Xz _Xz.bXz _Xz.b _.^ _XoXz.rXd e ~Xj.r.zXk.r ~Xj.^.^.b.^.^.o.bXz.bXzXz _Xz.bXzXz.UXz.bXzXzXzXzXzXzXzXzXzXz _Xz _.bXz.^ ~.^.rXt.r.r.bXz _.VXzXg.VXzXz _ _.V.c.c.c.V.V.c.c.VXg.V.c.c.c.V.c.cXg.b.cXz e.^Xz.b.b.o.V.c.c.c.c.V.V.VXg.V.bXz.b.o.^Xj.r e.r.r.k.X.r F F.8.`X-.8.a.l.[ ` hX-XI.eXIX-.e.e.e.e a.e.- I.e R R.eX-.e.e", +".r e.r e.r.r.r.r.r.rXt NXt.^Xj.^Xt e e.r eXtXt.r ~.r.kXtXt N.8XtXj.X.XXx NXj.K N.^./././.6.^.b.b.^Xj e.^.XXg.b.bXz.b _.bXg.UXg N.HXl v.N.s..X>XwXBXBXD.}.WX,X,X5.w.M gXVXD aX-.aX5 # $ R RX-.a 3.K # #.F.s.).N C.*.a p G 2X+XBXKXw 9.wXD a.eX-X- B 8.Z ' T.]XU B.`.`.`.`.`.8 ~.r.rXt.rXt e.r.rXtXt.r eXd.r.rXoXj N.b.^.b _XzXzXz _XzXzXz.bXzXz.bXzXzXzXz.b.bXzXz.c l.U.V.V.o.o.V _XzXzXzXzXz.^ _ NXzXzXzXzXz.^Xz.^.bXzXzXz l.^XzXzXzXzXjXt e.r.r.r.r.r ~ F eXj.r.r.r.r.r.r.r.rXt.^.b N.^Xz.^.bXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXz.o.V _.b.^.bXzXzXz.^XzXzXj e.r.r ~ e.r ~XtXg.#.cXzXzXzXzXzXzXz.b.b.oXzXzXzXzXj.r.r e ~ F.8X1 x.- W.j.[.-XHXc.9.9 1 kXrX> M.v.@.@.@.@.v.v.= C.M t.* a u.* a.e.aX1XDXIXD.* a.e.9.W o O.y.TX2 M.+X;X..2XJXJ.% D ) 5.r.` ~ ~.rXt.^.bXz.b.bXg _.b.bXz _ _Xz.b.b N.^Xt ~.r F.` ~ ~ ~.rXtXt e.^.bXz _.o.I.c _.c.c.c.c.V.c.c.c.c.c.c.c.c.c.c.c.c.V.c.V.V.c.V.V.U.c.c.V _Xz _XzXzXzXz _XzXzXzXzXz.bXz _XzXz.b.b.^.b.^ FXo.rXd F.rXj.IXg.^XjXt ~.k.X.^.b.^.zXzXzXzXzXz _ _ _Xz.b.cXzXzXzXz.^Xz.oXzXz _.^XzXzXzXz _.^Xj.^.rXtXtXtXz.^.^.c _XzXgXg _XzXzXzXz _ _.o.c.c.c.V.V.V.V.c.V.cXgXg.V _Xz.o e e.^.b.b.oXg.c.c.c.c.c.o _.o.VXg _Xz.oXg.bXj.r ~ e.rXd.k.r F.8.`.8.` 3.a [.[.Y.1XK $XJ., ` : D :Xl.uX-X..G.e 3X-.e.eX-.e", +".r.r.r.r.r.r.r.r.rXjXt.o.kXz.^.^ e e ~.r.rXt.r.r.XXxXx.XX* qXx qX9 ).f.$./.r.rXt.8Xk.$.UXk.b.bXz.bXj.rXt e.k.b.^Xz.bXz.bXg.UXg.bX1.DXL pXbXn.j WXKXc h.a hXD RX, $XI.]XK.,XJ : R kXU sXJ.-XlXwX. c h .. /.N G u.N *X= v.[ X3Xw s.w.Z t.a a aXD RXD.wX5XP.]XDX1.`.`.`.8 ~.rXtXt.rXtXtXtXt.rXt.rXtXtXt.r.r NXt.bXz.bXz.b.bXzXzXzXzXzXzXzXz.bXzXz.bXz.bXz.bXz.b.o.c.UXg.cXg.V _XzXzXzXzXz.^Xz NXzXzXzXz.bXz.bXzXzXz.^Xz.^ lXzXzXzXzXz.^XjXd e.r e.r.r eXt.r ~ e.r.r.r e.r.r.r e.kXz.^Xz.^Xz NXzXz.^XzXz NXzXzXzXz.^Xz.^XzXz.^XzXz _XzXz.^XzXz.b.^XzXz.^Xj e ~.r.r.r eXj.^Xj.c _XzXzXzXzXzXzXzXz.bXgXzXzXz.^.^Xj e ~ e F FXIX,X+XpXp.M.M $ tXD.M tXGXr & M 0XfX6Xi.sX= G 8 C.e aX- a a a aX-X1 R.` RX1.3., $.aX,Xe v.xX2.xXrX+XK $XI.u 3XVX1.8 3.8.H F.rXtXj.b.b.b.bXzXk.b.b _Xz _ _.b.b.b.b.^X*XtXV.8 F F.` F.r.r.r.rXjXzXz _.o.#.c.oXg.c.VXg.c.VXg.c.V.V.V.o.V.o.V.o.c.V.c.V.V.U.V.o.#.c.V.bXzXzXzXzXz _XzXz _XzXz _Xz _Xz.bXz.bXzXz.b.z A.t l.rXt.rXt ~ e e ~ ~XjXt.^Xt eXj eX@.^.bXzXzXzXz _XzXz.V.oXzXz _ _.bXz. Xz.b.bXzXz.oXzXzXz.^Xj e N N N ~ NXz N.UXzXzXg.V.bXzXzXz _Xz _ _.o.V.c.o.c.V.cXg.c.cXg.V.b.^.^.^ ~ eXz N _.o.c.V.c.c.VXg _Xz _ _.V.o.oXgXg.b.^XjXt.r.r.^.r ~ F F.8.`.`.r.aXB.m hX,.} $.a # h.~.uXlXo c | K.KX,.~ a R.e.e", +" ~ e.r.r.r.r.rXtXt.^.kXx N.^Xt e ~.r.r e.r.r.rXt N.$ q 5X9.f.&.$.k N q ).z 3 ~.rXtX9.z.bXk.^.&Xg.z AXgXg.I q.z.I.^.bXz.b.o.cXg N.H.Z.s.W %XiXn n.- 1.iX, hXD U.ZXDX1Xl x DXl.ZXDX,X,X,.wXK hXDXMX- # #XBXe.).N.NXs.).).m.[Xc.lX3XU.'.w $ R.a.a R aX- 8.D.'.'Xw.DX-X-X-.`.8 ~.rXtXtX*XtX*XtXt.r.r.r e.r.r e.r N e NXzXzXz _XzXzXzXzXzXzXzXzXzXzXzXzXz.bXzXz.bXz _ N.o.c.o.V.o.V _Xz _XzXzXzXz.bXzXzXz.^Xz.bXzXz.^XzXzXzXz.^ lXzXzXz.^Xz.^ NXz.^Xd.r.r.r.r.r.r.r.r.rXt.r.r ~Xt e ~XjXz.^XzXzXzXz.^XzXzXzXzXzXzXzXzXzXzXzXz.^XzXzXzXzXz.^XzXz.bXzXzXzXzXzXj e.r.r e.r.^Xj.z.bXzXzXzXzXzXzXzXzXz.^Xz.X.oXzXzXzXz.^Xj.r.r e F FXD R.9.YXqXpXn.Y <.a t W H S ^X= /.N /.= G C R a.~ a.e aX-.~X-.`.~X- R R.'XwXD a.M v.sX> H.T =XZ =X..kXJ (X3.r I ) q q 5 ~Xj.k.bXz.b.b.o.U.b.b _Xz.b.b.o.b.b.b N.k.r.8.8 ~.` ~ F F F.r.rXtXjXz.b.o.U.c.c.c.VXg.c.V.V.V.V.c.c.c.V.c.c.V.V.c _.c.V _.V.V.V.U.V _ _XzXzXzXzXzXzXz _XzXzXzXz _XzXzXzXzXz.bXj.I Q eXx jXd.r.r e.rXj.rXtXj.r e.rXtX& qX@X Xj.bXz.bXz _XzXz.b.c.bXz.b.z.Q.Q.UX Xz.bXzXz _XzXzXz.bXz e.o N N.(Xk.^.bXzXgXzXz.V.oXzXzXz.b.o. X&.6.b.o.c.oXg.c.V.c.VXg.c.oXzXj.^ e e e.bXzXz.o.cXg.cXg.o.VXzXzXzXzXg.cXg.VXg.o.b.bXj eXt N.r.r.8 F F.~.`.} aXp._ E.M aX-.a a R.e.~.`.~Xl.3 hXJ.3.e.e.e a.~.e", +".r.r.r e.r.r e.rXt.^XjXg NXt.r.r.r.r.r.r.r.r.r.r.r.r.rXtXj.k.kXt.r 3.rX*.KX*XV.KX-X9.A.A./.U.6.& i.f./.z.f.6.I.U.^.bXzXz.oXkXg.bXVXVXe.sXb..Xn.Y [X+XM h.iXD.DXDXG : c c $.ZXJ c.aX,X, c $ x $.Y .l.lXB xXe / 2.).s.W.jXB.iXXX3.>.!.9 $X,.aX-XDXI RXD.ZXl.'Xc.0 B.5X5XV.8X5 ~XtXV.^.k.rXt.u ).^.k.rXt.r.r.r.b.^.b.bXz _XzXz.bXzXz eXjXz _XzXz.bXz.b.bXzXzXz.bXzXz.b.c.^XzXzXzXzXzXzXzXzXzXzXzXzXzXz.bXzXzXz.bXzXz.^XzXzXz.c.bXzXzXz.^.b.^.^ N.^Xt e.r ~ e.r e.r.r.r.rXt.r.r e.r.r e e.^XzXzXzXzXzXzXzXzXzXzXzXzXzXzXz.^XzXz.^Xz.^XzXzXzXzXz.b.^.^Xz.^ e e ~ eXt.^.^Xz _.#XzXzXzXz _XzXzXzXzXzXz.b.oXzXzXz.^Xz.^ e.r.r F.8.`.8 $.9XnXGX4.xXp x u <Xp.[Xr H ^ /.N.NXD C t C.*.e a.eX-.e.` 3 #.~X- RXcXD.*.D.eX- h $ p ^.@.;.E.jXKX5 ) )XxXx )XXX9.5X9 N ~.rXz.b.I.I.I.UXu.b _XzXz _Xz _.b.b.b.b.^ ~ ~.8 F F F.8 F ~.r.r.r eXjXz.c.#.c.cXg.c.V.c.cXg.c.c.V.c.VXg.c.VXg.V.V.c.V.c.c.c.V.o. _ _Xz _Xz _.bXzXz.bXzXzXz _.^ _Xz.bXzXz.bXjXj.: l NXkX$.^Xt e.r e.r.rXj e.r ~Xj.7Xk ~ e.z.^XzXzXz _ _ _Xz.b.c.b.o.z _ 7.6.IX&XjXz.bXz _XzXz _Xz.b.r e.rXtXg.:.^.o.o.oXzXz.c _ _ _Xz.bXg.b.^ ZXu.o.^.b.b.o _.c.c.c.b.b e e.bXj.^.^Xz.bXz.cXg.c.cXg _ _XzXzXzXz.V.VXg.VXgXg.o.oXzXj.^XjXt ~ 3.`.`.`.X #XMX%.<Xe EX, U a a.~.e.~X-.eXIXVX- 3XKXI a a.~X-.e", +".r.r.r.r.r.r.r.r.r.r.r.^ N ~ e.r.r e.r.r.r e.r.rXt e.rXt eXt.r.r.r.rXxX9X3XX q V.kX* N N.X.^.bXz.^.b.b.^.oXk.b.b.b NXzXzXg lXg N ~Xl.d.s % ^X+ zXr.-X7 $ $XD.Z U c.ZXJXKX. cXl c DX3 :XcXc.9.-X. XM.[.[.j.E.EXGXnX<.[XH.,Xc.,.!.w ' #X- 3X,X- 8XDXD.ZXl.0Xm ! $ mXo T ) q I q./.f 5 I./ 5 I.$.RXtXt.r.k e.k.b.b.bXzXz _.b.b.^Xz.^XzXzXzXzXzXzXzXz.b.b.b.bXz.^Xz.b lXzXzXzXzXz _.o.V _ _.b.b.b.b.o.V.oXg.o.o.bXzXzXzXzXd l.bXz N.bXzXz.^.b.^.^ ~.rXt.r e.r.r.r.rXt.r.r.r.r.r e.r.r eXj.^XzXz.b NXz.bXzXzXzXzXzXzXzXzXz.^XzXz.^XzXzXdXzXz.b.bXz.bXzXz e.r.rXj.^Xz.VXzXj.oXz _ _XzXzXzXzXzXzXzXz.o _Xz.^XzXz.b.^.r e.r.8.8 F.`XIXK oX+ H.pXnX4.w <.pXr &X2 0.=.N 8.* R a.e R.*.e.~.e 3 3.8 c.e a tXJ s 8 8 C < x._ UXL O O O yXDX-.8.`.`.`.`.`.8 ~ ~ ~.`Xt.^Xz.U.#.#.U.6 _Xz _Xz _.b.b.b.b NXzXj ~ ~ F.8 F.8 ~ ~ ~.rXt eXtXjXjXg.c.c.c.c.V.cXg.c.VXg.VXgXg.c.c.c.V.V.V.VXgXg.V.cXg _.o.UXzXzXzXzXzXzXz.bXz _XzXz _Xz.oXz _.b _.bXz.b.X j.X.XXk.:Xt.r.r.r.r.r eXj.bXt e.r jXj.kXtXj.r.b.b.^XzXzXzXz.oXg.^.b N N.:.z.IXg.^Xg.^.^XzXz _Xz.^ N eXt.r.r q j.XXzXgXz _XzXg _Xz.bXz.b.b.bXg.b.:.z.X.&X&.#.VXzXz _.b.bXj.bXg.^XzXzXz _Xz.b.o.o.V.o _ _XzXz _.o.V.cXgXg.c.V.V.o.b.^.o.^Xt ~.8.8 F.~X9 `XHX% [ [.- x `.] :Xc 3.a 3 3X-.e aX- R.e.e.e a.eX-", +".r.r.r.r.r.r.r.rXt.r.r ~.b.rXt.r.r.r.r eXt.r.rXt.r.r.r.r.r.rXt.r.r.rXX.X q q.f.fXXXtXt.^.b.b.b.b.bXz.^Xz.U dXgXz.^.b.b.b.oXk.c.b ~X5 v 0..Xn H.[Xc.[.- x h.a.M RX,.M #XD 3XI 3X-X-.aX-.a.e t.} $XBX..- V.l :.YXBX7 VX<.[Xh.O.3 @XU =XOXc.,XJ 3 3.a RXD.w sXlXPX..5.5.8 : qX9 q.$XxXkXk.RX9 )X9X9Xk.rXt.r.r.r.k.o NXzXzXzXzXzXzXz.bXz.bXzXzXz.bXz.b.^.^.^.^XjXjXj.^.^ l.^.bXzXzXz _.oXg.cXg.cXg.VXgXg.o.V.o.o.b.bXzXzXzXzXzXg.b.bXzXz.^.^Xj.^XdXj e e e.r.rXj.r e.r.r.r.r e.r.r.r e e.rXj.^.b.^XzXz.^XzXzXzXzXzXzXzXzXz.^XzXz.^Xz.^XzXzXz.^Xz.bXzXzXj.b e e e.^.o.c.I.cXzXz _ _ _XzXzXzXzXzXzXzXz.o.XXzXzXz.^.bXj e.rXt ~ F.`.~.` $X+.EX2Xr.xX4XpX+ yXpX2X> 0 v C.* a R a R a.e B.eX1.8.e.eX-XDXG t.).s.N.N C.MXe U.W / 0 OXL mXI.8.8.8 ~.8 F.r.r 3.8.8 ~Xj.bXz.b.bXz.oXgXzXz.bXz _ _.b.b.bXzXjXt ~.r ~.r ~.r.r.r.r.r e.r eXt eXk.o.V.c.c.c.cXg.V.c.c.V.c.c.c.c.V.c.c.V.V.V.V.c.V.V _ _.V.bXzXzXzXzXzXzXz _.bXz.b.b.^Xz.o.o.oXzXz.b.bXz.tX&Xx Z.X.r e e e.rXj.^XzXjXj.rXj jXt.rXj.k.r.^.b.b _ _Xz.^.VXgXz.b.b l.:X@ d.^.bXzXz _.bXz _Xz.bXz.r.rXj.X.z.:.U.^.#.^XzXz.V.bXz _Xz.bXz.^Xz NX .:XgXx./Xz _ _ _.bXz.bXzXg.o.bXz.b.bXzXz _ _Xz _Xz _Xz _Xz.o.VXg.V.c.c.VXg.V.c.oXz l.^.r.8.`.8 ~.~X9 :.[XpXqXe h R.MX,Xl.K 3XI.eX-X-.~X-X-.aX-.e a.~.e.e", +".r.rXt.r.r e.r.rXt e.r.r NXt e ~.rXt.r.r.r.rXt.r.rXt.rXt.rXt e.rXtXtXj.rX*.^ N.kXgXtXj NXz.^.^Xz.b.b.b.b.U.$.o.bXz.b.b.b.o.U.c.b ~.DXG...s ^X< nXBXB hX,X, R R.aXD.aX,XD.a aXI.eX-.eX- aX-.eX. K.G.,XXXXXMXM #.l.l.l.l.- n.- yXKXK.' $X, h $X- RXD.a B.w.w.' g '.e.`.`.`.`Xt.r.r ~.rXj.k.rXt ~.r.r.rXt.r.r.r N.oXz.bXz.b.b.b.b.bXzXzXzXz.^Xz.^Xz.^Xj e e e e.r.r eXjXg.^Xz.^XzXzXzXz.o.VXg.cXgXg.V.o.o.bXzXzXzXzXz.bXz.bXzXg.o.b.^Xz.^ e.r eXt eXj ~ ~XkXk.z.rXj.r.r.r.r.r.r.r e.rXj.r.^Xz.bXzXzXzXzXz.^XzXzXzXz.^XzXzXzXz.^Xz.^XzXz.^Xz.^.bXz.^Xz.^.^Xj eXz.bXg.U.6. Xg.b _.o.VXz _XzXzXzXzXzXz.o.oXz.^XzXz.bXj e e.r ~.8.`.`X- t.w.j ..4X>Xn o.EX>X+.; WX0XLXG xXK.aXD.}XlX,XI c 3.~ R aX-.* = WXb.) / 2.sXeXn U.N / OXaXL `X-.8.8.8 ~.8.8 ~ 3X* ~ ~.r.^.b.bXz.b.b.oXg.o.b _ _Xz _.b.o.b.^ e.r e.r.rXt.rXtXt eXt.rXt.rXt e eXk _XgXg.cXg.V.c.c.c.cXg.c.c.c.c.c.c.cXg.c.c.c.c.V _Xz.o.oXzXz _XzXzXzXzXz.bXzXzXzXz.b.oXj./.#Xz _.^Xz.b.b l.Q.X e e.r.r.r e.^Xz.^.r.rXjXtXk.& q l eXtXz.^XzXz _ _ _.V.o.b.^.oX@ ZXz.X iXz.bXz _XzXz _Xz.^Xz e.r.r.& q.7.6.^.cXzXz _ _XzXz _.b.bXz.bXz.U.z.t ZXg.IXzXzXz.bXzXz.^Xz.c.^Xz.bXz _XzXzXzXzXz _Xz _Xz.b _.VXg.V.VXg.VXg.V.V.oXg.V.c.^Xt ~.8.`.`.`XM `Xp Xe E u aX-.e.e a.~.~.e.e.e.e.eXI.e.e a.e.e.}.u", +".r e.r.r.r.r.r.r ~Xt ~.r.^.k.r.r e.r.r.r.r.r.rXt eXt.r.r.r.r.rXt.r.r ~Xj.k N N.^Xk.^Xz.bXz.b.^Xz.^.^.b.^.b.bXz.b.^.bXzXz.oXk.c N ~XlXe ^ ^.@ WXH.h.-X,X,X, R hXI hXDX-.eX,X-XIX-.~ R.e.e a.a.eXM Y.eXIXM 3.} # #.l #XB.- y s.w.W 8 R R tX-X- a RX1XD 8.nXl sXK T.`.` F ~.8.r.k.rXt.rXtXtXtXtXtXt.rXt.rX*Xt.r.^.XXjXzXz.bXzXz.b.b.b.bXz N.b.b.^.^Xj e.r e.r.r.r e.r.r.oXt.^.^XzXzXz _.oXgXg.cXgXg.cXg.o _Xz.^XzXzXz.bXz NXz.X.oXz.^.b.^Xj.r e.r.r ~Xt ~ e.r.zXj ~.r e.r.r e.r.r.r.rXjXj.^Xz NXzXzXz.b.^Xz.bXzXzXzXzXzXz.^Xz.^.^XzXzXz.^.^XdXz.b.^XzXz e ~ e _Xg _.o.U.UXg.V.VXg.V.b _ _.b.bXzXzXz.o.XXz.^Xz.b.^ e e.r.r.r.8.`.`.`.a RXq.s 0 S w.@.@ o w v ^X0XpXw.9XJX3 VXl :X3XKX5.5.e.e B t C o *X=X6X>.4X> 0X>.. v 2.s b T 3.8.8 ~.8 ~.8.8Xt.r.r.`.8Xt N.bXz.b.b _.o.o.oXzXzXzXz.b.b.b.b.^ e.rXtXtXt.rXt.rXtXt.r e.r.r eXtXt.U.b.V.cXgXg.cXg.c.c.cXg.VXg.c.c.c.o.V.V.VXg.V.V.oXzXz.V _XzXzXz.bXzXzXzXzXzXzXz _Xz _.b.V.o.6.cXz _XzXzXzXzXgXgXj e e eXj.^.^Xj e e.o q qXt ~.r.r ~Xj.bXz.bXzXzXz _XgXz _.b.zXu.t.6.( l.^.^ _XzXz _Xz.^.oXz ~.o PXg NX .(Xk.bXzXzXz.b _XzXz _XzXz.b.^.zXg.^.:.(Xz.oXzXzXzXzXzXjXzXkXz.b.bXz _Xz _Xz _XzXzXzXz _Xz _Xg.c.V.VXg.V.o.V.V.oXg.c.b.bX*.8.8 ~.`X-X*Xc 1.i UXD t.e a.~.~.e.e a a a.e a.e.aX,X5 c.ZXI aXI", +".r.r.r.r.r.r.r.r.r e.r.rXt N.rXt.r.r.r.r.r.rXt.rXt.r.rXt.rXt.rXt.r.rXt.^Xz.^XzXzXg.bXzXzXz _.bXz.o.b.bXz.b.^.bXz.b.b.b.b.o.cXgXz.8X5XsXb.@.j nX#.S.lXD UXDXDXMXI.}.aX-XDX1X-.~ 3X-.eX-X-X-.e.a.eXl.,.eXl.u.~ aXMXM x.-XcXG.w.DXDX-X-XI RX-X-XDXIXD R 8.nXm TXcXl.~.`.` ~ F.rXt.r eXj.rXt.rXtXt.rX* ~Xt.r.rXt.r.b eXjXz.^Xz.^.b.^ NXz.^.^.^.^.^Xj e.r.r eXtXtXt eXt.r N e.r.^XzXz.b.b.V.VXgXg.V.o.o.o.o.bXzXzXzXzXzXzXzXzXz _XgXzXz.b.^ e.r eXt.r e.r.r.r.rXj ~Xt.r.r.r.r.r.r.r.r e.^.^ NXz.^.^.b NXz.bXzXzXzXzXzXzXz.^XzXzXzXz.^XzXzXzXz.^.b N.^.^Xj e eXd.b.#XgXg.o.o _.c.o.c.VXg.VXg.o.o.o.bXz.o _.^Xz NXzXj.r e.r.r.r ~.`.`.`X- t.w._.s ^.@ H wX> 0 vXe u 1 a R.a hX-.aX-.D.5X-X1.eXDXK.*.N.).v ^.@X>X>.4Xn ^.sXi b OXcX,.a.8.8XV.rXV.r.rX* ~ ~ ~.r.k.b.bXz _Xz.bXgXg _.o _ _ _.b.b.bXzXj.r e.r.r.rXt eXt.r eXt.rXt.r e e.kXg.b.c.c.c.VXg.o.oXg.o.o.o.oXgXgXg.V.c.c.c.V _XzXzXzXz.cXz _XzXzXz _XzXzXz.bXzXz.bXz.b _Xj.o.c _XzXzXzXz.oXz.o.VXz.^.^Xz.bXzXj e e ~ q.^.z eXt ~XtXt.^.b.^XzXz _Xz _.cXz _XzXz.^XzXjXz.bXz _XzXzXzXz _XzXzXj.^.oXkXkXg./.I.I.b.b _XzXz.bXzXz.b.b.b.b.z Z./.oXg.(.^.^Xz.o.o.^XjXj.oXgXz.b.bXz _ _XzXzXzXz _ _XzXz _.VXg.c.cXg.V.c.VXg.V.o.c.#Xz N.^.8.8.8.8.` R E U E U.e.aX1.e.eX-.e.~.e.e.eX- RXl #XK 1 :XMX5.9", +".r.r.r.r.r.r.r.r e.r.r.r ~.b.rXt.rXt.r.rXt.r.r.r.r.r.r.r.rXt.rXtXt.r eXjXz.^XzXz _.VXzXzXz.b.^.^XjXz.b.^Xz.b.bXzXz.b NXz.o l.o.^ F.ZXL.) ^X%.j.-.- h.MX,X1X,.K <.a.a 3.eX- 3XD.eXVX-.e.~.e.~ a.~XIXIX- 3XlX-.a c x `.jXK.w.W 8X- a.~.aX- R R R R.aXD.w '.0 gXlX1.`.`.8.8.`Xt.r.r.rXtXtXt.r e.r.r F.rXt.r.rX*.r.X e.^.b.b.b N.X.^Xt e.r eXt e.r.r e.r e.r.r e.rXtXt.r.^Xt e.^XzXzXzXzXzXz.b.b _.bXz.b.bXzXz.^XzXz.^XzXzXz N _.XXz.^ NXj e.r.r.r.r.r.rXt.rXt ~.r e.r.r.r.r.r e.r.rXt N.k N.^.^.^.^Xz.^Xz.^Xz.^XzXzXzXzXzXz.^XzXzXz.^XzXjXzXz N.b.^XjXj e.rXd _.Q.I.c.o.o.o.c.V.o.V.VXgXg.VXg.o.oXz.X.XXzXzXz.^.^ e.r.rXt.r.8.`.`.~.~XI R v 2 2X= 0 2X= 2.N.w t.MX,X-.e 3.}.e 3.uX-.e 3 B., yXp.N.s.@X4XnXp.x.;.@Xf.v 0XnX+X,X- 3.`.8XV.rXtXt.r.r.8 F ~XtXj.b.b.oXz.bXz.c.o.bXz.bXz.b.b.bXz.k eXt.r eXtXt.rXtXtXtXt.rXt eXt.rXt.bXg.b.c.cXg.o.oXz _XzXzXzXz.o.c.c.c.c.cXg.V _XzXzXzXzXz lXzXzXzXzXzXzXz _Xz _Xz.bXz.U.c.b _.b.bXz _.VXz _XzXj.U.V.^Xz.b.b.^Xj e e.r e e.oXt.r eXtXt.rXj N.^ e eXzXzXg.c.^XzXzXzXz.b.o.^XzXzXzXz.oXzXzXzXz.b eXj.^ N N.^.^ N.c.bXz.^XzXzXzXz.^XzXz.b.bXg.b.o.^.^.o N.b _.bXz e e eXg.bXz.b.^XzXzXzXzXz _.bXzXzXz _ _Xg.c.c.cXg.cXg.V.cXg.c.c.U _Xz.^.r.`.`.`X-.` Xe h a.eXD.a.e cX1.~X1.} R aXD.eXI #.~X-.aX-X, c 3", +".r.r.r.r.r.r.r ~.r.r.r.r.r N.r.r.r.r.rXt.rXtXt.r.r.rXtXtXt.r.rXt.rXt.r.^XzXzXzXzXz.cXz.^.^.b.^.^ eXj N.b.o.z.o.bXz.bXzXz.o.cXg N F c.).WXq z k.- 1 U.M.D R $.}X- RXI R aXD.e R.u.eXV.e.~X-X-.e.~.a.8.~ c.K.e.u #XMXKXUXGXa.D a aX-X-X-XD.e aX- RX1 8Xa.wXOXc R R.`.8.8 ~.8.rXtXtXt.rXt ~XtXt ~ F.8 ~.8.rXt.r.rXzXtXz.b.bXz.b.^ e e.r eXtXt.r.rXt.rXtXt.r.r.r e.rXt.r.^.^Xt.bXzXzXzXz.bXzXzXzXzXzXzXz.bXzXz.b.b.bXz.b.^Xz.b.oXg N.bXz.k e.r.r e ~Xt.r ~.r.r.rXt.r.r e.r e.r.r.r.rXt.^.^.^.^XtXtXj.^XzXz.bXzXz.bXzXzXzXz.^Xz.^.^XzXzXz.^Xz.^.X.^XjXt ~ ~ e ~Xz.c.U.o.o.VXg.V.V.V.c.V.V.V.o.VXg.bXz.o.b.^ N.b.^Xj.r.r.rX* ~ F.8.`.`.`.~ BXl.s / /X= /.N.N.N U R.~XD.e.a aXI.uX-.e.u T D.eX, 1 UXLX>Xh MXnX> S.+.J 0 2Xn y.a.a.}XI.8.8.r.r.rXtXt.rXt ~.rXt.^.o.bXz _.b.b.U.V.bXz.V.b.bXz.b.^ e.rXt e.r.r e.r.r.r.r.r.rXt eXtXtXjXgXgXzXg.cXz _ _XzXz.b.bXzXz.o.c.V.b _.V.V.oXzXzXz _Xz.b.cXzXz.bXzXzXzXzXz.bXz.bXzXz. .U.cXzXzXz.oXzXzXzXzXz _.c.^.b.b.b.^ e.r eXjXj.rXj ~Xt.r.r ~.r e.r e eXjXjXz.^.c _ _XzXz.b.oXz.^ _.b.b _Xz _Xz _XzXz.b.r e.k.^ N.^.b NXg.^.b.b.b.^XzXjXj.^XjXjXj e.^Xj eXj NXz.b.^.^.^ e e eXk N.b.bXz.bXz _XzXz _ _XzXzXz _.oXg.VXg.c.cXg.VXg.V.c.c.c.U.c.^ N ~.8.8.8X-.a.F._ U.i.MXD aX- DXl.e 1 : 3.eXJXDXD :XM.a x :.e.e $", +".r.rXt.rXt.rXt.r.rXt ~Xt.rXt N.r.rXtXtXt.rXt.rXtXtXt.rXt.r.r.r.rXt.rXtXj.^XzXzXzXz.UXzXzXz NXjXt.rXzXzXz.IXg.#.^.bXz.bXz.b lXg.^ F : n.y.h.T.[.-Xq $XDX,.aX,XI.a hX1.aXlX3XlXIXI c RXI.~.e.~X- aX-.a 3X-X*X- #.K `.- y.w.ZXI B.~.~X-X-X1.e B.*.aX,.Z.n.n m.Z RX1.`.8.8 ~ F.r.k.rX*Xt.rXtXt.r.r.8 F ~.8 ~ ~ ~.r NXj.b.bXz NXz e.rXj.r.rXtXdXt ~.r.r.r.r.r ~Xt.r.r.r e.kXj.r.^.^.^.^.^Xz.bXzXzXzXzXzXzXzXzXzXzXzXz.^.bXz.bXz.^ l.b.^.b.^Xd e.rXtXtXdXt.r.kXtXtXtXt.kXjXtXt.^XtXj.kX*Xj.^.kXj.^.^.kXg.XXg.b.oXgXgXgXg.o.o.o.oXgXg.oXg.o.oXg.X.o N.^.^.^.^ lXgXz l.c.#.U.U.U.U.U.U.U.U.#.U.U.U.U l.V.z l.oXgXgXg.b.^.^.k.^.k.uXV.HXV.8.8XI.w s O.s.s.s.sXs.ZX, c T.u R.MX1.a.a.` :X1 c.2.a.a CXs.; z.h M M.T.+.x vXn.s.qXGXJXl.`XIX*.KXVXtX*.r eXt.r.rXt.rXj NXzXzXzXzXz.UXzXzXzXzXzXz.b N eXtXtXtXt.r e.rXt eXtXt eXt.r.rXjXjXzXk.b.b _.b.bXzXzXzXz.bXzXzXz.b.b.bXz _.b _XzXzXzXzXzXz.o.o _.bXz _.bXz.bXzXzXz.b.oXz.U.6XgXzXzXz.bXzXz.b.bXz.b.UXz.bXzXzXj e e.^XjXt e eXt e.r.r e.r.r.rXj.r e.^.bXz.UXzXz _XzXzXzXzXzXz.bXzXzXzXzXzXzXzXzXz e.r e eXt eXtXz.^.^.bXz.^ N.b.^ e.r eXt.r e.r e.rXj.^.b NXz.^Xj e.r.^.oXz.bXzXzXz.bXz _XzXz _Xz _Xz.oXg.oXg.V.V.o.V.c.c.V.c.o.I.o.c.b.^.r.8.8.`.a c.g._ h.a a a.e.~.~.` #.` # R.e.5X,.~X5.a.e :X3.e.a k", +"Xt.r.r.r.r.r.r.r.r ~.r.r.rXt N.r.r.r.r.r.rXt.rXt.r.rXt.rXt.r.rXt.r.r.r.kXzXz.^XzXz l.bXz.b.^Xj e e.^.^.^.b.b.o.^.bXzXzXz.b l.c.b.H `Xc.1Xp.T nXK 1Xq.aX,XI RXKX, 1XD :X,.%Xc : D ` D c 3XD 3.eX-X- 3 3.a.u 3 #.lXcXJ.w.w.w.*.~X-X- RX- R a R.a.D.Z.w.w.wXO RXI.`X-.H.8.8.`.u.8X* ~XtXtXt.r.k ~ ~ F ~ F.8.r.8.r NXd.X.b.X.b.^Xj.kXdXd.r.rXt.r.k.r.k N N.^.X N.^.b N NXx.X.b.X l.z.z.QXg l.c l.U.c.U.c.c l l.c.c l l.U l l.U l.I.o.zXg.X.b N.b.X.k.k.^.k.k.^.^.k.^Xd.k.^Xj.k.^.k.^.^.kXjXj.k.^.^.b.o.X.b lXg.o.b _.b.b.b.o.X.o.b.b.b _Xz.b.^.^XjXjXtXjXd _.Q.o.b.U.c.c.c.c.c.c.c.c.c.c.c.c l.c.o.b l.o.b.X.b.b.^XjXjXt.kXt.r.H.8.H F.H.8X1.'.W.sXL.dXs C 8XI.u.u.ZX1 R 3XD R.,X5 'X1XlXIX, $XrX>X+ z.L.+.T.EXf o.@XGXw T.]X. ( Q 5 f Q.AX@Xx N N.X N.X NXg.U.U.U.U l.c. .U.U.U.cXk lXgXg.^.k N.^.^.k.k.kXjXtXj.k.kXj.k.^ N.b.b.z.o.b.b.b.bXz.bXzXzXzXzXzXzXzXzXzXz.bXzXzXz.^XzXzXzXz.c.oXz.bXzXzXz _Xz.o.^.oXz.b _.^.oXz.^.o _.bXzXz.bXzXz.b lXz.bXz.^XjXj.^.^Xt e ~Xt e ~.r eXt.r e ~ e.r e.^.b N.VXzXzXzXzXz.bXzXzXzXz.bXz.b _ _.^Xz.^.^ e.r eXtXj.rXt.^Xj eXjXj.^Xz.bXj e e e e e e.r e.r.rXtXj.^.^Xt e.r e.r.o.b.b.b.b.b _XzXz _ _XzXz _ _.o.o _.VXg.VXg.c.VXgXg.c.c.#.V.c.b.^.r.` ~.` a $XG E U a a.e.e.~.~.~X- c.e.e.~.eXI.e.e.~ a.eX- a aX-", +".r.r.r.r.r.r.r.rXt ~.kXt ~.r.X.rXt.r.r.rXt.r.r.r.rXt.rXt.rXtXtXt.r.r.r.^ NXzXz.oXz.b.o.^ NXj.rXtXj.b.^.b.^.o.^Xz.b.b.b.b.bXgXg.^.HX1XB.TX<.T.-XK $X,.aXD R.'XDXJ : k cXK : c : DXK.a.eX-X- 3X1.eXIXD.a.} # # `.[ y.wXL.ZXD R.~ RX-X-XDX, R $.9Xc T gXO m.`.HX1X*.uX*XV ).z.kX9.X.5 NX9.5.K.X N.k.kXtX*.k.k.^Xx.XXgXg l.b.^Xo.^Xd.rXt.r.XX9.k ~X*.r.kXtXtXt N.^.kXtXj.^ eXt.^Xz.^XzXzXzXzXzXzXzXz.^Xz.^.^.^.^.^XzXz.^Xz.^XzXg.^.^XzXd.k.^ ~ ~ e.r.rXx NXtXt.r.r e.r.r.rXt FXt.rXt.r ~.r e ~ e.^.^Xz.^XdXz.b.oXzXz.bXz.^Xj.^.^XzXzXzXz.^ eXdXt eXjXtXg ~.^ eXz.o.V.o.VXg.c.VXg.V.o.VXg.V.V.o.bXz.o.oXzXz.^.b.^.r.r e.r.r.r F F.8.H.~.H.~.wXL.N._.N t t R 3XI.e.`XD BXlXJX-X5 DXl.~ $ c 1 n.[.W.;.TXrX2 ^ 2.v O b.9.ZXI.XXdXxXoXdXxXxXxX9Xj.r.r e.rXjXj.^.b.b _ _ _.o.c.b.b.o.o.b.o.b.b.k e.k.k.kXjXjXt.r.rXt.^.k.^.b.bXgXkXg.IXg.U l.c l.U l.U.c l.U.U.U.c l.U.U.c.c.c.c.c.cXg.c.o.#Xg.o.o.VXgXg.o.^.o.c.6. .bXzXz.bXzXz _XzXzXz.b.bXzXz l.o.^Xz.b.^.^.^ N.k eXjXjXj.r.r eXt ~Xt e.r e e.^.b.b.o l.b _.bXzXzXzXz.b.bXz _XzXzXzXz.b _.bXj e.r e.r.r.rXj.^.r e.rXj eXjXjXj.r.r e.r.r.r e.rXt e eXjXt.r e F e e.rXz.bXzXzXzXzXzXzXzXz _XzXz _Xg _Xz _.o.c.c.c.V.c.V.cXg.U.c.c.V _XzXt.8.8.r.e #Xq U.} <.e.e.e.e.e.~.~.e.e.e a aXI.e a.e 3X-.e.e aX-", +".r.r ~.r.r.r.r.r.r ~.r.r.r ~.^.k ~.r.r.r.rXt.rXt.r.r.r.r.r.r.r.rXt.r.r.^Xz.^Xj.^.b.b lXz.b.^.k.^.^.b.^.b.b.^.b.bXz.^.b.^.bXg l.b.r.u.1Xr.j.TXw.YXc h $ aXDXD.MXD x.~XDX- cXI R 3 $.u.uX- :.ZXI.uX, $Xl c.l `X7XH nX0.j oXG s.D.DXDXDXD RX,XD sXl.!X$.O YXy.]Xl ) 5X9 ).8 } 5.$ q.f q q.&.r.k FXt ~.8 F.8 ~ ~.r.kXg.X.^Xz ~ ~ e ~.` F ~.r ) NXx.8 F.8 ~XjXtXj.^ N.^Xj.k.^.rXdXz.^.b N.bXz.b.b.b.bXz.b.b.b.bXz.b.bXzXz.^.^XzXz lXz.^.X.b.bXj e.r.r.r.rXt N.z ~Xt.rXt.rXt ~.rXt.r.r.rXt.rXtXt.r.k.b NXz.bXzXzXz.^XzXjXzXzXz.bXzXz.b.^.^XzXd eXj e.r e.IXg e.r e.o.VXzXz _.oXg.VXg.V.c.V.o _XzXzXzXzXg.b.^XzXz.^.^Xt e.rXt.r.H ~.8 F.8 F.`.`XD x.W.) u.*.*X1X-.8.~ DXl RXcXlXD.e.e.D cXJ `., s M = M.4X> .X=.v OXG.0X-.H.r.H e.rXd.r ~.r e.r.r e.r.rXjXj.^.b.bXzXz _ _Xg.b.o _ _XzXz NXj e.8Xt.r.r.r.r ~ F F.rXtXtXtXj.^ N.bXz.cXzXzXzXzXzXzXzXzXzXzXz.bXzXzXzXzXz.b _.b.b.b.b.b _.b.I.oXg.oXg.o.o.c.c.c.U. iXg.U.U.U.c.U.U.c.U.U.cXk.cXg. .c.cXgXg.o.X.o.o.b N.b NXj.^.^ e.r e ~ ~ e ~.^.^ N.^.o.b.^.^XzXz.bXz.bXzXz.bXz _.b _.bXz.b.^ e e e.r e.r e.k.^.r e ~Xj.r.r.r.r eXt e e.r e.rXt e.r.r.rXj.r.r ~.r.r e N.bXz.bXz _ _ _.b _ _Xz.b.VXg _Xz.V.VXg.cXg.c.cXg.cXg.#.c.V.c.oXzXt.r.`.r.e #Xq E U a.e.eX-.~.~.eX-.~ a.`.~ c.H.~.~.eX-.e.~.e.e.e", +".r.r.r.r.r.r.r.r.rXt.rXt.r.rX* N.r.r.rXtXt.r.rXtXt.rXt.rXtXtXtXt.r.rXtXt.^ NXz.b.^.bXg NXz.^XzXzXz.b.^.^.bXz.b N.o.oXg.o.oXk.UXk.5XI.Y.. v.1.1.- k ` x c c $ $ $X5XM.5.uX, 3 R 3XD R cXIX3XJ.3 m.HX1X,XDXM # .[X8X> w.; vXa.wXs R B.e.* a.e.D.Z.'XU.Z 4.k.2 q.uXJ.R.$ ~ q 5 I q.A q.X 5XtXtXtXtXt.r.r.r.rXtXj.kXg.^.b.^ e N N.^ N.k FXtX* N.r.r.5.r.XXj.X ~.zXkXgXkXgXk.r e.^.b.b.^ _Xj.bXzXzXz.^Xz.bXzXz.bXz.^.b.b.b.b.b.^Xg.^.b.^.^ NXd.r e.r.r.k.r.r F.k.r.r.r.r ~Xt.r ~Xt ~.r ~.r.r ~ e.^.^.b.^.b.^.b.bXz.b.bXzXz.^.^.^Xd.^.b.^.^ e ~Xj eXj.z d.I F eXz.b.oXzXzXz.VXg.VXg.VXg _ _XzXzXzXzXzXg _XzXz.^.b.^Xj e.r.r.r.r ~ F.8 F.H.8X1.~ s.w.)Xs t RXD.8X1.e c m.~ 3.a aX- R RXKX5XD.e x.M.Y JXnXfXnX=.v.s v 9.Z.H.rXt e FXd.rXtXtXtXtXt.rXj eXtXj N.b.o.o.bXzXz.oXgXz _.b.b.b.bXzXj.r F.r.rX*.r.r ~ F ~.r.r eXj.^Xz.b.b.oXg.b.b.bXz.b.bXzXzXz.bXzXz.bXzXz.b.bXzXz.bXzXzXz.b.bXz.cXzXzXz.bXz _Xz.bXz.^.#.U.b.^XzXzXzXz.bXz.oXz.o.o.b.o.z.o.o.o.o.o.o.o.o.o.XXgXk.o.zXk.^.zX@.b N.b N.UXkXgXg.6 l.c.cXgXg.V.o.o.o.b.b.b.b.^Xz.^XzXz.^.r.r.r.r.r.r ~.^.rXtXtXtXt eXtXt.r.r.r.r.r.r e.r e.rXtXtXt.rXt ~.r.r e.^.^.bXz.bXzXzXzXzXzXz _ _Xg.c.o _.oXg.c.c.V.V.V.c.cXg.c.#Xg.V.c _.b.^ ~ ~.8.` cXq U U.e aX-.e.~.~.eX*.~X-.a #.uXI.~.e.~.~.e.e.eX-.e", +"XtXt.rXt.r.r.r.r.r.k ~XtXt.r.r N.r.r.r.r.r.r ~Xt ~.r.r.rXt.r.rXtX*.kX*.^ NXgX9XgXgXg.I lXk lXkXkXkXg.UXk.IXu.U.cXgXgXgXg.o l.UXg.k 3 v.W...;.1Xc `.i hX, B.a.a R R R.aXI.a R.eXIX- aXDXDX1.,.3XD.H BXV 3XX # >.[ 0.P 0X>XCXG sXa.ZX1 tX- t R.Z.w.'XO B.2X1.u.`.8.8.r.8X*.uXtX*.^ q.kXt.rXtXt.rXt.r.r.r.rXt.r.rXt.o.^.bXj eXgXg.o NXk.`Xk N.z.kXtXk NX9.oXj.^.z.cXk.z.o l ~ e.r.^.^.b l.^.b.bXz.b.bXz.b.^.^XzXz.bXzXz.^.^.^.^.c.XXgXg.XXz e.k FXtXt F.r.rXtXtXk.IXtXt.r ~.kXtXt.rXt.rXt.r e.k.^.^.b.bXd.b.^.#.^XzXz.^XzXzXz.^.bXz NXjXt e ~.^Xj.^Xj.QXz.r e.IXj.bXzXzXz.o.c.o.VXg _ _XzXzXzXzXzXz.cXz.bXz.bXz NXj.r e.r e.r ~ F F.8Xx.uXVXlXD.E.)Xe.M.eX1.~.H RXI R.eX-X- a a.e R R.eXDX, $XK U.W.. 0 0...s v.E TX-XV.r.rXj.r ~.r.r.rXt.rXt e.r.r e.k.b.bXg.o _XzXz.VXg _.b _.b.bXz.^.r ~ ~.r.rXtXt.r.r.r.rXtXtXt.^ N.b N.b.o.o.b.bXz.bXz _.b.bXzXz _.bXzXzXzXzXz.^.bXz.bXzXzXz.b.o.VXz.bXz _Xz.bXz.U.oXz.bXzXz.b.b _.b.bXz.bXzXz.b.bXz.b.cXz _ _XzXz.bXz.b.b.b.b.b N.r eXkXgXjXjXtXt e N.^Xj.^Xk.b.b.o.o.o.o.oXg.c.c.U.c.U.U.U.U.UXkXg N N.b N N N NXx.k.kXtXt.rXtXt.r.r.rXt.r.r.r.r.r.rXt.r.rXt.rXt.rXj.r.r.X.b.b.b.b _.b _Xz _XzXz.o.cXg _ _Xg.c.c.c.c.V.c.VXg.V.U.c.c.V.c.VXz.^Xt FXt.eXM._ E.} a.e.~ R.~.e.~.e.eX*.` R.`.~.e.~.e.e a.~.e.e.e", +" ~ ~.r.r ~.r.r.r.rXt.rXtXt.kXj.X.K.^.k.^Xo N N NX9.XX9.X NX9.X.X.^ N.^.^.^.^Xz.o.b N.oXgXz.b NXz N.^.b.bXg./.o.^XzXz.bXzXzXg l lX* 3Xs.s ^ MX0XK V h 3 h 3XD.M.a RX-.uXDX-.eX1.a R.a #Xl K.,X-X1XV.~.u 3XM.lXBX2XA.v.BXfXr W y v.w.w.ZXI.*XD.w.w.!Xl.n :.~.u F.8.8.rX*.rX*.rX*.r 3Xt.rXjXt.r.r.rXtXtXtXt.rXtXtXt.o.^.b.^.r.^.kXt.^.kXt.r ~ ~.8Xt ~.k ~XtXj.r e.^.b.bXj.oXdXj eXzXzXx.o.bXz.^XzXzXz.^Xz.bXzXz.^Xz.b NXz N.bXz.z lXg.I.(.X.b eXt.r eXt ~Xj.rXg.^ ) 7.kXt.r ~.8 F.kXt ~ eXtXj.^.^ q.^ e.b.b. .b.b.^.^.^.bXzXjXz.bXd.^ e ~ e e.b.^.bXz.^Xd e e.RXz.bXzXz _.V.V.V.o.V _ _XzXzXzXzXzXz.VXzXzXzXzXzXz eXt.r.rXt.r ~ F.8.r.KXo.| 'Xc.> yX> =XDXKX-.~ 3.a RX- a.e.e a t.eXDX, 3 cX,.wXs CXL.v 0.s H.EXHX5 `.5XkX9 NXtX*X*.rXtXt.r e e eXt.rXj.b.bXg.c.o.o.bXg _Xz _.b.b.b.^Xj e F ~X*XtXt ~ ~.rXtXt.rXj.^.^Xz.b.bXz.c.o _Xz.b _.bXzXzXz.b _.bXz _Xz.bXz _ _XzXzXzXzXzXzXzXg.bXz _XzXzXzXz _.#Xz.bXz _Xz _.b _.bXzXz _.b.b _.b.b.c.o.bXz.bXz _XzXz _XzXzXz NXjXjXj N.I.z.k.r e.rXj e ~.^.^Xz.b.bXzXz.bXz.^ _XzXzXzXz.^Xz.^.^Xj e e eXtXjXjXtXj NXj.k.^.^ N N.^.K N N N N N N N N N.^.^.^.^.^.k.k.kXjXd.b.b.^.^Xz.bXzXzXzXz _.o.c.c.V _.o.cXg.c.c.c.c.c.cXg.c.#XgXg.V.c.VXz.^Xt.r.8.` #Xq U h a a.e.K.`.~.eX-X-.8.}X9.~.e.~.e.e 3X- a.e.e R", +" N N N NX9 N.XX9 N N N N N.^.k N.X.kXtXtXtX*.rXt.r.r.r.r.r ~.r ~.r.r.r.r.r.rXj.^ NXz.bXk.b.bXzXz.bXzXzXz N.o.b.b.bXz.b.bXzXg lXg.k.8 v 2.v &X<XB `.}.aXlXc c.a RX, cX-Xl.aXD.e.}X-.e R : xX3X.Xl.8.~.K 3 h.l.F W.J.4XbXfX:X>X0.E 9XLXa x U.Z.w.0 gX1 D 3.`XV.`.8 ~X*.rXt.rXt.rXtXj.rXt e ~Xt e.rXt.r.rXt.rXt e.r N.^.b.^ e eXj eXt e.rXt ~ ~ ~.r.XXx eXt.r eXj.^Xz N.^XkXk.^.^Xx.I AXzXz.^.b.bXz.^.bXg.I.I.XXz.b.^Xz.b.bXz.^Xg N.bXdX@X ~ e.rXt ~Xt.rXt.r ~Xj ~.z 7.r N./.&Xk ~Xt.rX* e N NXk.7.t.7.t.&.c.^.^.b.bXz.b.^.^.zX .t.^.r eXjXj.o.^XzXj _ e A.tX&XjXzXzXz _.o.cXg.V.c.VXzXzXzXzXzXzXz.cXz.bXzXz.^ N e.r e.r.r e.r ~ F.8X*.r.uXD RXe.E v.W.M.H.`.~ a R 3 BX-X- BX- B R.aX1 1 hX,XDXDXs.sXL o b &XJ ` k q 5 f.$.AX*X*.r.rXtXt.rXt.r.r e eXj.b.b.c.c.VXgXg.c.oXz.b _Xz _.^Xj.r ~.r.r.r ~ ~.8 ~Xt e.r.r.k.^.^ NXz.^.UXz.bXz.b _.bXzXz.b _XzXz _XzXz _Xz.bXzXzXzXzXzXzXzXz lXz _XzXz.bXz _.^.oXzXz _Xz.bXzXzXzXz.b.b.bXzXz _Xz.b.c.b _Xz _ _XzXz.b.bXz.^.bXj e.r e.r.r ~ e.r eXt.rXtXt.^Xj.^.^XzXz.b.bXzXzXz.b.bXz.b.b.b NXzXj e e ~ ~ ~ ~ ~Xt.k ~ ~.r.r ~Xt.r.r.r.r ~.r.r.rXtXtXjXtXjXj.k.k.K.^.^ N.XXg lXk.U.U.U.c.c.cXg.V.U.U.UXg.o.V.c.VXg.cXg.oXg.V.c l.#Xg.V.c.V.c.b.b.^ ~.8.a 3Xp EX, aXI cXIX-.~.e.e 3Xl.K.~.~X-.~ a.e 3X-.~.~.e.~", +".rXt ~Xj ~XtXtXtX*Xt.r.rXt.r.r.r N.r.r.r FXt.r.r.rXt.r.rXt.rXt.rXt.rXt.r.rXt.r e.^ NXzXg.o.b.bXzXz.^Xz.bXz.bXz NXz.bXzXzXz.bXg l NXV s.s b z nX+.- h 3 k T., ' )XcXlXcX5 1 : x Y.a.a.e BX-.~ a.eXI 3 3 a #XM .[ . 0Xb % %.s.sXi 0 &X>Xp v.n.n Y ( m 5 D )., m 5 I fXtX*XtXt.rXtXt eXtXtXt.r.r e.r e e.r.rXj.^Xz l.b.b.bXz.^.bXz.b.^ e.r e.r.r qX$Xd.kXjXj.b.b.^XjXt ~.R ~.R.&XtXzXoXzXzXzXzXzXz N.X.b.: _.bXzXz.b.^.b.^.b.^Xg.^.rXxXx.:.k.k.rXt.rXg qXz ~ e.r.rXx.k , 5X9.^Xt.r eXt.^ NXzXz.bXz.fX .XXzXo.b.^Xz.^Xz NXd.bXt.:.kXjXjXjXz.^.bXz.^.b.b.:.bXz.b.^XzXzXj _.o.V.V.oXgXg.oXzXzXzXzXzXz.cXzXzXzXzXzXzXzXt.r e.r ~Xt e.8.8.8.8.`.`.*.N b.W.WXDXD.~.`X-X-X- R.e $XD.D.DX1X,X1 $X,.M.MXs.N.WXe.9 sXI.D.5 ~.rX*X*.rXt.r.rXt.rXdXt.r ~ ~ F.r.r.^Xz.o.c.c.c.c.c.# _Xz _Xz.b.b NXj e.8 F.8 ~.8.8 FXtXtXtXtXt.rXjXt.r e.^Xz e e.bXz _Xz _XzXzXz.bXz _Xz _XzXz _.bXzXzXz _.^ _.b.cXz _ _.b i.UXzXz _Xz.bXzXzXzXz.bXz _.bXz.b _Xz.bXz.o.c.^ _.bXzXz.bXzXz.bXz e eXt.r.r.r e e.r.r.r.r.r e.r.k.^.r.^.b.b.^Xz.bXz.^.^.^Xz N.bXzXzXz.rXt.r ~ ~ F ~Xt.r NXtXj.^XjXj.r.r ~ ~.8 F F F.8.8.r.r.r.r.r.r e.rXt.rXtXt NXt.^Xz N.bXz.bXzXz _.V.oXg.oXz.VXg.c.V.V.V.V.V.V.U.V. .c.U.#.U.U.#.cXkXk.XX*.K.-Xq.iXD.a.8X-X9.e.~.~.e.e.e 3.}.e.~ a.e a.e.a #.eX-.~", +".rXj.r.r ~Xt.r ~ F ~XtXt.r.r.r.rXt.^ ~.rX*.rXjXt.rXt.rXt e.rXt.rXt.r.rXt.r.rXt.rXj.^ N.oXgXzXzXzXz.bXzXz NXz NXz.^XzXz.bXz.b.b lXx.HXl v v.;X<.-.,.Z.}X,XDX,XI.Z c aX- a <XD.M 3 xXDX, 3.e.eX-X-.eXl.e ` x #XBX7.. %XF *.d.) *.sX=.@.4.jX>XL ' g.].`XV 3 3 $X*X*.k.K ~.rXtXtXtXt eXtXj.^XjXjXtXtXjXjXjXjXj.^Xz.bXg.o.bXz.bXz _Xz.b.^Xj e.r.rXd q.7.XXd N.bXzXz.b e.rXt.K.r f q.r.b.bXz.bXzXzXz N.^.o.X.:.^Xo.I.bXzXz.^Xz.b N.bXd.r.|X9.:X9Xt.rXt ~Xk.8.z.r.r e ~X9.5.k.:.A ~.rXtXt.^.oXz.^ N.b.^ Z A.k.bXz.b e e e.^.^.^.k.k.:.^.^.b.^.^.^.b.b.^Xz.b.:.^XzXzXzXzXzXzXz.b.VXg.VXg.V.o _ _ _.b.b.b.UXz.bXzXzXzXz.^Xj e.r e e.r.r.r.8.8.8.8.` R.nXe.)XLXD 3.eX-X-.e RX- RX,X1 8XD.D.MX,.M.Z R.NXeXL.w y.'X1 3.8Xo.u.k.r ~.uXtXdXd F.r.r.r.r ~ F.`.8 eXzXz.o.c.o.c.c.c.I.b _ _Xz.bXzXzXjXt ~.8.8.8.8 ~.8.r.r.rXt.rXt.rXjXjXt.k.^Xj.^.bXz.bXz.bXz _XzXzXzXzXz.bXzXz.b _XzXz _XzXz.b.o.VXzXzXzXz.#.oXz _Xz.bXzXz.bXzXz _.b.bXz _ _.b.b.b.bXgXgXz.b.b _XzXz.bXzXzXj e.r e.r e.r.r.r.rXt e.r.r.rXj.k.^XtXj.^.b.bXz.^Xj eXjXz.bXz.b.b.bXj eXt ~.8 F F.r.r.^.^.^.b NXzXz.^.^XjXt.r ~.8.8 ~.8 ~.rXt.r e.r eXt eXt.r.^XjXt.r.^.^.b.bXz _.V.cXg.c.V _.o.V.V.c.V.c.c.V.V.c.V.U.U.V.c.o.c.c.o.^Xz NXt.8.} 1 E.i.}X-X- cXV.`.8X1 3 3 3 hXI.} RX1 3 c aX-X,.~X-.e", +".r.r ~XtXt.rXtXt.kXt.r ~.rXjXt.r.r.X.r.r.rX9.r.rXt.r.rXt.r.r.rXt.r.r.r.r.r.r.r e.r.^.bXzXk.^Xz.^.bXzXz.bXzXzXzXz.b.b.^.bXzXzXzXgXg.uX,.'.s.@.1X7 [ hX,.iX5X,XD :.2Xl.Y :Xc : ` mXJ :Xc c.eX-X-.e.~ c.e h #.l.l.[X4XF p t < t U U 0 %...@XrXG TXO.k B.`X-.`.8X* ~Xt.rX*Xj.rXt.r e.r.^.^.b N NXz.^.^.^ N.^XzXz N.b.bXgXz.b.bXz.bXz.bXz.^XdXj.r.r.z P.f.b.b.bXz.bXz.k.k F.^.k 7.^.k.b.^.bXz.bXzXzXzXz N./ Z.b.Q AXz.^XzXz.b.^ NXz.X fXt.r f f.rX* ~XtXt.rXzXtXt e.k P.K.rX9.tXt ~ e.^.^.b NXz.^.bXg.:X@.b N.^Xj e eXj e e.b.^Xk.: NXd.^XzXz.^XzXz.^XzXd d.Q.6.^XzXzXzXzXz.b.VXgXg.VXgXgXg.o.o.V.V.V.UXz _XzXzXz NXzXj e.r.r.rXt.r ~.r.` ~.`.`XlXG.W.NXeXD x.a.a R a a.a aX,.} R.M R.M t 8 v.N.W.s v M.> :X5.5 )./.k )XtX9 q.k.$ (XxXk N.r F.8 F ~.rXj.b _.V.cXg.c.c.U.#.o _.bXz.bXzXzXt.r F ~.8 ~.8.8 F.rXt.rXt.r e.rXt.r e.^Xz.^.b.b.b.bXz.bXzXzXzXzXzXzXz _Xz.b.b _Xz _Xz.oXzXz.V.o.bXz _Xz _XzXzXzXzXz.bXz.bXz.b _.b _.b.b.b _ _.bXz.c.oXzXz.b.bXz.bXzXzXz e.r e.r.rXt.r.rXtXtXt.rXtXt.rXj.^XjXt e.^.b.^Xj e eXj.^Xz.bXzXz.^Xj.r.rXt F F ~ ~ e.r NXt N.b.^.b.^XzXzXzXz.^ e.r F.8 F ~.rXtXt.r.r.r.r ~Xt.r.^.rXj.r.bXzXzXz _ _.V.cXg.c.o _.V.V.c.c.c.V.c.c.c.c.o.#.V.U.c.V.cXgXz.VXz.^X*.8XM U U a.e.e R.e.e.e.e.e.eX- aX-.eX1.~.`.HXI.`XIXIX-X5", +" e.r.r.r.r.r.r.r ~.r.r.r.r.r.r.r ~ NXt.r.r N.KXt.r.rXt.r.rXt e.r.rXtXt.rXtXt.rXt.r.^.b.^Xg.bXz.bXzXz.bXzXz.bXz.bXz.bXz.bXz _.b.oXk.K c y yXn.TX#Xw k., :XcXJ :Xl 1Xc #.Z.MXDX, 1 $XD R.eX-.e.~X-.~.k.e 3 a.l.lX7Xn p p u.a hXl $.)...s . yX0.n.2XdXV.`.~.8.`X*.8X*.rXtXt.r.k.rXtXt.^ N.b N.b NXz.b.b.b.bXz.b.bXz.b.c.^ _XzXzXzXzXz.b N.^Xt e.X.X.t 7Xk.^.bXzXzXzXj.r.kXt 5.7./Xd N.bXzXzXzXzXz N.^.c.t.t AX .o.o.^.bXz.bXz.^ NXxXx.5 NXxXx.X F.k.r.r eXt ~.r.r.bXxXk.rXt.k FXj.kXzXz NXz.b.^.b l.I l.bXz.^ e ~ e ~ e.r.rXt.XX9Xj e eXjXz.^XzXzXzXzXz e.o.^Xz.^XzXzXzXz.o.VXgXg.o.c.c.c.c.cXgXgXg.UXzXzXzXz.bXzXz.^ eXt eXt e e.rXt F F ~XIXD s.sXs.).M x.a R u.M.W U U.M.WXe.N U.WXs 2Xe.sXL vXp $XK DX..A ].RXtX@ q.| qX@ ]X@.t.RXxXt ~.8 F F FXj.b.bXg.c.V.c.c.U.UXg.o.bXz.b.bXz e.r F.8.8.8 F.8 F.r.r.rXtXtXtXj.r eXt.o.b.b.^.b _.b.b _Xz.bXz _Xz.bXz.bXz _ _XzXzXzXzXzXzXz.cXz _ _ _XzXzXz.bXz.bXzXz.b.b _Xz.b.b.b _.bXz.b.b.b.b l.b _XzXz.b _XzXzXz.^ e e e.rXt.rXt e.r.r.rXt.k e.r.r N.rXjXjXj.^ e e.rXjXjXj e eXz.^.^ e e.r ~ F F ~.rXtXt NXj.b NXzXzXz _XzXzXzXz.^Xj.r F F ~ ~.rXt.rXt.rXt.rXt e N.rXj.rXj.^Xz.b.V.c.c.c.V.c _ _.c.V.c.V.c.c.c.cXg.V.c.#.o.V.VXg.V.c.c.^Xz NX*.8 ` h U.d a a a.e.~.e.~X- aX-.} a.e.e.eX-.e c.`X1XI $XlXl", +" ~Xt e.r.rXtXt FX*.r.rXtXt.r.r.r.r.k.KXgX9.t.kXtXtXt.rXt.r.r.rXt.r.r eXt.r.r e.r.r.^.^.^.o.o NXzXzXzXzXz.bXz.bXzXz.b.^.bXz.b.^.^.V (Xc.O.+.; =.T.S [Xc.} $XD R 3 aXD.e.a a a a.aX- a.aX-XI.e.e.~.e.KX-.} 3 #.l >X%.@.pXp.1 mX3Xc xX4.@X>X0 TX$ ! ].8.` R.`.8X*.8Xt.r.rXtXtXj eXj e.^XzXzXz.b.b.bXzXz NXz NXz.bXzXz.U.^XzXz _XzXz _XzXzXz.b.rX@ NXkXg.b.b.^Xz.oXz.^.r.rXj N.rXt eXzXzXzXz _XzXz.b.oXj.^.bXdXzXz.^Xz.bXz N.b.kXj.^.r ~Xt ~Xt ~Xt ~.rXj ~Xt ~ e.r.r ~Xt.r.rXt eXtXj.^Xz.o.^.b.^XzXzXj.b.^.^Xz.^Xj e e.rXj.r.r e ~ eXt e e.^.^Xz.^.bXzXj _XdXzXzXzXzXzXz _.VXgXg.VXg.VXg.VXg.V.V.o.o.#XzXzXzXzXzXzXz.b.o.X N.^Xt.rXoXd.H.r.`.8 RXLXe /Xs.).w C.M.W.= 2 v 2Xa.sXe v v.=.W.W.s x.s v.MXIXIX*X*.k.k N.rXd.k.r.kXV.rXd.rXt.r ~ F F.8.r eXj.b.o.V.c.VXg.c.#.c.c.o _Xz.b.b.^ e.r F.8 F.8.8 F.8XtXt.rXt.r e.r eXj.^Xg.b.bXz.b _.b _.b.b.bXz _XzXz _ _Xz.bXzXz _XzXzXz.V.^.UXzXzXzXz _XzXz _ _XzXz.bXz _.b.b.b _.bXz _.b.b.b.b _.cXz.oXz.b _XzXz.bXzXzXjXj.^Xt eXtXtXt.rXt.rXt.^ NX*.^ NXt.r.r eXt e.r.r e e.r.r.rXj.^Xt.r eXt ~ F ~.r.r.r.^.^.^ NXz _Xz _XzXzXz _Xz _XzXj.r F.8 F ~ ~.r.r.rXjXt.r.^XjXt e eXj.^ _Xg.VXg.c.c.V.c _.oXg.V.c.c.c.V.c.V.c.V.U.UXg.cXg.c.c.oXgXz.^.b.r.8 1Xe E U.e.aXI.eX-X-.~ 3.eX- a.e a.e.uX, 3 xXKXK ` 1.i.a", +"Xt.r.r ~.r.k./ ,.X.k ~.rXt.r e.rX*.r P q.k.A.^Xt.r.rXt.r.rXt e.rXtXt.r.r e.r.r.r.r.^.^.^.bXkXzXz.bXz.bXz NXz.b.bXz.b.b.bXz.^.^Xd.X.k.kXs y.@X+XH.T., kXBX,.aX-XD.aXD R.e.a t.e.M R.e mXJXl :XDX- ~.`X*.`.}.i.l.[Xr M M nXH c `X3.9.Y.Y & =XU.G D (.eX1.` a.8X*.8.rXjXt.rXj.r e e e.^XzXz.bXz.bXz NXzXzXzXz.bXz.bXz.UXz.bXzXzXz.bXz.b.bXzXzX@Xg.b.b.b.b.b.oXzXz.b eXjXtXt.b.r eXtXzXzXzXzXzXzXz.bXz.o.^XzXzXz.bXzXz N.^.^.^ eXt.^XtXt ~XtXt.rXtXt e.rXt.r e.r.r ~Xt.r.rXt.r.r.^.b.^Xz.oXzXzXz.^Xz _Xz.^.b.^.^.b.r.rXt F FXtXtXtXt e e eXz.^XzXzXzXzXzXzXzXzXzXjXzXz _.oXgXg.V.oXgXgXg.V.oXg.oXg.o.UXzXzXzXzXzXzXz.b.&Xg lX9.QXd.z.R.XXd.kX*.Z s M v 2.W v.W.sXs.) 2.= 2.s vXG.s._ b.9 o.j y 1.aXI.}.u.u.u ~.^.k.r.rXt.rXd.k.rXtXt.r e ~ F F F ~.r.^.oXg.V.cXg.V.c.#.c.c.oXz.b.b.b.^ e e F.8 F ~.8.8 ~.rXt.r e.r eXj.^.b.b l.b.b.bXzXzXz.bXz _XzXz.b _ _Xz.bXz _ _XzXzXzXz.#.I.c.cXz _Xz _Xz _XzXzXz.bXz _.b.b.b _Xz.bXz.bXz.b _Xz.bXg.cXz.bXz _ _ _XzXz.bXz.^.b.bXjXt.r.r.rXtXtXt q.z.zXt.^XtXjXt.r e.r eXt e.r.r.r e.r.rXt e e ~Xt ~ ~.r e.rXtXz.^.bXz.^XzXz _XzXz _XzXzXz.bXz.^ e.r.r ~ F F F ~ ~ e.r NXt e.r eXz.b.o.cXg.cXg.VXg.c _Xg.V.c.V.c.c.V.cXg.V.c.#.o.o.c.o _.c.c _.b.^ NXVX- `.i E < aX-X-.e.e.e.eX-.eXI.eX-.eXlXl ) 1XK U 1.e.e.e a", +" e ~.rXt.r.8Xk P ~.rXt.r.r.r.rXt ~.$ ,.8X*.KXt.r.rXt.rXt e.r.r.r e.rXt.r.r.r e.r.rXjXtXj.kXg NXz.^XzXzXz.bXzXzXz N.^.b.b.X.^.X.z A.RX3Xc.+.;.EXr.O.[.SXH.M.MXIX- 3 a R : R.e tX- TX- 1 1 mXH.~X1.e.e.uX. 3 # XB.p.@XpXe C hXDX, <.}.N.s.YXw m.H.`.`X1.a.`.}X*.rX*.rXt.rXt.rXj.^Xj.^Xz.b.b.b.b.b.b.b.b.bXz.bXz.bXz.c.b _Xz _Xz _ _.oXzXg A.o.^Xz.b.b.b.^.bXzXz _Xj e e.r.X.rXj.bXzXzXzXz _XzXz.b.^Xz.bXzXz.bXzXzXz.b.b.^Xt.r.r.X ~Xt.r.r ~ e FXt.rXt ~Xt.r.rXt e.r.r.r.r.r.rXz.^.b.^.bXzXzXz.^.bXzXzXz.b N.^.^.r.r ~.r e.rXj.b.^Xt eXjXzXz.b.bXzXjXzXjXzXzXj _.^ _.oXg.VXg.o.VXg.VXgXg.VXg.VXg.V.#XzXzXzXzXzXzXz.^.t.6.(.( Z.XXg.X ].R.A.$X3XJXhXC 2 2.s.W.W.).W.n 9.9Xm.9 s 1.9.j $ = T.2XD.K.5.r }Xk.z.^.5.^.zXdXd.X.X.rXt.rXt.r.r.r.rXt e.rXjXz.oXg.c.c.c.V.c.IXg.U _.bXz.bXzXj.rXt ~ F.8.8.8 F ~Xt e.r eXt.kXzXzXz.o.c.b _.b.b.bXzXzXz.b.b _XzXzXz _Xz _Xz _.bXzXzXz. . .#.o _XzXzXzXz _Xz _Xz _Xz.bXz _Xz.bXz _Xz _Xz.bXz.bXz l.bXzXz _.bXz.bXz _XzXzXz.bXzXt e.r.r.r eXt e.r.r.^.r NXtXt.r eXt.r.r.r eXt e.r.r e.r.rXtXt eXt ~.r.rXt.rXj.X N.o.b.^XzXzXzXz _XzXzXzXzXz.b.^.^.^XjXj.r.r ~.r e eXtXz.r e.r eXz _.oXg.c.c.c.cXg _ _.V.V.c.V.c.c.V.c.V.o.c.U.V.c.o.c.cXg Z i.oXgXxXx.aXM._ E U a.e a.e.~.~.~.eX- 3.e.e.eX1.`X-X-.e.e a.e < a.e", +".r.rXt.r.rXt q.t ~.r.r.r.rXtXt.r.8.& }.^ ~.rXt.u.r.r.r.r.r.r e.rXt e.r e.r.r.r.rXt.r.r.rXtXg N N.^.^.^.^Xz.^ N N.b.^.X.^Xo e.X.RX@./ : TX> vX> n.1X.XZXHXe.M t.e.ZX,X, $ a 3.e.a T.}.e.e.eX-.~.e B BX- : # # XcXp.sX= u.M a t a t u.)Xe v y #X-.`.`X-.8.}.`.r.k e.r.r.kXj N.^.b.bXz.b.b _Xz.b.bXzXzXzXz.bXz.b.b.^.V.oXzXz _XzXzXz.U.Q.#XzXz _Xz _XzXz _XzXz _Xz.b.^.bXjXgXo.oXzXzXzXz _XzXzXzXz.bXz.^.bXzXz.^.b.bXz NXz.r.k.r N.r.r e.r.r.r.r.r.r ~ e ~ eXt.r.r.rXj ~ e eXjXz.^.^.^.oXz.^Xz.bXzXzXzXz.^Xz.b.rXt e ~ F eXt N.^.bXzXz.^Xz.^.bXz.^XzXzXzXzXzXzXz.b.o.V.V.oXg.VXg.o.c.VXg.o.o.o.VXg.#XzXzXzXzXzXz.b.bXz.bXz.R.bXzXoXdXd.r ~.8.a #XU.9.= vXL.WXL._XG xXD.~ RX-X- BX,XD.~.~X9X9 5 (.&.k.tXxX@X@.& X.t.& fX X@.zXt e.r.r e.rXt.r ~Xj NXz.V.c.V.c.cXg.U. .V.c.oXz.bXz.^Xj e e.r ~ F F.8 F.8XtXt.rXtXjXzXz.b.b.bXgXzXz.b _.bXz.bXzXzXz _XzXzXzXz _XzXzXzXz.oXzXz _.c.cXg _Xz _Xz _XzXz _.bXz.bXz.bXz.bXz.bXz.bXz.bXz _.bXz.UXz.b _.b _ _.bXz.bXzXz.b.bXj.r.rXt.rXt.r.rXtXt.rXtXj N.rXtXj.r.rXt e.r.r.r.rXt.r.r.r e.r.r.r.r.rXt.r e.r.^XgXzXz.^ _.^ _Xz _Xz _ _XzXzXz.bXz.b.b.bXz.^.^.^Xz.^.^ NXz e e e e.^.bXg.cXg.V.c.c.VXz _ _.c.c.V.c.c.c.V.c.o.#XgXg.c.o.o _.c X.U.7 A.f | :XB.- U U a.~.e.e.~.e.e.eXI.~ a.~.` 3.eX-.~.~ a a.e a.e a", +" e ~Xj ~Xt ~.&.$.r.r.r.r.r.r.rXt.rX9.:.5.KXk.r.rXt.r.r.r.r.r.r.r e.r.r.r.r.rXt.r.rXtXt.r.rXt.oXt.r e.r.k eXd e.^.z.U.^XoXtXtXt.k.R NXI.}XG 0X>.h.TXw.- X, x.Z :Xc 5Xc.e R RXl.-XcX5.e.e a.eX-.e B.e B.e hX3.[X7Xm.s.W p.N.W < t u u -Xv.s.9.aX-X-.`.`.H F.rXd.^XtXtXt eXj.b N.bXz.b.b _XzXz _ _Xz.bXz.b _.bXz _Xz.o.o.bXzXzXz _XzXzXzXzXz _XzXzXz _XzXzXzXz.bXz.b.bXz.^ l.b NXzXzXzXzXj.VXg.o.o.oXzXz _XzXzXzXz.^Xz.^ eXtXt.r N.r.r e.r.r e.r.r e.r.r.r.r.r.r.r.r.r e.r.rXjXz.^Xz.^Xg.^Xz.bXzXzXzXzXzXz.^.^Xt.r ~ ~.rXt.^XzXzXz NXz.^Xz.^ _XzXz.^XzXzXzXzXzXz.VXg.o.o.VXgXg.VXg.o.V.c.VXg.cXg.o.U.oXzXzXzXz.bXzXz.b.bXzXz.b.b.^Xd.rXt.r.r.8.aX- $.nXLXG s x $.a.`X-.`X-.`X-X-.`.`.`.8.r FXz eXo.^Xx.z.z.z.6.I.I l.z.zXg.bXtXt.r.rXt.r.rXtXt.^Xz.oXg.c.c.V.cXg.c.#.c.cXz _.b.b.b e.rXt ~ F.8 F.8 F ~Xt.r.rXt.^.^Xz.bXz.o.o _.^ _Xz.b _Xz.b.bXz.b.b.^ _XzXz _.b _.I _XzXzXzXz.#.c _XzXzXzXz _XzXz _Xz.bXz _.bXzXzXz.o.bXz.bXz.b.b _XgXz.bXzXzXz _Xz _Xz.bXzXz e e e.r e.r.rXt.rXtXtXj.rXtXjXt e.r.r.rXt.rXtXt.r.r.r.rXt.r.rXt.rXt.r.rXt.rXj ~Xg N.b.b.bXzXz _Xz.bXzXz _XzXzXz.bXz.bXzXz.bXz.bXzXz N.^.z.^.bXz.^.^Xz _.cXg.V.c.c.c.c _.oXz.V.c.c.cXg.c.c.c.V.U.b.bXg.o.^ _.b.o.b.U.k )X9 1XH [ E U a.e.~X-.e a.eX-.8.e.~.e.~X*.~.~.~.e.~.e.e a a <", +" ~Xt ~.rXt.k f.f.r.r.r.r.r.r.r.r.r.r.X 5Xx ~.rXtXt.rXt.r.rXt.r.r.r e.rXt.rXt.r.r.r.k.8.rXt.rX9 F.r.r.r eXt eXjXx.:X9.R q.&.z Q.R.t.& 5Xw = z 0.jXw.1.[.-.YXJXc ` $ $ cX-X5 kXl c.a a.e.eX-.~.e.~.e.e a a.8.i c k.YXG...s.s.).) p pXF -.s..Xq a.8.8.`.8.8.r.r.r.o.r.rXjXj N.o.b.^.b.b _Xz _XzXz.bXz.b.b _Xz.b.bXzXz.o.cXzXz _XzXzXz _XzXz _XzXzXzXz _Xz _.bXzXzXzXz.b.b.^Xk.b.bXzXzXz _Xz. l. .#.UXz.^XzXzXzXzXzXjXj e eXt.r.r N.r e.r.r.r ~ e ~ ~.r ~.r.r.r.r.r.r e.r.r e.kXzXz.^Xz.o.^Xz.^.^.^XzXzXz.^Xj e e ~ ~ ~Xt.^.^Xz.^XzXz.^XzXz.^.bXzXzXzXzXzXzXz.b.o.o.o.o.oXg.c.VXg.c.V.VXg.o.o.c.o.c.#.V.bXzXzXzXzXzXzXzXzXz.b.bXz.bXd e.rX* 3.8.8X1X- $.' x R.eX-.8X-.`X-.`X-.`.`.`.` F F.r ~.^XdXzXj.bXzXz.^Xx.^.^XjXz.^.^Xj e.rXj.rXtXtXj.rXj.^.b.V.V.c.c.V.c.c.U.UXgXgXz _.bXz.b e.r e ~ F F.8.8 ~.rXtXt.r eXj e.^.^.b.c _.b _Xz.b _.b.b _.bXz.b.bXz _XzXz _.b.bXu.#.b _XzXg.#.oXz _XzXz _XzXzXz _Xz.bXz.bXz _Xz.b.bXz _.bXz _Xz.o.V.b.bXz _Xz.bXzXzXzXzXz.^ e e.r.rXtXt e.rXt e.r.rXt.^.^.r.r eXt.rXt.rXt.rXtXtXtXt.r.rXt.rXt.r.r.r e.rXt eXg.bXz _Xz.bXzXzXz _XzXzXz.bXz _XzXzXzXz.bXz _XzXzXz.b.bXg.bXzXz.b _.b.o.cXg.c.c.c.c.o _.V _.VXg.V.V.c.V _Xz.V.bXz.b.bXzXz.b.bXz.b N ~X-XI $ 1X7.i t aX1.e.e.e a.eXIX-.~.~ a.uX- a.e a.e a a.a.} EX,", +".r.r e.r ~.k.X N.rXtXt.r.r.r.r.r.r.rX*.k.rXt.u.r.r.r.r.r.r.rXtXt ~Xt.k ~Xt.rXt.rX*.r.r ~ ~.r.XXtXt.r.r.r.k.kXd.bX P.7X .A.A.R.&.( Q D.3Xr M.s oXpXZXh.SXw x 3 R.eXc 3 T ` T R.e.e aX- a.eX-.e a R <.e.e.}X* #X3.iXeXpXpX4..Xe.m.W.).s %.YXeXDX-X-.`.8XVXtXt.r.bXdXj.^ N.b N.b.b.b.bXz.bXz _.bXz _XzXzXz.b.bXzXz _.b.cXzXz.bXzXz _Xz _XzXz _XzXz _XzXz _XzXzXz _Xz _XzXzXg.o.bXzXz _Xz _.o.V.b _XgXzXzXzXzXzXz.^ e e.r.r.r.r.r N.r.r e.r.r e.r.r e.r.r.r e ~ e.r.r.r e.r e.^Xz.^.bXzXg.^XzXz N.bXzXz.^.^ e.r ~ F ~.rXj.^.b.^XzXzXzXz.^Xz.^ _.bXzXzXzXzXzXz.V.o.o.o.VXgXg.VXg.VXgXgXg.c.V.o.VXg.c.#.o.b _XzXz _XzXz _XzXzXzXzXz.b.^ e.r.r.r ~.8.`.~.` 3X1X-XI.~.~.`.`X-.`.`.`.` F.8 ~XtXj N.^.b.^.b.bXz N.b.U.b.b.b.bXz.^.^.r.r.r.r eXt.r eXj.^.o.c.c.V.c.c.cXg.U.U.c.o _.b.b.b.bXj eXt.r ~.r ~.r.r.r.rXt e e.r e e eXz l.^.b.b.^XzXz _XzXzXzXz _Xz _ _.b.b _ _Xz.# _XzXz _.U.U _Xz _XzXzXz _XzXz.b _Xz.b _.b.bXz.b _Xz.b _Xz.bXz.c.b _Xz.b _Xz _ _Xz _.b.^ e e.r.r.r eXt.r e.r eXtXj.r N ~Xt.rXtXtXtXt.rXt.rXtXtXt.rXt.rXt.r.r.r.rXt e.r e NXgXz.bXz.bXz _Xz _XzXz.b.bXzXz.bXzXz _XzXz _XzXzXzXzXzXg.b.bXzXzXz _ _.V.c.c.V.c.c.V.o _.V _.V.c.c.oXgXzXz.^.b e.^Xz.b.^.oXz.^.^.^ ~.8.a a.-., [Xp.i $Xl.u 3XIX, $XI.e 3.~.~X-X- a a.e < < E h U.i U", +".r.r.rXt.r ~.r ~.r.r.r.r.rXt.r.r.rXt ~.r N.r.r.r.r.r.rXtX*.rXt.r.k ~ ~.rX* ~.r.r.r.r.r ~ ~.r.^.K ~.k.^.XXxXk l./X@.oXkXxXg.k NXx.U.kXx.9._ 2.)Xr =Xh.S.,Xc.i xXl 3Xl DXD.a.e t.a R a.e.e.e.eX-.e.e 3XX.eXI.u hX3 m E < <XeXnXrXhXrXrXp y.W tX-.H.8.8 ~.u.K ).X.X NXzXj.b.bXz.b.b.b _.b.b.bXz.bXz.b _.b.bXz _XzXz.bXz.UXzXz _Xz.bXz _XzXzXzXzXz _XzXzXzXz.b.bXz.bXzXz.bXzXg.o.bXzXzXzXzXzXzXz.^XzXz.^Xz.oXzXzXzXzXj e e.r e.r.r N e.r.r.r.r.r.r.r.r.r e ~.r.r.r.r.r.r.rXtXt.^ N NXz.^XgXj.^.^.^.^XzXz.b.^Xj e ~ ~.r e.^ NXz.^XzXz NXzXzXz.^ _XzXzXz.^.^ _.V.o.oXg.V.o.cXg.V.o.o.o.c.o.cXg.V.cXg.c.#.o _XzXzXzXzXzXzXzXzXzXzXzXzXzXz e.rX*.r.H F F.`.~ 3.` a.8.~.`.`X-.` F.8.8.8 ~.rXt.^ N.b.^.bXzXzXzXz.b.bXg.^Xz _XzXz.bXzXj.rXt.r.rXt.r eXjXz.V.c.c.V.c.c.c.c. .c.c.o _.b _.b.b.^Xt e.r.rXt.r.r.r.r.rXtXt e e eXj eXz l.^.o.b.b.oXz.b.b.b _.b.b _Xz.b.o.#Xz _.bXzXz _Xz.o.U.c _XzXzXz _ _Xz _ _XzXz _Xz _Xz _ _.b _Xz _.b _.b.b.U.b.oXz _ _ _Xz _Xz.bXzXz e e eXj e.r.rXt.r.r.r.r.r.^.^XjXtXj.r.r.rXtXt.rXt.rXt.rXt.rXtXt.rXt.r e e.r eXj.c.o.^.bXz _XzXz.bXz.bXzXz.bXz.bXz.bXzXzXz _Xz _ _XzXzXz.U.bXzXz _ _Xz _.o.c.c.c.VXgXg.V.c.c _.oXg.c.V.VXz.^XzXz.rXjXj.^.^.^.^XjXtXt.8.`X- XM x x.YXMX5 T 1 `Xl `., `.,XKXM.}.a.e a < U.}.m.}.m.iXq >", +".r.r ~.rXt.r.rXt.r.r.r.rXt.r e.r.r.r.k ~.X.rXtXt.u.k.r.k.r.^Xo.X.r N.5Xx.r )X9X9 ) q.5 q ) ).&.A (.&.R Q.I.t qX@.^.b.b.bXt.^ N.X.bXtXI.MXG.).s.s o.+.[XB k m :Xc c.~.e 3X- BX-.e.e R R.eX-.e.e.~ B.aXK.u 3XIXMXcXhX# ` h a <.gXhX5 YXh.9.,.0.$ IXx I.$ D 5.%X@ P.(.6.X.b NXz.o.b.b.b.b.bXz.bXz.b.b _XzXz _.b.b _.bXz lXz.b.b.bXzXz.bXz _XzXzXz _Xz _Xz _XzXz.b.bXzXz _.b.oXg.bXzXzXz _ e.oXz.b.b.bXzXzXzXzXzXzXz.^XjXj e.r.r.r N.r e.r.r.r.r.r.r.r.r.r.r.r e.r.r e.r.r eXj.^ NXz.^.kXz eXt e e.rXj.^Xz N.^XjXj.r eXj.^XzXzXzXzXzXzXz.^XzXzXzXzXzXzXz _.oXg.V.V.V.o.o.VXg.o.VXgXg.V _.oXgXgXg.V.c.U.o.o.bXzXzXzXzXzXzXzXzXzXzXzXzXz.^ eXt.r.r.H F F.`.rX-.`.`.~.`.`.`.8.8.8 ~.r.r.^Xj.b.^Xz.bXz.bXzXzXz.b.o.X.^Xz.^XzXzXz.bXj eXt.r eXtXtXj.^.oXg.c.V.V.U.V.cXg.I.c.c _ _Xz.b.b.b.^ eXt eXtXt.r eXt.r.r eXt eXj.^.^Xz.o lXz.b.^Xz.b.b.b _ _.bXzXz.bXzXz.V.#Xz _ _ _Xz.o _.o.UXgXzXzXz _XzXzXzXzXzXz _XzXz.b _Xz.b _Xz _.b.b.b _ _ lXz _Xz _ _XzXzXz _XzXzXz.^.^.^.^XjXt.r eXtXt e.rXt.k.^ ~.r.rXtXjXt.r.r eXt e.r e.r e.r eXt.r.r e.rXj.^.^.c.o.^ _XzXzXzXz _XzXz.b.bXzXzXz.b _XzXzXz _ _XzXz _Xz.o.o.bXz.bXzXzXz.V.o.c.V.c.V.c.V.V.c.c _ _.V.c.oXzXzXj.b e e.r e eXj e e.rXt.8.8.a a 1 $ E h.e a t a a.e.} 1 h.M hXDXD.a t <.} h E EXe xXpXB $ <", +" e.rXt ~.rXt ~Xt.r.r.r.r.r.r.r.rXt.r ~.r.k.k q qXkXx.f q.A ).& qX9./ 5.$X* q.$ q I.$.KXx ) q ) qXkXk q l.z.z.U l.b.o.b.^.b N.o N.oXt.HXDXn..X=.WXG MXH .- xXlXDXI R.~XI.eX-X- RX- m.eX-.e.e a.e.e.~.eX-.u R c # |XMXB V 3X-.u.K.H ` ) `X3 : 'XoXxXx.XXXX9.$X9.zX@XkXz.b.b.o.bXz.b.b.b.b.bXz.b.b.b.b.b.b.bXz.b.b.b.^.c.bXz.bXzXzXz.b _XzXz _XzXz _Xz _.bXzXzXzXz _Xz.b.b.bXg.bXzXzXzXzXz.^Xz.^.^.bXz.^XzXz.b.b.^Xz.^XdXt.r.r.r NXtXt.r.r e.r e.r.r.r.r.r.r.r.r.r.r.r.r.rXtXj.^XjXt e.^.r e.r.r.r eXj.^Xz NXz.k e e e.^Xz.bXzXzXzXzXz.^XzXd.bXzXzXz _.o.o.o.V.o.o.o.oXgXg.VXg.o.V _Xz _ _.V.cXg.c.U.V.o.VXz _XzXzXzXz _XzXzXzXzXzXzXz.^.r.r.r.r F.`.` 3.`.`.~.`.`.`.` F F ~ ~ e.^Xz.^.bXzXz.bXzXzXzXz.^XzXg.o N.b _Xz _Xz.bXj.r e.rXt.rXjXj.b.V.V.V.V.c.c.c.c.c.#.V.VXz _XzXzXz N N e.r.r.rXj.rXt.r.rXt.r.r e.^.bXz.bXg.oXz.^ eXjXzXzXzXzXz _Xz.c.V.bXzXz.o _XzXzXzXzXz.o.o.# _ _XzXzXzXzXzXzXz _XzXzXz _Xz.bXzXz _XzXzXz _.bXzXg.VXzXzXzXz _Xz _XzXz.bXzXz.bXz.^XzXj.r.rXt e.rXtXtXj.z.zXkXjXjXt e.r e.r e.r.rXt.r.r.r.r.rXt eXt e.^Xz.bXzXgXz _ _XzXzXz.bXz.bXzXzXz _XzXz _Xz _Xz.b _Xz.bXzXzXz.U.bXz.^.VXzXz _.V.c.V.c.c.cXg.c.c.c.V.V.o.V.o.bXz.bXj.^.rXt.r.r.r e ~ e.r.r.` 3 aX, h h h h <.e.a a < < <.} t a < t a.e.a E E.l.Y.[X% `.-X- R", +" ~.k.r.rXt ~X* ~Xt.r.r.r.rXt.r.rXt.8.k.rXt q.$./ ) )XxXxX9.XXXX9Xx.5.k.K.^.KX*X*.uXtXt.r.r.r.8.^Xt.^Xd.XXjXz.^.bXz.bXzXz.b.bXz.bXz.r.` U v.N...sX>.+XwX3.l.} R RX,.e RXI.a.e a a.a Y.,XK :.~.e.~ R.e.~X-X-XD.a # k kX*XM V.uX9.5XIXV.~X-.~.`.~.` F.` ~X* ~X*.rXj.z.b.b.b N.b.b.b.b.b.b.b.b.b N.bXz.b.b.b.b _XzXz _XzXg.oXzXz.bXzXz _Xz _XzXzXzXz _XzXzXz.b.^XzXzXz _Xz _.b l.bXz.bXzXz.bXz.b.b.b.^XzXzXzXzXzXzXz.b.^Xz.k eXt.r.^.k.r.r.r.r.r.r.r e.r.r e.r.r e.r e.r.r.r.r.r e.r e.r.^.rXtXtXtXt.r e.k.^.^XzXz.^ e.^.^XzXz.bXzXz.^XzXzXz.^Xz.bXz.b.o.c.V.o.o.V.V.VXg.VXg.VXg.V.oXzXz _XzXz.VXg.c.UXg.c.oXzXz _Xz _XzXzXzXz _XzXzXzXzXz.kXt.r e.r ~ FX*X-.aX-.`.`.` F.8 ~.r e.^Xz.^XzXzXzXz.^XzXzXz _XzXz.o.b.bXzXzXzXzXzXzXd e.r e.r eXj.^.oXg.c.c.V.c.c.c.cXg.UXz _Xz _Xz.b.bXz.bXjXtXtXt.r.rXt eXtXt.r eXj.^Xz.b.^Xg.b.^Xj e e.^ _ _Xz.b.b.o.I.#.VXzXz _ _ _Xz.o _XzXg.c.UXzXzXz _XzXz _Xz _.b.b.b.bXz.b.b.bXz.b.b.bXz.o.bXz l.b _XzXz _Xz _Xz _Xz _XzXzXzXz.^.^Xt.r.r e.rXtXt.rXjXk.zXk.k ~Xj.rXtXtXtXt e e.r e.r e.r e.r e.rXj.b.b.bXzXzXzXz _XzXzXzXz _XzXzXz _XzXzXzXz.bXz.bXz _.bXzXz.b.b.c.b _Xz.V.o _ _.c.V.c.c.c.cXgXg.V.c.V.c.V.o.oXzXz.^.^.k.r.rXt.r eXt e.r.r.r.8.a #XB.i h.F a a.e.a.e UX,.d x U h UX, U U hXn X%.S [XB.K c cX-.`", +"Xt.r.rXt ~Xt ~X*.r.r.r.r.rXt.r.r.rXt.r ~.r N.r.u.r.r.u.r.r.8XtXV.rXV.r.kXXXx.5.5XxXXX*XVX*XV.k.kXoXt.^ N.XXz.bXz _Xz.o.^Xz.b.^.o.^.kX-X, v p.N 2Xm M nXBXX.}X-XDX- c.~.eXD.e.eX-X, m # D `.eX-.e.~.~X-.e BXD.e $ } kXM : ).8X*.r.KXV.8X-XI.~.`.` ~.8Xt ~Xt eXt.b l N.b.b.b.o.o.b.o.b.b.b.b.b.bXz.b.o.o.o.o.b _Xz.bXz.oXg.bXz.b.bXzXz.bXz _Xz _XzXzXzXz.bXzXzXzXz.bXz.b.b.b lXz.bXzXzXz.bXzXz.bXzXz.b.bXz.bXz.bXz.b.^.b.^.r.r.r.^XtXt.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r NXt.r.r.r.r.rXtXtXt.^.^.^Xz.^Xz.b.^Xz.^Xz.bXzXzXzXzXz.o.b.b.V.o.VXg.V _.oXgXg.VXg.oXg.cXgXgXzXzXzXzXz.VXg.c.UXg.V.o.b _XzXzXzXz _XzXzXzXzXzXzXz.bXzXjXt.r e.r.8X*.`.8X-.` F.8 F F.rXj.^.^XzXzXz e e e e.bXzXzXzXz.b.o.b.b.bXzXz.bXzXzXz e.r.r eXj.^.bXg.c.V.c.c.V.c.c.c.o.cXz _Xz.o.b.b.bXz.bXt eXt eXt.rXtXtXt e.r e.^ N.b.^ e.bXj e.rXt e eXz _.b _XzXz.#. XzXzXzXzXz.b.oXg _.b _.U.oXz _XzXzXzXzXzXzXz.bXz.bXz.bXz.bXzXzXz.b.bXz _.bXz.UXz.bXz.b.b.b.bXz.bXzXz.b.bXz.^.bXj e.rXtXtXt.r eXt.k.b.X.X.^.r e.rXj.k.^XjXtXt.r e.r.r e.r.r e.rXj.^Xz.^Xz _.b.bXzXzXzXzXzXzXzXzXzXzXzXzXz.b _XzXz.b.b.b.b.b.b.o.o _XzXz.c.U.c.o.c.V.c.V.c.V.V.o.V.c _.c.o.o _Xz.bXj.bXt.r.r.r.r e ~Xt.r.r.8 3 a :Xq.l.F < a a.a.M h U h._.i E h EXe n xX%.g.p [.} 3XI.a.`.8.`.8", +".r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.k N.r.rXt.r.r.r.u.rXt.rXtXt.k.5XX )X3 qX3X*.r.r ~Xt.r.bXz.^Xz.bXzXz.^XzXzXzXz.b.b.b.b N.r.` h.' J.@ M.@ HX<X+XBX,.a.aXIXI 3.aXI.~X-.~XIXl.e.e.~.eX-.~.e $ RX-.eXD a.a #Xc.3 V V.`.a.8X*.K.K.~ ~.K.` ~.`.r.rXt.k.r.^ NXg.o.b.^.b.b.b.b.b.b.b.o.o.b.b.b.b.o.c.c.o.b.b.b.bXz.o lXzXzXz.b.b.bXz.b.bXz.b.bXzXz.bXzXz.bXz.b.bXzXzXzXz l.b.bXz.b.bXz.b.^.b.bXzXzXzXzXzXzXz.^Xz.b.^.bXd eXtXt.kXt ~.rXt.r.r.r.r.r.r.r.r.r.r.r.u.rXt ~ F F ~.r ~Xt N.r.r.r.r.r.r.r.rXt.rXtXtXt.^.^.^Xz.^XzXzXzXzXzXzXz.bXg.VXg.o.o.o.o _ _.o _.o.o.VXg.V.oXg.V.o.bXzXzXzXzXg.c.cXgXg.o.oXzXzXz.bXzXzXzXz.bXzXzXzXz.b NXz.^XjXt e.r.k.8.8.8.8 ~ ~.r e.k.^.^ NXz.^ e eXt ~ e.^.bXz.bXzXz l.^.bXz.bXzXzXz.^.^Xj e.r eXj.bXgXg.cXg.c.VXg.c.c.b.b.oXz.bXz _.bXz.b NXzXj e.r e.r e.r.rXtXt.rXt N.bXj eXt.b ~Xt eXt e eXzXz.c.^ _Xz.oXg.bXz.b.b.^XzXgXg.o.b.o.U.b.o.bXzXzXzXz.bXzXzXz.bXz.^.bXz.bXzXzXzXz.^.bXzXz.bXgXz.bXz.bXz.bXz.bXz.bXzXzXz.bXz.^.r.rXt.rXt.rXtXt.r N.r.r.rXt.rXtXtXt.IXgXk.z.z.^.r e.r.rXt e.r e e eXz.^Xg.^.^.bXz.b.bXz.b.bXzXzXz.bXzXzXzXzXz.b.bXzXz.b.o.^.b.U.^Xz _.bXg.c.UXg.V.c.c.c.c.cXg.V.V.V.o.o.V.o.oXz.^.oXj e e.r.r.r eXt e.r ~.`XI 3 1.i $ < t < U E.i U.iXqXB Xp 1.-.[.YXBXB hX*X*.K.K N.KXtXt", +".r.r.r.rXV.r.r.r.r.rXV.r.r.r.r.r.rXt ~Xt.rX*XoXt.r.u.r.u.r.r.u.r.r.r.rXt.uX*X*X* 3 c ~.uX*.rXV e.X.b NXz.^XzXz NXzXz NXzXzXz.b N NX*X-.uXO.T =.;XpX+ =X+ `.i.aXI 3 RXIXD 3.e.e.e.e.a.e.e.~.e a.e.~XlX3.e.e 3.e a.e cX3 ,X. V c.`X-.`.`.8.K.5.k ~ ~.^Xt.r.r.k N NXgXg.b.b.b.b N.b.o.oXgXgXgXgXg.oXgXg l lXg.o.b.bXz.b.bXgXz.bXz.bXzXz.bXzXz.bXzXz.bXzXzXz.bXzXzXz.b.^.bXz N l.b.b.^.b.^.b.^.b.^.bXzXzXzXzXz.^Xz.^ N.^ N.^.kXt.rXt.kXtXt.rXt.r.r.r.r.r.r.r.r.r.r.r.r.r.r ~.8 F.8.rXV.r NXV.r.r.rXV.r.r.r.r.uXt.rXt.r.k.^.^Xz.^.^.^XzXzXzXz _XgXgXgXgXgXgXgXgXgXg.oXg.oXg.oXgXgXg.o.o.b.bXzXz.b.o l lXgXg.oXg.oXg lXg.o.bXzXzXzXzXzXz.^.^Xz N N.^.^Xt.r.k.8.8.8 ~.r.rXt.^.^.b N N NXt ~.rXt.r e N.^.^Xz N.b l.b.XXz.^Xz.^Xz.bXz.^Xj eXj.^XgXg lXg.c l.c.cXgXg.b.b.b.b.b.b.b.b.b.b.b.^Xd.r.rXtXt.rXt.rXt.r.rXt.k.k.rXtXt N.rXtXtXtXt e.b.I AXgXz NXz.bXzXzXzXz.bXg lXg.bXz.oXk _Xg.XXzXz.bXzXzXzXzXzXzXzXzXzXz.b.b.b.^.bXz.b N.bXgXg.b.b.b.b.b.b.b.b.bXz.b.^Xz.^.^ eXtXt.r.r.r.r.rXtXt N.rXt.rXt.r.rXt.r NXt.k N N.k.r.rXt.r.r.r.r.r.r.rXdXj.X.b.b.bXzXzXzXzXzXzXzXzXz.^XzXz.^.b.^XzXz.^.b.^Xz.^.bXgXz.b.b.b.oXg.c lXgXgXgXgXgXgXgXgXgXg.V.oXgXg _.^.b.XXd.r.r ~ e.r.r e.r.r 3.8XI.}Xl h E.} u.} U EXe.l.FXq x h UX, xXcXc ` $ <.8 ~Xt.k.k.k.k.k", +".r.rXV.r.r.r.rXV.r.r.r.r.rXV.r.rXV.u.rXVXV.r.K.u.r.rXV.r.u.r.rXVXt.u.kX*.u.uXV 3XV.u 3 ~.u.rXt.k.X.X N N.^Xo N N N N N N N N N NXo ~X1 $ s.Z.WXLXnXw.[ n., $ $.~.aX1XI R.u cX,.~.~.e.e.~ a.e.~.~ a $ T.e.~.a R.e.e.e.u :., YXHXVX-.8.`.`XV.kX9.HX*.5.k.k.r.^.5 N.X.X.X N.X.b N.XX9XgXxXkXxXkXxXkXk lXxXgXkXxXg.XXg.X.X lXo.bXo N N N N N N N N N N N N N N N N N N N N N.^Xx N.X.^ N N N.^.^Xo N N N N N N N N N.^Xo NXo.KXtXt.k.kXtXV.r.u.r.rXV.r.rXV.r.rXV.r.rXV.rXVXV ~ 3.rXV.rXV.k.r.u.r.u.r.r.u.r.r.r.r.r.rXtXt.^Xo N N N.^Xo N N.^.X.X.o.XXg.XXg.XXg.XXg.XXgXxXgXxXgXxXg.XXxXg.X.XXg.XXx lXkXg.X.XXg.XXxXgXx.o.X N N N N N.^ N.^.^ N NXo N.kX*.k ~.uXV.uX*.k.k N N.5 N N.^Xt.r.r.r.r.rXtXt.k N.^ NXx.^ N N N N N N N N N NXt.k N.XXx.X.oXg.XXg.X.X.b N N.X.^.b N N N N N NXtXt.rXtXt.u.r.rXt.u.r.r.rXt.u.r.u.r.k.r.u.rXt.r.k N.I q.z N.b N.^Xo.^ N N.b.XXg.X.X N.bXk.XXx.o NXo.^ N N N N N N N N N N.b N N N.b N N N.b.X.X N N N N N N N N N N N N N N.k.r.r.r.u.r.r.r.r.uXt.k.rX*.r.r.r.rXt.rXt.r ~Xt.r.r.r.r.r.r.r.r.r.rXt.r.r.r.5.^Xo.^Xo N N N N N N N N N N N N N N N N N.X N N N.X.X.b N NXz NXgXxXgXxXgXx lXxXgXxXgXgXgXgXxXgXx.X N N NXt.r.r.r.u.rXt.r.r.H.8.` R.a ` h hX,X,.i xXqXB.9XM.M < a.a RX-X,XI.e.a.a a.~.`.`.8.8XVXV ~XV" +}; diff --git a/modules/CIAO/examples/Display/README.html b/modules/CIAO/examples/Display/README.html new file mode 100644 index 00000000000..e88e6f62ce5 --- /dev/null +++ b/modules/CIAO/examples/Display/README.html @@ -0,0 +1,181 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head><!--//$Id$ --> + <title>CIAO application</title></head> + + +<body alink="#0000ff" bgcolor="#ffffff" link="#000fff" text="#000000" vlink="#ff0f0f"> + +<h2>Display example README</h2> +<li>To download the code of this example please refer to the CVS repository at <code>$CIAO_ROOT/DAnCE/examples/Display</code>.</li> +<hr> + +<h2>Example Description</h2> + +<font face="Times New Roman" size="4">This example is an imaginary car +(software) instrument assembly which updates the display of +current coordination of the airplane periodically. It consists of +the following three components: +<ul> + <li>The <font face="Courier New">RateGen</font> component sends periodic + <font face="Courier New">Pulse</font> events to consumers according to the + rate specified in its attribute <font face="Courier New">Rate</font>, it + allows a client (CORBA client <font face="Courier New">controller</font>) to + start and stop the rate generating event.</li> + <li>The <font face="Courier New">GPS</font> component interacts with a GPS + hardware. When the <font face="Courier New">GPS</font> component receives + <font face="Courier New">Refresh</font> events from <font face="Courier New"> + RateGen</font>, it queries the GPS hardware and updates the internal cached + coordination (so that the current location can be read by accessing the + <font face="Courier New">MyLocation</font> interface) and generates an event + on its <font face="Courier New">Ready</font> port to inform the event + consumers that a new GPS reading is available. </li> + <li>The <font face="Courier New">NavDisplay</font> component displays the + current location of the vehicle on the windshield. When a + <font face="Courier New">NavDisplay</font> receives an event notifying the + availability of new data on its <font face="Courier New">Refresh</font> port, + it will acquire the current location of the vehicle by querying the interface + connected to the <font face="Courier New">GPSLocation</font> receptacle.</li> + <li>The <font face="Courier New">NavDisplayGUI</font> directory contains + implementations for a <font face="Courier New">NavDisplay</font> with + graphical interface. To use this graphical interface you need to install qt + libraries and have qt enabled (qt = 1) in your + <font face="Courier New">$ACE_ROOT/bin/MakeProjectCreator/config/global.features</font>. + In some Linux distributions qt is installed by default. There is a + non-commercial version of qt libraries for Windows + <a href="http://www.dre.vanderbilt.edu/%7Edengg/ITS/qt-win-noncommercial-msvc-3.2.1.exe"> + here</a> and more information about qt + <a href="http://www.trolltech.com/products/qt/index.html">here</a>. </li> + <li>If you just want to run the application, just go to the last section of + this page.</li> +</ul> +<hr> + +<h2>The files you will find.</h2> + + +<li>1. The interfaces, +data types and exceptions used by the components of this application are +specified in the +<a href="./Display_Base/Display_Base.idl"> <code> +HUDisplay.idl</code></a> file, placed in this example root directory ($CIAO_ROOT/examples/Display_Base). +This is a IDL2 file and uses the familiar CORBA data types. The lib generated +from HUDisplay.idl is linked to all the components of this example. <p></p> + +</li><li>2. mpc files for each of the components +are available in the components directories. We use the <a href="http://downloads.ociweb.com/MPC/MakeProjectCreator.pdf">MPC</a> +to generate makefiles and Visual C++ project/solutions files for +all <a href="http://www.cs.wustl.edu/%7Eschmidt/ACE.html">ACE</a>, +<a href="http://www.cs.wustl.edu/%7Eschmidt/TAO.html">TAO</a> and +<a href="http://www.cs.wustl.edu/%7Eschmidt/CIAO.html">CIAO</a> libraries. + +</li><li>3. idl and cidl files for each component are placed in components directory. </li> + +<li>4. The <code>_exec.h</code> and <code>_exec.cpp</code> files are the actual implementation of the components.</li> + +<li>5. The <code>NavDisplayGUI_exec</code> directory: +<font face="Times New Roman">The <code>NavDisplayGUI_exec.cpp</code> is just an executor version +for NavDisplay. In NavDisplayGUI_exec directory you'll find only the the +NavDisplayGUI_exec (and files for the GUI), which can be deployed with the +NavDisplay stub and servant. So, if you deploy the NavDisplay component +using NavDisplay_exec you'll be able to see the application running in the shell +you triggered the NodeDaemon, and if you deploy the NavDisplay component using +<code>NavDisplayGUI_exec</code> a graphical interface will show you a red dot moving over a +map according to the location being generated by GPS component when you start +the application. Notice that the <code>NavDisplayGUI.mpc</code> file includes <em>qt</em>, used for +graphical interface. You must give the right location of qt libraries in your mpc file.</font> +</li> + +<li>6. The <code>controller</code>: +<font face="Times New Roman">The <code>RateGen</code>component is started and stopped by the <code>controller</code>, a CORBA client application. +The <code>controller</code> source is in <code>RateGen</code> directory, so the <code>RateGen.mpc</code> file also +include instructions for the <code>controller</code> +build.</font> + +</li> + + + +<hr> + +<h3><font size="5">Make</font></h3> +<li>Go to the directory <code>$CIAO_ROOT/DAnCE/examples/Display</code> and do:<br> + <code>$ACE_ROOT/bin/mwc.pl</code> (use -type option if you are using a compiler/IDE other than gnuace -which by default generates GNU makefiles)</li> + <br>For example, using <code>$ACE_ROOT/bin/mwc.pl -type vc71</code> if you are using Visual C++ 7.1 IDE. + + +<hr> + +<h3><font size="5">Assemble</font></h3> +Now we can step forward to build the assembly. + +<li> In the descriptor subdirectory, you'll find a XML descriptor file that describes your <em>deployment plan</em>, the flattened_deploymentplan.cdp: + <dd> +This file declaratively specifies how the component assembly is +constructed. Specifically, it specifies the component types, component +instances, component connections and implementation artifact +descriptions. </dd> +<br> +</li><li> Please make sure that the Modified_Deployment.xsd and XMI.xsd files are in the +Display/descriptors directory. +The former file could be found in $CIAO_ROOT/docs/schema directory. +<br> + + +<br> +Note: Creating the deployment plan descriptor is a tedious and error-prone job, you can download <a href="http://www.dre.vanderbilt.edu/cosmic"> CoSMIC</a> to assist you in this step. +</li> + +<p> </p> + +<hr align="justify"> +<h3><font size="5">Run</font></h3> +Finally you are ready to test the application you have made. From different shells in <code>$CIAO_ROOT/DAnCE/examples/Display/descriptors/</code> directory: +<br><br> + +<ul> + <li> Start NodeManagers (NodeDameon) by running <code> basicNodeDaemons.pl </code> + + </li><li> Start the execution manager: + <code>$CIAO_ROOT/DAnCE/ExecutionManager/Execution_Manager -o EM.ior -i NodeManagerMap.dat </code> + The NodeManagerMap.dat file describes the deployment daemons CIAO's Execution_Manager + will contact to instantiate ComponentServer's, home's, and component + instances. Each line specify the name of a installation + "destination" and the corresponding IOR for + the CIAO_Daemon. For example, the NodeManagerMap.dat contains: + + AirFrameDevice corbaloc:iiop:localhost:10000/NodeManager + TimerDevice corbaloc:iiop:localhost:12000/NodeManager + + You can copy and modify the copy to deploy the components in various + different locations to let the application truely "distributed". + + Remember to start up the Execution_Manager using the + revised .dat file you created, and start up the CIAO_Daemon according to the specification. + + </li> + + <ul type="square"> <li> <em>NOTE</em>: As one can see, we use the "NodeManagerMap.dat" file to instruct the + Execution_Manager how to find the endpoint of each individual NodeManager (i.e., Node Daemon) where + component(s) will be deployed, so this is non-standard. We plan to use Naming Service to do this in the future. + </li></ul> + + <li> Start the plan_launcher: + <code> $CIAO_ROOT/DAnCE/Plan_Launcher/plan_launcher -p flattened_deploymentplan.cdp -k file://EM.ior </code> + + After this, components should be deployed successfully. + + </li><li> The Assembly_Manager is instructed to write the IOR of the RateGen + component to a file called "rategen.ior" in this + directory. You will then need to use a controller program in a + separate shell window to switch on/off the Rate Generator. + Go to the <em> $CIAO_ROOT/DAnCE/examples/Display/descriptor </em> directory and run the <code>$CIAO_ROOT/DAnCE/examples/Display/RateGen/controller + -o </code> to start the application. To stop the application run <code>$CIAO_ROOT/DAnCE/examples/Display/RateGen/controller + -f </code> + </li> +</ul> + + + +<hr> +<b>Email: </b><a href="mailto:"></a><address>ciao-users@cse.wustl.edu</address> +</body></html> diff --git a/modules/CIAO/examples/Display/RateGen/RateGen.idl b/modules/CIAO/examples/Display/RateGen/RateGen.idl new file mode 100644 index 00000000000..ef398f5df78 --- /dev/null +++ b/modules/CIAO/examples/Display/RateGen/RateGen.idl @@ -0,0 +1,34 @@ +// $Id$ + +/** + * @file RateGen.idl + * + * Definition of the RateGen (a rate generator) component. + * + * @author Nanbor Wang <nanbor@cs.wustl.edu> + */ + +#ifndef RATEGEN_IDL +#define RATEGEN_IDL + +#include "../Display_Base/Display_Base.idl" + +module HUDisplay +{ + component RateGen supports opmode + { + publishes tick Pulse; + + /// The attribute can be configured via the home or the + /// component property file. + attribute long hertz; + }; + + home RateGenHome manages RateGen + { + // Explicit operations + factory new_RateGen (in long hertz); + }; +}; + +#endif /* RATEGEN_IDL */ diff --git a/modules/CIAO/examples/Display/RateGen/RateGen.mpc b/modules/CIAO/examples/Display/RateGen/RateGen.mpc new file mode 100644 index 00000000000..2bf93df325c --- /dev/null +++ b/modules/CIAO/examples/Display/RateGen/RateGen.mpc @@ -0,0 +1,135 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -p Display_Base -u Display -c controller RateGen" + +project(Display_RateGen_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=RATEGEN_STUB_Export \ + -Wb,stub_export_include=RateGen_stub_export.h \ + -Wb,skel_export_macro=RATEGEN_SVNT_Export \ + -Wb,skel_export_include=RateGen_svnt_export.h \ + -Wb,exec_export_macro=RATEGEN_EXEC_Export \ + -Wb,exec_export_include=RateGen_exec_export.h + + IDL_Files { + RateGen.idl + } +} + +project(Display_RateGen_lem_gen) : ciaoidldefaults { + custom_only = 1 + after += Display_RateGen_idl_gen + idlflags += -Wb,export_macro=RATEGEN_EXEC_Export \ + -Wb,export_include=RateGen_exec_export.h \ + -SS + + IDL_Files { + RateGenE.idl + } +} + +project(Display_RateGen_stub) : ccm_stub { + libout = ../lib + libpaths += ../lib + after += Display_RateGen_idl_gen Display_Base_stub + libs += Display_Base_stub + + sharedname = RateGen_stub + dynamicflags = RATEGEN_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + RateGenC.cpp + } + + Header_Files { + RateGenC.h + RateGen_stub_export.h + } + + Inline_Files { + RateGenC.inl + } +} + +project(Display_RateGen_exec) : ciao_executor { + libout = ../lib + libpaths += ../lib + after += Display_RateGen_lem_gen Display_RateGen_stub + sharedname = RateGen_exec + libs += RateGen_stub Display_Base_stub + + dynamicflags = RATEGEN_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + RateGenEC.cpp + RateGen_exec.cpp + } + + Header_Files { + RateGenEC.h + RateGen_exec.h + RateGen_exec_export.h + } + + Inline_Files { + RateGenEC.inl + } +} + +project(Display_RateGen_svnt) : ciao_servant { + libout = ../lib + libpaths += ../lib + after += Display_Base_skel Display_RateGen_exec + sharedname = RateGen_svnt + libs += RateGen_exec \ + RateGen_stub \ + Display_Base_skel \ + Display_Base_stub + + dynamicflags = RATEGEN_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + RateGenS.cpp + RateGen_svnt.cpp + } + + Header_Files { + RateGenS.h + RateGen_svnt.h + RateGen_svnt_export.h + } + + Inline_Files { + RateGenS.inl + } +} + +project (Display_controller) : ccm_stub, valuetype { + libout = ../lib + libpaths += ../lib + exename = controller + after += Display_RateGen_stub + libs += RateGen_stub Display_Base_stub + + IDL_Files { + } + + Source_Files { + controller.cpp + } + + Header_Files { + } + + Inline_Files { + } +} + diff --git a/modules/CIAO/examples/Display/RateGen/RateGen_exec.cpp b/modules/CIAO/examples/Display/RateGen/RateGen_exec.cpp new file mode 100644 index 00000000000..abead406761 --- /dev/null +++ b/modules/CIAO/examples/Display/RateGen/RateGen_exec.cpp @@ -0,0 +1,289 @@ +// $Id$ + +#include "RateGen_exec.h" +#include "ace/Timer_Queue.h" +#include "ace/Reactor.h" + +//================================================================= + +MyImpl::Pulse_Handler::Pulse_Handler (MyImpl::RateGen_exec_i *cb) + : active_ (0), + done_ (0), + tid_ (0), + pulse_callback_ (cb) +{ + // Nothing + this->reactor (new ACE_Reactor); +} + +MyImpl::Pulse_Handler::~Pulse_Handler () +{ + delete this->reactor (); + this->reactor (0); +} + +int +MyImpl::Pulse_Handler::open_h () +{ + return this->activate (); +} + +int +MyImpl::Pulse_Handler::close_h () +{ + this->done_ = 1; + this->reactor ()->notify (); + + ACE_DEBUG ((LM_DEBUG, "Waiting\n")); + + return this->wait (); +} + +int +MyImpl::Pulse_Handler::start (CORBA::Long hertz) +{ + if (hertz == 0 || this->active_ != 0) // Not valid + { + return -1; + } + + long usec = 1000000 / hertz; + + this->tid_ = this->reactor ()->schedule_timer (this, + 0, + ACE_Time_Value (0, usec), + ACE_Time_Value (0, usec)); + + this->active_ = 1; + return 0; +} + +int +MyImpl::Pulse_Handler::stop (void) +{ + if (this->active_ == 0) // Not valid. + { + return -1; + } + + this->reactor ()->cancel_timer (this); + + this->active_ = 0; + return 0; +} + +int +MyImpl::Pulse_Handler::active (void) +{ + return this->active_; +} + +int +MyImpl::Pulse_Handler::handle_close (ACE_HANDLE handle, + ACE_Reactor_Mask close_mask) +{ + + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("[%x] handle = %d, close_mask = %d\n"), + this, + handle, + close_mask)); + + return 0; +} + +int +MyImpl::Pulse_Handler::handle_timeout (const ACE_Time_Value &, + const void *) +{ + this->pulse_callback_->pulse (); + +// ACE_DEBUG ((LM_DEBUG, +// ACE_TEXT ("[%x] with count #%05d timed out at %d.%d!\n"), +// this, +// tv.sec (), +// tv.usec ())); + + return 0; +} + +int +MyImpl::Pulse_Handler::svc (void) +{ + this->reactor ()->owner (ACE_OS::thr_self ()); + + while (!this->done_) + { + this->reactor ()->handle_events (); + } + + return 0; +} + +//================================================================= + +MyImpl::RateGen_exec_i::RateGen_exec_i () + : hertz_ (0), + pulser_ (this) +{ + +} + +MyImpl::RateGen_exec_i::RateGen_exec_i (CORBA::Long hz) + : hertz_ (hz), + pulser_ (this) +{ +} + +MyImpl::RateGen_exec_i::~RateGen_exec_i () +{ +} + +CORBA::Long +MyImpl::RateGen_exec_i::hertz () +{ + return this->hertz_; +} + +void +MyImpl::RateGen_exec_i::hertz (CORBA::Long hertz) +{ + this->hertz_ = hertz; +} + +// Operations from supported interface(s) + +void +MyImpl::RateGen_exec_i::start () +{ + if (this->hertz_ == 0 || this->pulser_.active()) + { + throw CORBA::BAD_INV_ORDER (); + } + + // @@ Start the rate generator + this->pulser_.start (this->hertz_); +} + +void +MyImpl::RateGen_exec_i::stop () +{ + if (! this->pulser_.active ()) + { + throw CORBA::BAD_INV_ORDER (); + } + + // @@ stop the rate generator + this->pulser_.stop (); +} + +CORBA::Boolean +MyImpl::RateGen_exec_i::active () +{ + return this->pulser_.active (); +} + +// Operations from Components::SessionComponent + +void +MyImpl::RateGen_exec_i::set_session_context ( + Components::SessionContext_ptr ctx + ) +{ + ACE_DEBUG ((LM_DEBUG, + "MyImpl::RateGen_exec_i::set_session_context\n")); + + this->context_ = + HUDisplay::CCM_RateGen_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + { + throw CORBA::INTERNAL (); + } + // Urm, we actually discard exceptions thown from this operation. + +} + +void +MyImpl::RateGen_exec_i::configuration_complete () +{ +} + +void +MyImpl::RateGen_exec_i::ccm_activate () +{ + ACE_DEBUG ((LM_DEBUG, + "MyImpl::RateGen_exec_i::ccm_activate\n")); + + this->pulser_.open_h (); +} + +void +MyImpl::RateGen_exec_i::ccm_passivate () +{ + ACE_DEBUG ((LM_DEBUG, + "MyImpl::RateGen_exec_i::ccm_passivate\n")); + + this->pulser_.close_h (); +} + +void +MyImpl::RateGen_exec_i::ccm_remove () +{ + ACE_DEBUG ((LM_DEBUG, + "MyImpl::RateGen_exec_i::ccm_remove\n")); +} + +void +MyImpl::RateGen_exec_i::pulse (void) +{ + try + { +// if (CIAO::debug_level () > 0) +// { +// ACE_DEBUG ((LM_DEBUG, +// ACE_TEXT ("Pushing HUDisplay::tick event!\n"))); +// } + + HUDisplay::tick_var ev = new OBV_HUDisplay::tick (); + + this->context_->push_Pulse (ev.in ()); + } + catch (const CORBA::Exception&) + { + // @@ do nothing? + } + +} + +MyImpl::RateGenHome_exec_i::RateGenHome_exec_i () +{ +} + +MyImpl::RateGenHome_exec_i::~RateGenHome_exec_i () +{ +} + +::Components::EnterpriseComponent_ptr +MyImpl::RateGenHome_exec_i::new_RateGen (CORBA::Long /* hertz */) +{ + Components::EnterpriseComponent_ptr tmp = 0; + ACE_NEW_THROW_EX (tmp, + MyImpl::RateGen_exec_i, + CORBA::NO_MEMORY ()); + + return tmp; +} + +::Components::EnterpriseComponent_ptr +MyImpl::RateGenHome_exec_i::create () +{ + return new MyImpl::RateGen_exec_i (); +} + + +extern "C" RATEGEN_EXEC_Export ::Components::HomeExecutorBase_ptr +createRateGenHome_Impl (void) +{ + return new MyImpl::RateGenHome_exec_i (); +} diff --git a/modules/CIAO/examples/Display/RateGen/RateGen_exec.h b/modules/CIAO/examples/Display/RateGen/RateGen_exec.h new file mode 100644 index 00000000000..438cbfbde1b --- /dev/null +++ b/modules/CIAO/examples/Display/RateGen/RateGen_exec.h @@ -0,0 +1,163 @@ +// $Id$ + +/** + * @file RateGen_exec.h + * + * Header file for the actualy RateGen and RateGenHome component + * implementation. + * + * @author Nanbor Wang <nanbor@cse.wustl.edu> + */ + +#ifndef RATEGEN_EXEC_H +#define RATEGEN_EXEC_H + +#include "RateGen_exec_export.h" +#include "RateGenEC.h" +#include "tao/LocalObject.h" +#include "ace/Thread_Manager.h" +#include "ace/Task.h" + +namespace MyImpl +{ + // Forward decl. + class RateGen_exec_i; + + /** + * @brief Active pulse generater + */ + class Pulse_Handler : public ACE_Task_Base + { + public: + // Default constructor + Pulse_Handler (RateGen_exec_i *cb); + ~Pulse_Handler (); + + int open_h (void); + + int close_h (void); + + int start (CORBA::Long hertz); + + int stop (void); + + int active (void); + + // Handle the timeout. + virtual int handle_timeout (const ACE_Time_Value &tv, + const void *arg); + + // Called when <Time_Handler> is removed. + virtual int handle_close (ACE_HANDLE handle, + ACE_Reactor_Mask close_mask); + + virtual int svc (void); + + private: + /// Tracking whether we are actively generating pulse or not. + long active_; + + /// Flag to indicate completion of this active object. + int done_; + + /// The timer id we are waiting. + long tid_; + + RateGen_exec_i *pulse_callback_; + + ACE_Thread_Manager thr_mgr_; + }; + + /** + * @class RateGen_exec_i + * + * RateGen executor implementation class. + */ + class RATEGEN_EXEC_Export RateGen_exec_i : + public virtual ::CIAO_HUDisplay_RateGen_Impl::RateGen_Exec, + public virtual ::CORBA::LocalObject + { + public: + /// Default constructor. + RateGen_exec_i (); + + /// Initialize with a default frequency. + RateGen_exec_i (CORBA::Long hz); + + /// Default destructor. + ~RateGen_exec_i (); + + // Attribute operations. + + virtual CORBA::Long hertz (); + + virtual void hertz (CORBA::Long hertz); + + // Operations from supported interface(s) + + virtual void start (); + + virtual void stop (); + + virtual CORBA::Boolean active (); + + // Operations from Components::SessionComponent + + virtual void set_session_context (Components::SessionContext_ptr ctx); + + virtual void configuration_complete (); + + virtual void ccm_activate (); + + virtual void ccm_passivate (); + + virtual void ccm_remove (); + + /// Helper function to be called back by Pulse_Handler + void pulse (void); + + protected: + /// Frequency + CORBA::Long hertz_; + + /// Copmponent specific context + HUDisplay::CCM_RateGen_Context_var context_; + + /// An active object that actually trigger the generation of + /// periodic events. + Pulse_Handler pulser_; + }; + + /** + * @class RateGenHome_exec_i + * + * RateGen home executor implementation class. + */ + class RATEGEN_EXEC_Export RateGenHome_exec_i : + public virtual HUDisplay::CCM_RateGenHome, + public virtual ::CORBA::LocalObject + { + public: + /// Default ctor. + RateGenHome_exec_i (); + + /// Default dtor. + ~RateGenHome_exec_i (); + + // Explicit home operations. + + virtual ::Components::EnterpriseComponent_ptr + new_RateGen (CORBA::Long hertz); + + // Implicit home operations. + + virtual ::Components::EnterpriseComponent_ptr + create (); + }; + +} + +extern "C" RATEGEN_EXEC_Export ::Components::HomeExecutorBase_ptr +createRateGenHome_Impl (void); + +#endif /* RATEGEN_EXEC_H */ diff --git a/modules/CIAO/examples/Display/RateGen/controller.cpp b/modules/CIAO/examples/Display/RateGen/controller.cpp new file mode 100644 index 00000000000..0eb9394eaee --- /dev/null +++ b/modules/CIAO/examples/Display/RateGen/controller.cpp @@ -0,0 +1,121 @@ +// $Id$ + +#include "RateGenC.h" +#include "ace/streams.h" +#include "ace/Get_Opt.h" + +/** + * @file controller.cpp + * + * This program interact with a RateGen component, using its supported + * interface "opmode" to switch it on/off, and set the rate of the + * RateGen. + */ + +const ACE_TCHAR *rategen_ior_ = 0; +int rate = 2; +int turn_on = 1; + +int +parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:r:of")); + int c; + + while ((c = get_opts ()) != -1) + { + switch (c) + { + case 'o': + turn_on = 1; + break; + case 'f': + turn_on = 0; + break; + case 'k': + rategen_ior_ = get_opts.opt_arg (); + break; + case 'r': + rate = ACE_OS::atoi (get_opts.opt_arg ()); + break; + case '?': // display help for use of the server. + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s\n" + "-o (Turn on the rate generator)\n" + "-f (Turn off the rate generator)\n" + "-k <RateGen IOR> (default is file://RateGen.ior)\n" + "-r <rate in hertz> (default is 3)\n" + "\n", + argv [0]), + -1); + break; + } + } + + if (rategen_ior_ == 0) + { + rategen_ior_ = ACE_TEXT("file://RateGen.ior"); + } + + if (rate == 0) + { + rate = 3; + } + + return 0; +} + +int +ACE_TMAIN (int argc, ACE_TCHAR *argv[]) +{ + try + { + // Initialize orb + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv); + + if (parse_args (argc, argv) != 0) + { + return -1; + } + + CORBA::Object_var obj = + orb->string_to_object (rategen_ior_); + + HUDisplay::RateGen_var pulser = + HUDisplay::RateGen::_narrow (obj.in ()); + + if (CORBA::is_nil (pulser.in ())) + { + ACE_ERROR_RETURN ((LM_ERROR, + "Unable to acquire 'RateGen' objref\n"), + -1); + } + + if (turn_on) + { + pulser->hertz (rate); + + ACE_DEBUG ((LM_DEBUG, "Start up the Rate Generator\n")); + + pulser->start (); + } + else + { + pulser->stop (); + + ACE_DEBUG ((LM_DEBUG, "Rate Generator stopped\n")); + } + + orb->destroy (); + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("Who is the culprit\n"); + cerr << "Uncaught CORBA exception" << endl; + return 1; + } + + return 0; +} diff --git a/modules/CIAO/examples/Display/descriptors/DeploymentPlan.cdp b/modules/CIAO/examples/Display/descriptors/DeploymentPlan.cdp new file mode 100644 index 00000000000..2ebfcbc5f3a --- /dev/null +++ b/modules/CIAO/examples/Display/descriptors/DeploymentPlan.cdp @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:DeploymentPlan + + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + + <label>Display Deployment Plan</label> + + <instance xmi:id="RateGen_Instance"> + <name>RateGen_Instance</name> + <node>RateGenNode</node> + </instance> + + <instance xmi:id="GPS_Instance"> + <name>GPS_Instance</name> + <node>GPSNode</node> + </instance> + + <instance xmi:id="NavDisplay_Instance"> + <name>NavDisplay_Instance</name> + <node>NavDisplayNode</node> + </instance> + +</Deployment:DeploymentPlan> diff --git a/modules/CIAO/examples/Display/descriptors/Modified_Deployment.xsd b/modules/CIAO/examples/Display/descriptors/Modified_Deployment.xsd new file mode 100644 index 00000000000..65f5eb81d1e --- /dev/null +++ b/modules/CIAO/examples/Display/descriptors/Modified_Deployment.xsd @@ -0,0 +1,826 @@ +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd" + xmlns:Deployment="http://www.omg.org/Deployment" + targetNamespace="http://www.omg.org/Deployment"> + + + <xsd:simpleType name="TCKind"> + <xsd:restriction base="xsd:NCName"> + <xsd:enumeration value="tk_null"/> + <xsd:enumeration value="tk_void"/> + <xsd:enumeration value="tk_short"/> + <xsd:enumeration value="tk_long"/> + <xsd:enumeration value="tk_ushort"/> + <xsd:enumeration value="tk_ulong"/> + <xsd:enumeration value="tk_float"/> + <xsd:enumeration value="tk_double"/> + <xsd:enumeration value="tk_boolean"/> + <xsd:enumeration value="tk_char"/> + <xsd:enumeration value="tk_octet"/> + <xsd:enumeration value="tk_any"/> + <xsd:enumeration value="tk_TypeCode"/> + <xsd:enumeration value="tk_Principal"/> + <xsd:enumeration value="tk_objref"/> + <xsd:enumeration value="tk_struct"/> + <xsd:enumeration value="tk_union"/> + <xsd:enumeration value="tk_enum"/> + <xsd:enumeration value="tk_string"/> + <xsd:enumeration value="tk_sequence"/> + <xsd:enumeration value="tk_array"/> + <xsd:enumeration value="tk_alias"/> + <xsd:enumeration value="tk_except"/> + <xsd:enumeration value="tk_longlong"/> + <xsd:enumeration value="tk_ulonglong"/> + <xsd:enumeration value="tk_longdouble"/> + <xsd:enumeration value="tk_wchar"/> + <xsd:enumeration value="tk_wstring"/> + <xsd:enumeration value="tk_wfixed"/> + <xsd:enumeration value="tk_value"/> + <xsd:enumeration value="tk_value_box"/> + <xsd:enumeration value="tk_native"/> + <xsd:enumeration value="tk_abstract_interface"/> + <xsd:enumeration value="tk_local_interface"/> + <xsd:enumeration value="tk_component"/> + <xsd:enumeration value="tk_home"/> + <xsd:enumeration value="tk_event"/> + </xsd:restriction> + </xsd:simpleType> + + <xsd:complexType name="DataType"> + <xsd:choice> + <xsd:element name="kind" type="Deployment:TCKind"/> +<!-- +@@ not used, what for? + + <xsd:element name="enum" type="Deployment:EnumType"/> + <xsd:element name="objref" type="Deployment:ObjrefType"/> + <xsd:element name="boundedString" type="Deployment:BoundedStringType"/> + <xsd:element name="fixed" type="Deployment:FixedType"/> + <xsd:element name="array" type="Deployment:ArrayType"/> + <xsd:element name="sequence" type="Deployment:SequenceType"/> + <xsd:element name="alias" type="Deployment:AliasType"/> + <xsd:element name="struct" type="Deployment:StructType"/> + <xsd:element name="value" type="Deployment:ValueType"/> + <xsd:element name="union" type="Deployment:UnionType"/> +--> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="DataValue"> + <xsd:choice> + <xsd:element name="short" type="xsd:short"/> + <xsd:element name="long" type="xsd:int"/> + <xsd:element name="ushort" type="xsd:unsignedShort"/> + <xsd:element name="ulong" type="xsd:unsignedInt"/> + <xsd:element name="float" type="xsd:float"/> + <xsd:element name="double" type="xsd:double"/> + <xsd:element name="boolean" type="xsd:boolean"/> + <xsd:element name="octet" type="xsd:unsignedByte"/> + <!-- xsd:element name="opaque" type="xsd:base64Binary"/ --> + <xsd:element name="objref" type="xsd:string"/> + <xsd:element name="enum" type="xsd:string"/> + <xsd:element name="string" type="xsd:string"/> + <xsd:element name="longlong" type="xsd:long"/> + <xsd:element name="ulonglong" type="xsd:unsignedLong"/> + <xsd:element name="longdouble" type="xsd:double"/> + <xsd:element name="fixed" type="xsd:string"/> + +<!-- +@@ recursive + <xsd:element name="any" type="Deployment:Any"/> +--> + + <xsd:element name="typecode" type="Deployment:DataType"/> + +<!-- +@@ recursive + <xsd:element name="element" type="Deployment:DataValue"/> + <xsd:element name="discriminator" type="Deployment:DataValue"/> + <xsd:element name="value" type="Deployment:DataValue"/> + <xsd:element name="boxedValue" type="Deployment:DataValue"/> + <xsd:element name="member" type="Deployment:NamedValue"/> +--> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="Any"> + <xsd:sequence> + <xsd:element name="type" type="Deployment:DataType"/> + <xsd:element name="value" type="Deployment:DataValue"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="Property"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="value" type="Deployment:Any"/> + </xsd:sequence> + </xsd:complexType> + + +<!-- End of base definitions. --> + + <xsd:complexType name="Node"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="label" type="xsd:string"/> +<!-- +@@ recursive, not used + <xsd:element name="connection" type="Deployment:Interconnect"/> + <xsd:element name="sharedResource" type="Deployment:SharedResource"/> + <xsd:element name="resource" type="Deployment:Resource"/> +--> + </xsd:sequence> + </xsd:complexType> + + + <xsd:simpleType name="SatisfierPropertyKind"> + <xsd:restriction base="xsd:NCName"> + <xsd:enumeration value="Quantity"/> + <xsd:enumeration value="Capacity"/> + <xsd:enumeration value="Minimum"/> + <xsd:enumeration value="Maximum"/> + <xsd:enumeration value="Attribute"/> + <xsd:enumeration value="Selection"/> + </xsd:restriction> + </xsd:simpleType> + + + <xsd:complexType name="SatisfierProperty"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="kind" type="Deployment:SatisfierPropertyKind"/> + <xsd:element name="value" type="Deployment:Any"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="Resource"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="SharedResource"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="node" type="Deployment:Node"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="Domain"> + <xsd:sequence> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="sharedResource" type="Deployment:SharedResource" minOccurs="0"/> + <xsd:element name="node" type="Deployment:Node" maxOccurs="unbounded"/> +<!-- +@@ recursive, not used + <xsd:element name="interconnect" type="Deployment:Interconnect"/> + <xsd:element name="bridge" type="Deployment:Bridge"/> +--> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="Requirement"> + <xsd:sequence> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="property" type="Deployment:Property"/> + </xsd:sequence> + </xsd:complexType> + + +<!-- Deployment --> + + <xsd:complexType name="ResourceDeploymentDescription"> + <xsd:sequence> + <xsd:element name="requirementName" type="xsd:string"/> + <xsd:element name="resourceName" type="xsd:string"/> + <xsd:element name="resourceValue" type="Deployment:Any"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ArtifactDeploymentDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="node" type="xsd:string" minOccurs="0"/> + <xsd:element name="location" type="xsd:string" maxOccurs="unbounded"/> + <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="deployedResource" type="Deployment:ResourceDeploymentDescription" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:complexType> + + + <xsd:complexType name="MonolithicDeploymentDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="artifact" type="xsd:IDREF" maxOccurs="unbounded"/> <!-- ArtifactDeploymentDescription --> + <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:complexType> + + <xsd:simpleType name="ResourceUsageKind"> + <xsd:restriction base="xsd:NCName"> + <xsd:enumeration value="None"/> + <xsd:enumeration value="InstanceUsesResource"/> + <xsd:enumeration value="ResourceUsesInstance"/> + <xsd:enumeration value="PortUsesResource"/> + <xsd:enumeration value="ResourceUsesPort"/> + </xsd:restriction> + </xsd:simpleType> + + + <xsd:complexType name="InstanceResourceDeploymentDescription"> + <xsd:sequence> + <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/> + <xsd:element name="requirementName" type="xsd:string"/> + <xsd:element name="resourceName" type="xsd:string"/> + <xsd:element name="resourceValue" type="Deployment:Any"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="InstanceDeploymentDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="node" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="implementation" type="xsd:IDREF"/> <!-- MonolithicDeploymentDescription --> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="deployedResource" type="Deployment:InstanceResourceDeploymentDescription" minOccurs="0"/> + <xsd:element name="deployedSharedResource" type="Deployment:InstanceResourceDeploymentDescription" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:complexType> + + + <xsd:simpleType name="CCMComponentPortKind"> + <xsd:restriction base="xsd:NCName"> + <xsd:enumeration value="Facet"/> + <xsd:enumeration value="SimplexReceptacle"/> + <xsd:enumeration value="MultiplexReceptacle"/> + <xsd:enumeration value="EventEmitter"/> + <xsd:enumeration value="EventPublisher"/> + <xsd:enumeration value="EventConsumer"/> + </xsd:restriction> + </xsd:simpleType> + + + <xsd:complexType name="ComponentPortDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="specificType" type="xsd:string"/> + <xsd:element name="supportedType" type="xsd:string"/> + <xsd:element name="provider" type="xsd:string"/> + <xsd:element name="exclusiveProvider" type="xsd:string"/> + <xsd:element name="exclusiveUser" type="xsd:string"/> + <xsd:element name="optional" type="xsd:string"/> + <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ComponentPropertyDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="type" type="Deployment:DataType"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ComponentInterfaceDescription"> + <!-- @@mxiong: added minOccurs="0" maxOccurs="unbounded" + when adding config_handler support + for repoMan + --> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:sequence> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="specificType" type="xsd:string"/> + <xsd:element name="supportedType" type="xsd:string" maxOccurs="unbounded" /> + <xsd:element name="idlFile" type="xsd:string" minOccurs="0"/> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="port" type="Deployment:ComponentPortDescription" maxOccurs="unbounded"/> + <xsd:element name="property" type="Deployment:ComponentPropertyDescription" minOccurs="0"/> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + <xsd:element name="contentLocation" type="xsd:string"/> + </xsd:choice> + <!-- @@mxiong: added a href attribute + when adding config_handler support + for repoMan + --> + <xsd:attribute name="href" type="xsd:string" use="optional"/> + </xsd:complexType> + + + <xsd:complexType name="ComponentExternalPortEndpoint"> + <xsd:sequence> + <xsd:element name="portName" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="PlanSubcomponentPortEndpoint"> + <xsd:sequence> + <xsd:element name="portName" type="xsd:string"/> + <xsd:element name="provider" type="xsd:string" minOccurs="0"/> + <xsd:element name="kind" type="Deployment:CCMComponentPortKind"/> + <xsd:element name="instance" type="xsd:IDREF"/> <!-- InstanceDeploymentDescription --> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ExternalReferenceEndpoint"> + <xsd:sequence> + <xsd:element name="location" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ConnectionResourceDeploymentDescription"> + <xsd:sequence> + <xsd:element name="targetName" type="xsd:string"/> + <xsd:element name="requirementName" type="xsd:string"/> + <xsd:element name="resourceName" type="xsd:string"/> + <xsd:element name="resourceValue" type="Deployment:Any"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="PlanConnectionDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="source" type="xsd:string" minOccurs="0"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="internalEndpoint" type="Deployment:PlanSubcomponentPortEndpoint" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="deployedResource" type="Deployment:ConnectionResourceDeploymentDescription" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ImplementationDependency"> + <xsd:sequence> + <xsd:element name="requiredType" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="DeploymentPlan"> + <xsd:sequence> + <xsd:element name="label" type="xsd:string" minOccurs="0"/> + <xsd:element name="UUID" type="xsd:string" minOccurs="0"/> + <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription" minOccurs="0" maxOccurs="1"/> + <xsd:element name="implementation" type="Deployment:MonolithicDeploymentDescription" maxOccurs="unbounded" /> + <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="connection" type="Deployment:PlanConnectionDescription" minOccurs="0" maxOccurs="unbounded"/> + <!-- potentially recursive, not used + <xsd:element name="externalProperty" type="Deployment:PlanPropertyMapping"/> + --> + <xsd:element name="dependsOn" type="Deployment:ImplementationDependency" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="artifact" type="Deployment:ArtifactDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + + + + +<!-- Implementation --> + + + <xsd:complexType name="Capability"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="NamedImplementationArtifact"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <!-- @@ recursive NIA->IAD->NIA --> + <xsd:element name="referencedArtifact" type="Deployment:ImplementationArtifactDescription"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ImplementationArtifactDescription"> + <!-- @@mxiong: added minOccurs="0" maxOccurs="1" + when adding config_handler support + for repoMan + --> + <xsd:choice minOccurs="0" maxOccurs="1"> + <xsd:sequence> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + + <!-- @@ There probably should be only one location? --> + <xsd:element name="location" type="xsd:string" maxOccurs="unbounded"/> + <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="dependsOn" type="Deployment:NamedImplementationArtifact" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + <xsd:element name="contentLocation" type="xsd:string"/> + </xsd:choice> + <!-- @@mxiong: added a href attribute + when adding config_handler support + for repoMan + --> + <xsd:attribute name="href" type="xsd:string" use="optional"/> + </xsd:complexType> + + + <xsd:complexType name="ImplementationRequirement"> + <xsd:sequence> + <xsd:element name="resourceUsage" type="Deployment:ResourceUsageKind"/> + <xsd:element name="resourcePort" type="xsd:string"/> + <xsd:element name="componentPort" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="property" type="Deployment:Property"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="MonolithicImplementationDescription"> + <xsd:sequence> + <xsd:element name="execParameter" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="primaryArtifact" type="Deployment:NamedImplementationArtifact" maxOccurs="unbounded"/> + <xsd:element name="deployRequirement" type="Deployment:ImplementationRequirement" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="PackagedComponentImplementation"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <!-- @@ recursive CPD->PCI->CID->CAD->SID->CPD --> + <xsd:element name="referencedImplementation" type="Deployment:ComponentImplementationDescription"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ComponentPackageDescription"> + <!-- @@mxiong: added minOccurs="0" maxOccurs="1" + when adding config_handler support + for repoMan + --> + <xsd:choice minOccurs="0" maxOccurs="1"> + <xsd:sequence> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="realizes" type="Deployment:ComponentInterfaceDescription" minOccurs="0"/> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="implementation" type="Deployment:PackagedComponentImplementation"/> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + <xsd:element name="contentLocation" type="xsd:string"/> + </xsd:choice> + <!-- @@mxiong: added href + when adding config_handler support + for repoMan + --> + <xsd:attribute name="href" type="xsd:string" use="optional"/> + </xsd:complexType> + + + <xsd:complexType name="ComponentPackageReference"> + <xsd:sequence> + <xsd:element name="requiredUUID" type="xsd:string"/> + <xsd:element name="requiredName" type="xsd:string"/> + <xsd:element name="requiredType" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="SubcomponentInstantiationDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="package" type="Deployment:ComponentPackageDescription"/> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="selectRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="reference" type="Deployment:ComponentPackageReference" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:complexType> + + + <xsd:complexType name="SubcomponentPortEndpoint"> + <xsd:sequence> + <xsd:element name="portName" type="xsd:string"/> + <xsd:element name="instance" type="xsd:IDREF"/> <!-- SubcomponentInstantiationDescription --> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="AssemblyConnectionDescription"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="externalEndpoint" type="Deployment:ComponentExternalPortEndpoint" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="internalEndpoint" type="Deployment:SubcomponentPortEndpoint" minOccurs="0" maxOccurs="unbounded"/> + <xsd:element name="externalReference" type="Deployment:ExternalReferenceEndpoint" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="SubcomponentPropertyReference"> + <xsd:sequence> + <xsd:element name="propertyName" type="xsd:string"/> + <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="AssemblyPropertyMapping"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="externalName" type="xsd:string"/> + <xsd:element name="delegatesTo" type="Deployment:SubcomponentPropertyReference"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ComponentAssemblyDescription"> + <xsd:sequence> + <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription" maxOccurs="unbounded"/> + <xsd:element name="connection" type="Deployment:AssemblyConnectionDescription" maxOccurs="unbounded"/> + <xsd:element name="externalProperty" type="Deployment:AssemblyPropertyMapping" minOccurs="0"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="ComponentImplementationDescription"> + <!-- @@mxiong: added minOccurs="0" maxOccurs="unbounded" + when adding config_handler support + for repoMan + --> + <xsd:choice minOccurs="0" maxOccurs="1"> + <xsd:sequence> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> + <xsd:element name="implements" type="Deployment:ComponentInterfaceDescription" minOccurs="0"/> + <xsd:choice> + <xsd:element name="assemblyImpl" type="Deployment:ComponentAssemblyDescription"/> + <xsd:element name="monolithicImpl" type="Deployment:MonolithicImplementationDescription"/> + </xsd:choice> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/> + <xsd:element name="capability" type="Deployment:Capability" minOccurs="0"/> + <xsd:element name="dependsOn" type="Deployment:ImplementationDependency" minOccurs="0"/> + <xsd:element name="infoProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + <xsd:element name="contentLocation" type="xsd:string"/> + </xsd:choice> + <!-- @@mxiong: added href + when adding config_handler support + for repoMan + --> + <xsd:attribute name="href" type="xsd:string" use="optional"/> + </xsd:complexType> + + +<!-- Package --> + + + <xsd:complexType name="PackageConfiguration"> + <xsd:choice> + <xsd:sequence> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="UUID" type="xsd:string"/> +<!-- +@@ recursive, not used + <xsd:element name="specializedConfig" type="Deployment:PackageConfiguration"/> +--> + + <xsd:element name="basePackage" type="Deployment:ComponentPackageDescription"/> + <xsd:element name="reference" type="Deployment:ComponentPackageReference" minOccurs="0"/> + <xsd:element name="selectRequirement" type="Deployment:Requirement" minOccurs="0"/> + <xsd:element name="configProperty" type="Deployment:Property" minOccurs="0"/> + </xsd:sequence> + <xsd:element name="contentLocation" type="xsd:string"/> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="TopLevelPackageDescription"> + <xsd:sequence> + <xsd:element name="package" type="Deployment:PackageConfiguration" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + + +<!-- Top-level elements. --> + + + <xsd:element name="domain" type="Deployment:Domain"/> + <xsd:element name="deploymentPlan" type="Deployment:DeploymentPlan"/> + <xsd:element name="implementationArtifactDescription" type="Deployment:ImplementationArtifactDescription" /> + <xsd:element name="componentInterfaceDescription" type="Deployment:ComponentInterfaceDescription"/> + <xsd:element name="componentImplementationDescription" type="Deployment:ComponentImplementationDescription"/> + <xsd:element name="componentPackageDescription" type="Deployment:ComponentPackageDescription"/> + <xsd:element name="packageConfiguration" type="Deployment:PackageConfiguration"/> + <xsd:element name="topLevelPackageDescription" type="Deployment:TopLevelPackageDescription"/> + + + +<!-- VAULT + +Place for strange things. Nobody knows what they are for... + +--> + +<!-- + + <xsd:complexType name="EnumType"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="member" type="xsd:string" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + + <xsd:complexType name="ObjrefType"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + </xsd:sequence> + </xsd:complexType> + + + <xsd:complexType name="BoundedStringType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="bound" type="xsd:string"/> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="FixedType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="digits" type="xsd:string"/> + <xsd:element name="scale" type="xsd:string"/> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="ArrayType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="length" type="xsd:string"/> + <xsd:element name="elementType" type="Deployment:DataType"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="SequenceType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="bound" type="xsd:string"/> + <xsd:element name="elementType" type="Deployment:DataType"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="AliasType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="elementType" type="Deployment:DataType"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="StructType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="member" type="Deployment:StructMemberType"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="StructMemberType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="type" type="Deployment:DataType"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="ValueType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="modifier" type="xsd:string"/> + <xsd:element name="baseType" type="Deployment:DataType"/> + <xsd:element name="member" type="Deployment:ValueMemberType"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="ValueMemberType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="visibility" type="xsd:string"/> + <xsd:element name="type" type="Deployment:DataType"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="UnionType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="typeId" type="xsd:string"/> + <xsd:element name="default" type="Deployment:UnionMemberType"/> + <xsd:element name="discriminatorType" type="Deployment:DataType"/> + <xsd:element name="member" type="Deployment:UnionMemberType"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="UnionMemberType"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="type" type="Deployment:DataType"/> + <xsd:element name="label" type="Deployment:DataValue"/> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="NamedValue"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="value" type="Deployment:DataValue"/> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="Bridge"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="connect" type="Deployment:Interconnect"/> + <xsd:element name="resource" type="Deployment:Resource"/> + </xsd:sequence> + </xsd:complexType> + + <xsd:complexType name="Interconnect"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="label" type="xsd:string"/> + <xsd:element name="connection" type="Deployment:Bridge"/> + <xsd:element name="connect" type="Deployment:Node"/> + <xsd:element name="resource" type="Deployment:Resource"/> + </xsd:choice> + </xsd:complexType> + + <xsd:complexType name="PlanPropertyMapping"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="source" type="xsd:string"/> + <xsd:element name="externalName" type="xsd:string"/> + <xsd:element name="delegatesTo" type="Deployment:PlanSubcomponentPropertyReference"/> + </xsd:choice> + </xsd:complexType> + + + <xsd:complexType name="PlanSubcomponentPropertyReference"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="propertyName" type="xsd:string"/> + <xsd:element name="instance" type="Deployment:InstanceDeploymentDescription"/> + </xsd:choice> + </xsd:complexType> + +--> + +<!-- + + This type is not referenced anywhere. + + <xsd:complexType name="RequirementSatisfier"> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="resourceType" type="xsd:string"/> + <xsd:element name="property" type="Deployment:SatisfierProperty"/> + </xsd:choice> + </xsd:complexType> + +--> + +</xsd:schema> diff --git a/modules/CIAO/examples/Display/descriptors/NodeManagerMap.dat b/modules/CIAO/examples/Display/descriptors/NodeManagerMap.dat new file mode 100644 index 00000000000..ac5c9a6486d --- /dev/null +++ b/modules/CIAO/examples/Display/descriptors/NodeManagerMap.dat @@ -0,0 +1,2 @@ +AirFrameDevice corbaloc:iiop:localhost:10001/NodeManager +TimerDevice corbaloc:iiop:localhost:20001/NodeManager
\ No newline at end of file diff --git a/modules/CIAO/examples/Display/descriptors/XMI.xsd b/modules/CIAO/examples/Display/descriptors/XMI.xsd new file mode 100644 index 00000000000..f4adac91934 --- /dev/null +++ b/modules/CIAO/examples/Display/descriptors/XMI.xsd @@ -0,0 +1,35 @@ +<?xml version="1.0" ?> +<xsd:schema targetNamespace="http://www.omg.org/XMI" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation='http://www.w3.org/2001/XMLSchema XMLSchema.xsd'> + <xsd:attribute name="id" type="xsd:ID" /> + <xsd:attributeGroup name="IdentityAttribs"> + <xsd:attribute form="qualified" name="label" type="xsd:string" use="optional" /> + <xsd:attribute form="qualified" name="uuid" type="xsd:string" use="optional" /> + </xsd:attributeGroup> + <xsd:attributeGroup name="LinkAttribs"> + <xsd:attribute name="href" type="xsd:string" use="optional" /> + <xsd:attribute form="qualified" name="idref" type="xsd:IDREF" use="optional" /> + </xsd:attributeGroup> + <xsd:attributeGroup name="ObjectAttribs"> + <xsd:attributeGroup ref="xmi:IdentityAttribs" /> + <xsd:attributeGroup ref="xmi:LinkAttribs" /> + <xsd:attribute fixed="2.0" form="qualified" name="version" type="xsd:string" use="optional" /> + <xsd:attribute form="qualified" name="type" type="xsd:QName" use="optional" /> + </xsd:attributeGroup> + <xsd:complexType name="Extension"> + <xsd:choice maxOccurs="unbounded" minOccurs="0"> + <xsd:any processContents="lax" /> + </xsd:choice> + <xsd:attribute ref="xmi:id" /> + <xsd:attributeGroup ref="xmi:ObjectAttribs" /> + <xsd:attribute name="extender" type="xsd:string" use="optional" /> + <xsd:attribute name="extenderID" type="xsd:string" use="optional" /> + </xsd:complexType> + <xsd:element name="Extension" type="xmi:Extension" /> + <xsd:complexType name="Any"> + <xsd:choice maxOccurs="unbounded" minOccurs="0"> + <xsd:any processContents="skip" /> + </xsd:choice> + <xsd:anyAttribute processContents="skip" /> + </xsd:complexType> +</xsd:schema> diff --git a/modules/CIAO/examples/Display/descriptors/basicNodeDaemon.pl b/modules/CIAO/examples/Display/descriptors/basicNodeDaemon.pl new file mode 100755 index 00000000000..bd963c5d139 --- /dev/null +++ b/modules/CIAO/examples/Display/descriptors/basicNodeDaemon.pl @@ -0,0 +1,57 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::Run_Test; + +$status = 0; +$iorfile1 = PerlACE::LocalFile ("NodeApp1.ior"); +$iorfile2 = PerlACE::LocalFile ("NodeApp2.ior"); +$iorfile3 = PerlACE::LocalFile ("NodeApp3.ior"); +$iorfile4 = PerlACE::LocalFile ("NodeApp4.ior"); +$iorfile5 = PerlACE::LocalFile ("NodeApp5.ior"); + +#for ($iter = 0; $iter <= $#ARGV; $iter++) { +# if ($ARGV[$iter] eq "-h" || $ARGV[$iter] eq "-?") { +# print "Run_Test Perl script for NodeApplicationTest \n\n"; +# print "run_test \n"; +# print "\n"; +# print "-h -- prints this information\n"; +# exit 0; +# } +#} + + +unlink $iorfile1; +unlink $iorfile2; +unlink $iorfile3; +unlink $iorfile4; +unlink $iorfile5; + +$CIAO_ROOT=$ENV{'CIAO_ROOT'}; + +$SV1 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager", + "-ORBEndpoint iiop://localhost:10000 -s $CIAO_ROOT/DAnCE/NodeApplication/NodeApplication"); + +$SV2 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager", + "-ORBEndpoint iiop://localhost:20000 -s $CIAO_ROOT/DAnCE/NodeApplication/NodeApplication"); + +$SV3 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager", + "-ORBEndpoint iiop://localhost:30000 -s $CIAO_ROOT/DAnCE/NodeApplication/NodeApplication"); + +$SV4 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager", + "-ORBEndpoint iiop://localhost:40000 -s $CIAO_ROOT/DAnCE/NodeApplication/NodeApplication"); + +$SV5 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager", + "-ORBEndpoint iiop://localhost:50000 -s $CIAO_ROOT/DAnCE/NodeApplication/NodeApplication"); +$SV1->Spawn (); +$SV2->Spawn (); +$SV3->Spawn (); +$SV4->Spawn (); +$SV5->Spawn (); + +sleep (99999999999); diff --git a/modules/CIAO/examples/Display/descriptors/flattened_deploymentplan.cdp b/modules/CIAO/examples/Display/descriptors/flattened_deploymentplan.cdp new file mode 100644 index 00000000000..1d68739216f --- /dev/null +++ b/modules/CIAO/examples/Display/descriptors/flattened_deploymentplan.cdp @@ -0,0 +1,305 @@ +<Deployment:deploymentPlan + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + + <label>Display-DeploymentPlan</label> + <UUID>Display_Plan_UUID_0001</UUID> + <!-- Exactly one realizes + This realizes section may also not be right. --> + <realizes> + <label>HUDisplay-realizes-cid</label> + <UUID>4edb0436-da3f-450e-baed-79127c1405b2</UUID> + <specificType><!-- @@ What does here? --></specificType> + <supportedType>IDL:HUDisplay/RateGen:1.0</supportedType> + <port> + <name>Pulse</name> + <specificType>IDL:HUDisplay/TimeOut:1.0</specificType> + <supportedType>IDL:HUDisplay/TimeOut:1.0</supportedType> + <provider>false</provider> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>false</exclusiveUser> + <optional>false</optional> + <kind>EventPublisher</kind> + </port> + </realizes> + + + + + <implementation id="HUDisplay-RateGen-mdd"> + <name>HUDisplay-RateGen-mdd</name> + <source><!-- @@ Don't know what goes here --></source> + <artifact>HUDisplay-RateGen_svnt</artifact> + <artifact>HUDisplay-RateGen_exec</artifact> + <!-- + <execParameter></execParameter> + <deployRequirement></deployRequirement> + --> + </implementation> + + <implementation id="HUDisplay-NavDisplay-mdd"> + <name>HUDisplay-NavDisplay-mdd</name> + <source><!-- @@ Don't know what goes here --></source> + <artifact>HUDisplay-NavDisplay_svnt</artifact> + <artifact>HUDisplay-NavDisplay_exec</artifact> + <!-- + <execParameter></execParameter> + <deployRequirement></deployRequirement> + --> + </implementation> + + <implementation id="HUDisplay-GPS-mdd"> + <name>HUDisplay-GPS-mdd</name> + <source><!-- @@ Don't know what goes here --></source> + <artifact>HUDisplay-GPS_svnt</artifact> + <artifact>HUDisplay-GPS_exec</artifact> + <!-- + <execParameter></execParameter> + <deployRequirement></deployRequirement> + --> + </implementation> + + + + + <instance id="HUDisplay-GPS-idd"> + <name>HUDisplay-GPS-idd</name> + <node>AirFrameDevice</node> + <source><!-- @@ What goes here --></source> + <implementation>HUDisplay-GPS-mdd</implementation> + <!-- Add this property if you want to write component reference to IOR --> + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>GPS.ior</string> + </value> + </value> + </configProperty> + </instance> + + + <instance id="HUDisplay-RateGen-idd"> + <name>HUDisplay-RateGen-idd</name> + <node>AirFrameDevice</node> + <source><!-- @@ What goes here --></source> + <implementation>HUDisplay-RateGen-mdd</implementation> + <!-- Add this property if you want to write component reference to IOR --> + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>RateGen.ior</string> + </value> + </value> + </configProperty> + <!-- Add this property if you want to initialize component attribute --> + <configProperty> + <name>hertz</name> + <value> + <type> + <kind>tk_long</kind> + </type> + <value> + <long>2</long> + </value> + </value> + </configProperty> + </instance> + + <instance id="HUDisplay-NavDisplay-idd"> + <name>HUDisplay-NavDisplay-idd</name> + <node>AirFrameDevice</node> + <source><!-- @@ What goes here --></source> + <implementation>HUDisplay-NavDisplay-mdd</implementation> + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>NavDisplay.ior</string> + </value> + </value> + </configProperty> + </instance> + + + <connection> + <name>Pulse_Refresh</name> + <internalEndpoint> + <portName>Pulse</portName> + <kind>EventPublisher</kind> + <instance>HUDisplay-RateGen-idd</instance> + </internalEndpoint> + <internalEndpoint> + <portName>Refresh</portName> + <kind>EventConsumer</kind> + <instance>HUDisplay-GPS-idd</instance> + </internalEndpoint> + </connection> + + <connection> + <name>Refresh_Ready</name> + <internalEndpoint> + <portName>Ready</portName> + <kind>EventPublisher</kind> + <instance>HUDisplay-GPS-idd</instance> + </internalEndpoint> + <internalEndpoint> + <portName>Refresh</portName> + <kind>EventConsumer</kind> + <instance>HUDisplay-NavDisplay-idd</instance> + </internalEndpoint> + </connection> + + <connection> + <name>GPSLocation_MyLocation_facet</name> + <internalEndpoint> + <portName>MyLocation</portName> + <kind>Facet</kind> + <instance>HUDisplay-GPS-idd</instance> + </internalEndpoint> + <internalEndpoint> + <portName>GPSLocation</portName> + <kind>SimplexReceptacle</kind> + <instance>HUDisplay-NavDisplay-idd</instance> + </internalEndpoint> + </connection> + + + + + + <artifact id="HUDisplay-RateGen_svnt"> + <name>RateGen_svnt</name> + <source><!-- @@ Not sure --></source> + <node><!-- blank --></node> + <location>RateGen_svnt</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_HUDisplay_RateGenHome_Servant</string> + </value> + </value> + </execParameter> + <!-- @@ This has dependancies that need to be specified, how? --> + </artifact> + + <artifact id="HUDisplay-RateGen_exec"> + <name>RateGen_exec</name> + <source><!-- @@ Not sure --></source> + <node><!-- blank --></node> + <location>RateGen_exec</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createRateGenHome_Impl</string> + </value> + </value> + </execParameter> + + <!-- @@ This has dependancies that need to be specified, how? --> + </artifact> + + + <artifact id="HUDisplay-GPS_svnt"> + <name>GPS_svnt</name> + <source><!-- @@ Not sure --></source> + <node><!-- blank --></node> + <location>GPS_svnt</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_HUDisplay_GPSHome_Servant</string> + </value> + </value> + </execParameter> + <!-- @@ This has dependancies that need to be specified, how? --> + </artifact> + + + <artifact id="HUDisplay-GPS_exec"> + <name>GPS_exec</name> + <source><!-- @@ Not sure about this--></source> + <node><!-- blank --></node> + <location>GPS_exec</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createGPSHome_Impl</string> + </value> + </value> + </execParameter> + + <!-- @@ This has dependancies that need to be specified, how? --> + </artifact> + + + <artifact id="HUDisplay-NavDisplay_svnt"> + <name>NavDisplay_svnt</name> + <source><!-- @@ Not sure --></source> + <node><!-- blank --></node> + <location>NavDisplay_svnt</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_HUDisplay_NavDisplayHome_Servant</string> + </value> + </value> + </execParameter> + <!-- @@ This has dependancies that need to be specified, how? --> + </artifact> + + + <artifact id="HUDisplay-NavDisplay_exec"> + <name>NavDisplay_exec</name> + <source><!-- @@ Not sure --></source> + <node><!-- blank --></node> + <location>NavDisplay_exec</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>createNavDisplayHome_Impl</string> + </value> + </value> + </execParameter> + <!-- @@ This has dependancies that need to be specified, how? --> + </artifact> + + + +</Deployment:deploymentPlan> diff --git a/modules/CIAO/examples/Display/descriptors/run_NodeDaemons.pl b/modules/CIAO/examples/Display/descriptors/run_NodeDaemons.pl new file mode 100755 index 00000000000..3e01d7bc260 --- /dev/null +++ b/modules/CIAO/examples/Display/descriptors/run_NodeDaemons.pl @@ -0,0 +1,40 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::Run_Test; + +$status = 0; +$iorfile1 = PerlACE::LocalFile ("NodeApp1.ior"); +$iorfile2 = PerlACE::LocalFile ("NodeApp2.ior"); + +#for ($iter = 0; $iter <= $#ARGV; $iter++) { +# if ($ARGV[$iter] eq "-h" || $ARGV[$iter] eq "-?") { +# print "Run_Test Perl script for NodeApplicationTest \n\n"; +# print "run_test \n"; +# print "\n"; +# print "-h -- prints this information\n"; +# exit 0; +# } +#} + + +unlink $iorfile1; +unlink $iorfile2; + +$CIAO_ROOT=$ENV{'CIAO_ROOT'}; + +$SV1 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager", + "-ORBEndpoint iiop://localhost:10001 -s $CIAO_ROOT/DAnCE/NodeApplication/NodeApplication"); + +$SV2 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager", + "-ORBEndpoint iiop://localhost:20001 -s $CIAO_ROOT/DAnCE/NodeApplication/NodeApplication"); + +$SV1->Spawn (); +$SV2->Spawn (); + +sleep (99999999999); diff --git a/modules/CIAO/examples/Display/descriptors/run_test_without_ns.pl b/modules/CIAO/examples/Display/descriptors/run_test_without_ns.pl new file mode 100755 index 00000000000..bb090fceda1 --- /dev/null +++ b/modules/CIAO/examples/Display/descriptors/run_test_without_ns.pl @@ -0,0 +1,173 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{'ACE_ROOT'}/bin"; +use PerlACE::Run_Test; +$CIAO_ROOT = "$ENV{'CIAO_ROOT'}"; +$DAnCE = "$ENV{'ACE_ROOT'}/TAO/CIAO/DAnCE"; + +$daemons_running = 0; +$em_running = 0; +$daemons = 2; +@ports = ( 10001, 20001 ); +@iorfiles = ( "NodeApp1.ior", "NodeApp2.ior" ); +$status = 0; +$dat_file = "NodeManagerMap.dat"; +$cdp_file = "DeploymentPlan.cdp"; +$controller_exec = "$CIAO_ROOT/examples/Display/RateGen/controller"; + +$E = 0; +$EM = 0; + +# Delete if there are any .ior files. +sub delete_ior_files { + for ($i = 0; $i < $daemons; ++$i) { + unlink $iorfiles[$i]; + } + unlink PerlACE::LocalFile ("EM.ior"); + unlink PerlACE::LocalFile ("DAM.ior"); + unlink PerlACE::LocalFile ("RateGen.ior"); + unlink PerlACE::LocalFile ("GPS.ior"); + unlink PerlACE::LocalFile ("NavDisplay.ior"); +} + +sub kill_node_daemons { + for ($i = 0; $i < $daemons; ++$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } +} + +sub kill_open_processes { + if ($daemons_running == 1) { + kill_node_daemons (); + } + + if ($em_running == 1) { + $EM->Kill (); + $EM->TimedWait (1); + } +} + +sub run_node_daemons { + for ($i = 0; $i < $daemons; ++$i) + { + $iorfile = $iorfiles[$i]; + $port = $ports[$i]; + + $iiop = "iiop://localhost:$port"; + $node_app = "$CIAO_ROOT/bin/NodeApplication"; + + $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; + $d_param = "-ORBEndpoint $iiop -s $node_app -o $iorfile -d 30"; + + $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param); + $result = $Daemons[$i]->Spawn (); + push(@processes, $Daemons[$i]); + + if (PerlACE::waitforfile_timed ($iorfile, + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR + "ERROR: The ior file of node daemon $i could not be found\n"; + for (; $i > 0; --$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } + return -1; + } + } + $daemons_running = 1; + return 0; +} + +delete_ior_files (); + +# Invoke node daemons. +print "Invoking node daemons\n"; +$status = run_node_daemons (); + +if ($status != 0) { + print STDERR "ERROR: Unable to execute the node daemons\n"; + exit 1; +} + +$ns_running = 1; + +# Invoke execution manager. +print "Invoking execution manager\n"; +$EM = new PerlACE::Process ("$CIAO_ROOT/bin/Execution_Manager", + "-o EM.ior -i $dat_file"); +$EM->Spawn (); + +if (PerlACE::waitforfile_timed ("EM.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR + "ERROR: The ior file of execution manager could not be found\n"; + kill_open_processes (); + exit 1; +} + +$em_running = 1; + +# Invoke executor - start the application -. +print "Invoking executor - start the application -\n"; +$E = + new PerlACE::Process ("$CIAO_ROOT/bin/plan_launcher", + "-p flattened_deploymentplan.cdp -k file://EM.ior -o DAM.ior"); + +$E->SpawnWaitKill (5000); + +if (PerlACE::waitforfile_timed ( + "GPS.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: The ior file of GPS could not be found\n"; + kill_open_processes (); + exit 1; +} + +if (PerlACE::waitforfile_timed ("RateGen.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: The ior file of RateGen could not be found\n"; + kill_open_processes (); + exit 1; +} + +print "Invoking the controller\n"; +$controller = new PerlACE::Process ("$controller_exec", "-k file://RateGen.ior"); +$result = $controller->SpawnWaitKill (3000); +if ($result != 0) { + print STDERR "ERROR: The controller returned $result\n"; + $status = 1; +} + +# put some delay here. +sleep (20); + +# invoking the controller again to stop the rategen +print "Invoking the controller to stop RateGen\n"; +$controller = new PerlACE::Process ("$controller_exec", "-k file://RateGen.ior -f"); +$result = $controller->SpawnWaitKill (3000); +if ($result != 0) { + print STDERR "ERROR: The controller returned $result\n"; + $status = 1; +} + +# delay a bit more +sleep (2); + +# Invoke executor - stop the application -. +print "Invoking executor - stop the application -\n"; +$E = + new PerlACE::Process ("$CIAO_ROOT/bin/plan_launcher", + "-k file://EM.ior -i file://DAM.ior"); +$E->SpawnWaitKill (3000); + +print "Executor returned.\n"; +print "Shutting down rest of the processes.\n"; + +delete_ior_files (); +kill_open_processes (); + +exit $status; diff --git a/modules/CIAO/examples/Hello/Hello_Base/Hello_Base.idl b/modules/CIAO/examples/Hello/Hello_Base/Hello_Base.idl new file mode 100644 index 00000000000..18b300932ee --- /dev/null +++ b/modules/CIAO/examples/Hello/Hello_Base/Hello_Base.idl @@ -0,0 +1,21 @@ +//$Id$: + +#ifndef CIAO_HELLO_IDL +#define CIAO_HELLO_IDL + +#include <Components.idl> + +module Hello +{ + interface ReadMessage + { + string get_message(); + }; + + eventtype TimeOut + { + public string data; + }; +}; + +#endif /* CIAO_HELLO_IDL */ diff --git a/modules/CIAO/examples/Hello/Hello_Base/Hello_Base.mpc b/modules/CIAO/examples/Hello/Hello_Base/Hello_Base.mpc new file mode 100644 index 00000000000..2ff1b9e7571 --- /dev/null +++ b/modules/CIAO/examples/Hello/Hello_Base/Hello_Base.mpc @@ -0,0 +1,78 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Hello_Base" + +project(Hello_Base_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=HELLO_BASE_STUB_Export \ + -Wb,stub_export_include=Hello_Base_stub_export.h \ + -Wb,skel_export_macro=HELLO_BASE_SKEL_Export \ + -Wb,skel_export_include=Hello_Base_skel_export.h + + IDL_Files { + Hello_Base.idl + } +} + +project(Hello_Base_lem_gen) : ciaoidldefaults { + custom_only = 1 + after += Hello_Base_idl_gen + idlflags += -Wb,export_macro=HELLO_BASE_STUB_Export \ + -Wb,export_include=Hello_Base_stub_export.h + + IDL_Files { + Hello_BaseE.idl + } +} + +project(Hello_Base_stub) : ccm_stub { + after += Hello_Base_lem_gen + libout = ../lib + sharedname = Hello_Base_stub + dynamicflags = HELLO_BASE_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Hello_BaseC.cpp + Hello_BaseEC.cpp + } + + Header_Files { + Hello_BaseC.h + Hello_Base_stub_export.h + } + + Inline_Files { + Hello_BaseC.inl + } +} + + +project(Hello_Base_skel) : ccm_svnt { + after += Hello_Base_stub + sharedname = Hello_Base_skel + libs += Hello_Base_stub + libout = ../lib + libpaths += ../lib + + dynamicflags = HELLO_BASE_SKEL_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Hello_BaseS.cpp + } + + Header_Files { + Hello_BaseS.h + Hello_Base_skel_export.h + } + + Inline_Files { + Hello_BaseS.inl + } +} + + diff --git a/modules/CIAO/examples/Hello/Receiver/Receiver.idl b/modules/CIAO/examples/Hello/Receiver/Receiver.idl new file mode 100644 index 00000000000..f64c3be26db --- /dev/null +++ b/modules/CIAO/examples/Hello/Receiver/Receiver.idl @@ -0,0 +1,22 @@ +//$Id$: + +#ifndef RECEIVER_IDL +#define RECEIVER_IDL + +#include "../Hello_Base/Hello_Base.idl" + +module Hello +{ + component Receiver + { + uses ReadMessage read_message; + consumes TimeOut click_in; + + attribute short iterations; + }; + + home ReceiverHome manages Receiver + { + }; +}; +#endif /*RECEIVER_IDL*/ diff --git a/modules/CIAO/examples/Hello/Receiver/Receiver.mpc b/modules/CIAO/examples/Hello/Receiver/Receiver.mpc new file mode 100644 index 00000000000..bb69fe6c789 --- /dev/null +++ b/modules/CIAO/examples/Hello/Receiver/Receiver.mpc @@ -0,0 +1,143 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl Receiver" + +project(Hello_Receiver_idl_gen) : componentidldefaults { + custom_only = 1 + after += Hello_Base_idl_gen + idlflags += -Wb,stub_export_macro=RECEIVER_STUB_Export \ + -Wb,stub_export_include=Receiver_stub_export.h \ + -Wb,skel_export_macro=RECEIVER_SKEL_Export \ + -Wb,skel_export_include=Receiver_skel_export.h \ + -Wb,svnt_export_macro=RECEIVER_SVNT_Export \ + -Wb,svnt_export_include=Receiver_svnt_export.h \ + -Wb,exec_export_macro=RECEIVER_EXEC_Export \ + -Wb,exec_export_include=Receiver_exec_export.h + + IDL_Files { + Receiver.idl + } +} + +project(Hello_Receiver_lem_gen) : ciaoidldefaults { + custom_only = 1 + after += Hello_Receiver_idl_gen + idlflags += -Wb,export_macro=RECEIVER_EXEC_Export \ + -Wb,export_include=Receiver_exec_export.h \ + -SS + + IDL_Files { + ReceiverE.idl + } +} + +project(Hello_Receiver_stub) : ccm_stub { + after += Hello_Receiver_idl_gen Hello_Base_stub + libs += Hello_Base_stub + libout = ../lib + libpaths += ../lib + + sharedname = Hello_Receiver_stub + dynamicflags = RECEIVER_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + ReceiverC.cpp + } + + Header_Files { + ReceiverC.h + Receiver_stub_export.h + } + + Inline_Files { + ReceiverC.inl + } +} + +project(Hello_Receiver_exec) : ciao_executor { + after += Hello_Receiver_lem_gen Hello_Receiver_stub + sharedname = Hello_Receiver_exec + libs += Hello_Receiver_stub Hello_Base_stub + libout = ../lib + libpaths += ../lib + + dynamicflags = RECEIVER_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + ReceiverEC.cpp + Receiver_exec.cpp + } + + Header_Files { + ReceiverEC.h + Receiver_exec.h + Receiver_exec_export.h + } + + Inline_Files { + ReceiverEC.inl + } +} + +project(Hello_Receiver_skel) : ccm_svnt { + after += Hello_Base_skel Hello_Receiver_stub + sharedname = Hello_Receiver_skel + libs += Hello_Receiver_stub \ + Hello_Base_skel \ + Hello_Base_stub + libout = ../lib + libpaths += ../lib + dynamicflags = RECEIVER_SKEL_BUILD_DLL + + IDL_Files { + } + + Source_Files { + ReceiverS.cpp + } + + Header_Files { + ReceiverS.h + Receiver_skel_export.h + } + + Inline_Files { + ReceiverS.inl + } +} + +project(Hello_Receiver_svnt) : ciao_servant { + after += Hello_Receiver_skel Hello_Receiver_exec + sharedname = Hello_Receiver_svnt + libs += Hello_Receiver_exec \ + Hello_Receiver_skel \ + Hello_Receiver_stub \ + Hello_Base_skel \ + Hello_Base_stub + libout = ../lib + libpaths += ../lib + + dynamicflags = RECEIVER_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Receiver_svnt.cpp + } + + Header_Files { + Receiver_svnt.h + Receiver_svnt_export.h + } + + Inline_Files { + } +} + + diff --git a/modules/CIAO/examples/Hello/Receiver/Receiver_exec.cpp b/modules/CIAO/examples/Hello/Receiver/Receiver_exec.cpp new file mode 100644 index 00000000000..7199fb08742 --- /dev/null +++ b/modules/CIAO/examples/Hello/Receiver/Receiver_exec.cpp @@ -0,0 +1,166 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#include "Receiver_exec.h" +#include "ace/High_Res_Timer.h" +#include "ace/Date_Time.h" +#include "ace/OS_NS_unistd.h" + +namespace CIAO_Hello_Receiver_Impl +{ + Receiver_exec_i::Receiver_exec_i () + { + } + + Receiver_exec_i::~Receiver_exec_i () + { + } + + void + Receiver_exec_i::iterations (CORBA::Short iterations) + { + this->iterations_ = iterations; + } + + CORBA::Short + Receiver_exec_i::iterations () + { + return this->iterations_; + } + + + void + Receiver_exec_i::push_click_in (::Hello::TimeOut * ev) + { + //Get the message from the Sender first. + ACE_DEBUG ((LM_DEBUG, + "Receiver - Informed by the Sender with message [%C]\n", + ev->data ())); + + Hello::ReadMessage_var rev + = this->context_->get_connection_read_message(); + + if (CORBA::is_nil (rev.in ())) + throw CORBA::BAD_INV_ORDER (); + + for (int i = 0; i < this->iterations_; ++i) + { + CORBA::String_var str = rev->get_message (); + ACE_hrtime_t now = ACE_OS::gethrtime(); + ACE_CString tm_rec (str.in ()); + ACE_hrtime_t received = ACE_OS::strtoull (tm_rec.substr(0, 15).c_str(), 0, 0); + if (received > 0) + { + ACE_Time_Value tv (0, 0); + ACE_High_Res_Timer::hrtime_to_tv (tv, + now - received); + ACE_DEBUG ((LM_EMERGENCY, + "Receiver - Got message from the server [%C]. difference <%d>\n", + str.in (), tv.usec () )); + } + else + { + ACE_DEBUG ((LM_EMERGENCY, + "Receiver - Got message from the server [%C].\n", + str.in () )); + } + ACE_Time_Value tv(0, 200000000); + ACE_OS::sleep (tv); + } + } + + // Operations from Components::SessionComponen + void + Receiver_exec_i::set_session_context (::Components::SessionContext_ptr ctx) + { + ACE_DEBUG ((LM_DEBUG, "Receiver_exec_i::set_session_context\n")); + + this->context_ = + ::Hello::CCM_Receiver_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + { + throw ::CORBA::INTERNAL (); + } + } + + void + Receiver_exec_i::configuration_complete () + { + ACE_DEBUG ((LM_DEBUG, + "Receiver_exec_i::configuration_complete\n")); + } + + void + Receiver_exec_i::ccm_activate () + { + ACE_DEBUG ((LM_DEBUG, "Receiver_exec_i::ccm_activate\n")); + } + + void + Receiver_exec_i::ccm_passivate () + { + ACE_DEBUG ((LM_DEBUG, "Receiver_exec_i::ccm_passivate\n")); + } + + void + Receiver_exec_i::ccm_remove () + { + ACE_DEBUG ((LM_DEBUG, "Receiver_exec_i::ccm_remove\n")); + } + + + ReceiverHome_exec_i::ReceiverHome_exec_i () + { + } + + ReceiverHome_exec_i::~ReceiverHome_exec_i () + { + } + + ::Components::EnterpriseComponent_ptr + ReceiverHome_exec_i::create () + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + Receiver_exec_i, + ::CORBA::NO_MEMORY ()); + + return retval; + } + + extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_Hello_ReceiverHome_Impl (void) + { + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + ReceiverHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; + } +} + diff --git a/modules/CIAO/examples/Hello/Receiver/Receiver_exec.h b/modules/CIAO/examples/Hello/Receiver/Receiver_exec.h new file mode 100644 index 00000000000..05948ef1113 --- /dev/null +++ b/modules/CIAO/examples/Hello/Receiver/Receiver_exec.h @@ -0,0 +1,115 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_RECEIVER_EXEC_H +#define CIAO_RECEIVER_EXEC_H + +#include /**/ "ace/pre.h" + +#include "ReceiverEC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Receiver_exec_export.h" +#include "tao/LocalObject.h" + +namespace CIAO_Hello_Receiver_Impl +{ + /** + * @class Receiver_exec_i + * + * Receiver executor implementation class. + */ + class RECEIVER_EXEC_Export Receiver_exec_i + : public virtual Receiver_Exec, + public virtual ::CORBA::LocalObject + { + + public: + /// Default constructor. + Receiver_exec_i (); + + /// Default destructor. + ~Receiver_exec_i (); + + /// Operation to set the value of the attribute "iterations" + virtual void iterations (CORBA::Short iterations); + + /// Operation to get the value of the attribute "iterations" + virtual CORBA::Short iterations (); + + // Operation which will be called upon receiving the timeout event. + virtual void + push_click_in (::Hello::TimeOut *ev); + + // Operations from Components::SessionComponent + virtual void set_session_context (::Components::SessionContext_ptr ctx); + + virtual void configuration_complete (); + + virtual void ccm_activate (); + virtual void ccm_passivate (); + virtual void ccm_remove (); + + protected: + /// Copmponent specific context + ::Hello::CCM_Receiver_Context_var context_; + + private: + CORBA::String_var message_; + CORBA::Short iterations_; + }; + + /** + * @class ReceiverHome_exec_i + * + * Receiver home executor implementation class. + */ + class RECEIVER_EXEC_Export ReceiverHome_exec_i + : public virtual ReceiverHome_Exec, + public virtual ::CORBA::LocalObject + { + public: + ReceiverHome_exec_i (void); + virtual ~ReceiverHome_exec_i (void); + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + virtual ::Components::EnterpriseComponent_ptr + create (); + }; + + extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_Hello_ReceiverHome_Impl (void); +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_RECEIVER_EXEC_H */ diff --git a/modules/CIAO/examples/Hello/Sender/Sender.idl b/modules/CIAO/examples/Hello/Sender/Sender.idl new file mode 100644 index 00000000000..eb5f30f5581 --- /dev/null +++ b/modules/CIAO/examples/Hello/Sender/Sender.idl @@ -0,0 +1,44 @@ +//$Id$ + +#ifndef SENDER_IDL +#define SENDER_IDL + + +#include "../Hello_Base/Hello_Base.idl" +#include "../Hello_Base/Hello_BaseE.idl" + +module Hello +{ + /* This is a Sender specific interface which will be used to get the + * process start. + */ + + interface trigger + { + void start (); + }; + + enum COLOR_SELECTION + { + empty, + white, + red, + yellow + }; + + component Sender supports trigger + { + provides ReadMessage push_message; + publishes TimeOut click_out; + attribute string local_message; + readonly attribute long hertz; + attribute boolean log_time; + // A test attribute to test setting attributes through XML + attribute COLOR_SELECTION color; + }; + + home SenderHome manages Sender + { + }; +}; +#endif /*SENDER_IDL*/ diff --git a/modules/CIAO/examples/Hello/Sender/Sender.mpc b/modules/CIAO/examples/Hello/Sender/Sender.mpc new file mode 100644 index 00000000000..b9cdd1c4f4d --- /dev/null +++ b/modules/CIAO/examples/Hello/Sender/Sender.mpc @@ -0,0 +1,140 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -p Hello_Base -u Hello -c starter Sender" + +project(Hello_Sender_idl_gen) : componentidldefaults { + custom_only = 1 + after += Hello_Base_idl_gen + idlflags += \ + -Wb,stub_export_macro=SENDER_STUB_Export \ + -Wb,stub_export_include=Sender_stub_export.h \ + -Wb,skel_export_macro=SENDER_SVNT_Export \ + -Wb,skel_export_include=Sender_svnt_export.h \ + -Wb,svnt_export_macro=SENDER_SVNT_Export \ + -Wb,svnt_export_include=Sender_svnt_export.h \ + -Wb,exec_export_macro=SENDER_EXEC_Export \ + -Wb,exec_export_include=Sender_exec_export.h + + IDL_Files { + Sender.idl + } +} + +project(Hello_Sender_lem_gen) : ciaoidldefaults { + after += Hello_Sender_idl_gen Hello_Base_lem_gen + custom_only = 1 + idlflags += -Wb,export_macro=SENDER_EXEC_Export \ + -Wb,export_include=Sender_exec_export.h \ + -SS + + IDL_Files { + SenderE.idl + } +} + +project(Hello_Sender_stub) : ccm_stub { + after += Hello_Sender_idl_gen Hello_Base_stub + libs += Hello_Base_stub + libout = ../lib + libpaths += ../lib + + sharedname = Hello_Sender_stub + dynamicflags = SENDER_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + SenderC.cpp + } + + Header_Files { + SenderC.h + Sender_stub_export.h + } + + Inline_Files { + SenderC.inl + } +} + +project(Hello_Sender_exec) : ciao_executor { + after += Hello_Sender_lem_gen Hello_Sender_stub + sharedname = Hello_Sender_exec + libs += Hello_Sender_stub Hello_Base_stub + libout = ../lib + libpaths += ../lib + + dynamicflags = SENDER_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + SenderEC.cpp + Sender_exec.cpp + } + + Header_Files { + SenderEC.h + Sender_exec.h + Sender_exec_export.h + } + + Inline_Files { + SenderEC.inl + } +} + + +project(Hello_Sender_svnt) : ciao_servant { + after += Hello_Base_skel Hello_Sender_exec + sharedname = Hello_Sender_svnt + libs += Hello_Sender_exec \ + Hello_Sender_stub \ + Hello_Base_skel \ + Hello_Base_stub + libout = ../lib + libpaths += ../lib + + dynamicflags = SENDER_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + SenderS.cpp + Sender_svnt.cpp + } + + Header_Files { + SenderS.h + Sender_svnt.h + Sender_svnt_export.h + } + + Inline_Files { + SenderS.inl + } +} + +project (Hello_starter) : ccm_stub, valuetype { + exename = starter + after += Hello_Sender_stub + libs += Hello_Sender_stub Hello_Base_stub + libout = ../lib + libpaths += ../lib + + IDL_Files { + } + + Source_Files { + starter.cpp + } + + Header_Files { + } + + Inline_Files { + } +} + diff --git a/modules/CIAO/examples/Hello/Sender/Sender_exec.cpp b/modules/CIAO/examples/Hello/Sender/Sender_exec.cpp new file mode 100644 index 00000000000..972650085f3 --- /dev/null +++ b/modules/CIAO/examples/Hello/Sender/Sender_exec.cpp @@ -0,0 +1,231 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#include "Sender_exec.h" +#include "ace/Date_Time.h" +#include "ace/OS_NS_time.h" +#include "ace/High_Res_Timer.h" + +namespace CIAO_Hello_Sender_Impl +{ + char* + Message_Impl::get_message () + { + CORBA::String_var message; + if (this->component_.log_time ()) + { + //Add extra time + ACE_hrtime_t start = ACE_OS::gethrtime(); + char timestamp[16]; + ACE_OS::sprintf (timestamp, + "%lld", + start); + CORBA::String_var tm = CORBA::string_dup(timestamp); + int tm_length = strlen(tm); + int message_length = strlen(this->component_.message_.in ()); + //one extra for a space character. + message = CORBA::string_alloc( (tm_length + message_length + 2)); + strcpy(message, tm.in ()); + strcat(message, " "); + strcat(message, this->component_.message_.in ()); + return CORBA::string_dup(message); + } + else + { + ACE_DEBUG ((LM_EMERGENCY, "Sender sending out message: [%C]\n", component_.message_.in ())); + return CORBA::string_dup (message); + } + } + + Sender_exec_i::~Sender_exec_i () + { + } + + void + Sender_exec_i::local_message (const char * local_message) + { + message_ = CORBA::string_dup (local_message); + } + + char * + Sender_exec_i::local_message () + { + return CORBA::string_dup (message_.in ()); + } + + void + Sender_exec_i::log_time (bool log_time) + { + log_time_ = log_time; + } + + bool + Sender_exec_i::log_time () + { + return log_time_; + } + + void + Sender_exec_i::hertz (CORBA::Long hertz) + { + this->hertz_ = hertz; + ACE_DEBUG ((LM_EMERGENCY, "Sender_exec_i::Hertz:%d\n", this->hertz_)); + } + + CORBA::Long + Sender_exec_i::hertz () + { + return this->hertz_; + } + + ::Hello::COLOR_SELECTION + Sender_exec_i::color () + { + // Your code here. + return this->color_; + } + + void + Sender_exec_i::color (::Hello::COLOR_SELECTION color) + { + this->color_ = color; + } + + Hello::CCM_ReadMessage_ptr + Sender_exec_i::get_push_message () + { + ACE_DEBUG ((LM_EMERGENCY, + "Sender_exec.i::get_push_message called\n")); + return ( new Message_Impl (*this) ); + } + + void + Sender_exec_i::start () + { + Hello::TimeOut_var event = new OBV_Hello::TimeOut; + event->data ("ACE/TAO/CIAO"); + ACE_DEBUG ((LM_EMERGENCY, "Sender initiates the process.\n")); + this->context_->push_click_out (event.in ()); + + ACE_DEBUG ((LM_EMERGENCY, "My current color is:")); + + switch (this->color_) + { + case ::Hello::empty: + ACE_DEBUG ((LM_EMERGENCY, "ERROR: Enum attribute initialization failed.\n")); + break; + + case ::Hello::white: + ACE_DEBUG ((LM_EMERGENCY, "white\n")); + break; + + case ::Hello::red: + ACE_DEBUG ((LM_EMERGENCY, "red\n")); + break; + + case ::Hello::yellow: + ACE_DEBUG ((LM_EMERGENCY, "yellow\n")); + break; + + default: + ACE_DEBUG ((LM_EMERGENCY, "Unknown color!\n")); + + } + } + + void + Sender_exec_i::set_session_context (::Components::SessionContext_ptr ctx) + { + ACE_DEBUG ((LM_EMERGENCY, "Sender_exec_i::set_session_context\n")); + + this->context_ = + ::Hello::CCM_Sender_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + { + throw ::CORBA::INTERNAL (); + } + } + + void + Sender_exec_i::configuration_complete () + { + ACE_DEBUG ((LM_EMERGENCY, + "Sender_exec_i::configuration_complete\n")); + } + + void + Sender_exec_i::ccm_activate () + { + ACE_DEBUG ((LM_EMERGENCY, + "Sender_exec_i::ccm_activate\n")); + } + + void + Sender_exec_i::ccm_passivate () + { + ACE_DEBUG ((LM_EMERGENCY, "Sender_exec_i::ccm_passivate\n")); + } + + void + Sender_exec_i::ccm_remove () + { + ACE_DEBUG ((LM_EMERGENCY, "Sender_exec_i::ccm_remove\n")); + } + + SenderHome_exec_i::SenderHome_exec_i () + { + } + + SenderHome_exec_i::~SenderHome_exec_i () + { + } + + ::Components::EnterpriseComponent_ptr + SenderHome_exec_i::create () + { + ACE_DEBUG ((LM_EMERGENCY, "(%P|%t) creating SenderHome\n")); + + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + Sender_exec_i, + ::CORBA::NO_MEMORY ()); + + return retval; + } + + extern "C" SENDER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_Hello_SenderHome_Impl (void) + { + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + SenderHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; + } +} + diff --git a/modules/CIAO/examples/Hello/Sender/Sender_exec.h b/modules/CIAO/examples/Hello/Sender/Sender_exec.h new file mode 100644 index 00000000000..d712da5efaa --- /dev/null +++ b/modules/CIAO/examples/Hello/Sender/Sender_exec.h @@ -0,0 +1,185 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_SENDER_EXEC_H +#define CIAO_SENDER_EXEC_H + +#include /**/ "ace/pre.h" + +#include "SenderEC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Sender_exec_export.h" +#include "tao/LocalObject.h" + +namespace CIAO_Hello_Sender_Impl +{ + /** + * @class Sender_exec_i + * + * Sender executor implementation class. + */ + class SENDER_EXEC_Export Sender_exec_i + : public virtual Sender_Exec, + public virtual ::CORBA::LocalObject + { + + public: + /// Default constructor. + Sender_exec_i () + : message_(CORBA::string_dup ("Default Message")), + color_ (::Hello::empty) + { + } + + /// Secondary construction. + Sender_exec_i (const char* local_message) + : message_ (CORBA::string_dup (local_message)), + color_ (::Hello::empty) + { + } + + /// Default destructor. + virtual ~Sender_exec_i (); + + /// Operation to set the value of the attribute "local_message" + virtual void local_message (const char * local_message); + + /// Operation to get the value of the attribute "local_message" + virtual char * local_message (); + + /// Operation to set the value of the attribute "log_time" + virtual void log_time (bool log_time); + + /// Operation to get the value of the attribute "log_time" + virtual bool log_time (); + + + /// Operation to set the value of the attribute "hertz" + virtual void hertz (CORBA::Long hertz); + + /// Operation to get the value of the attribute "hertz" + virtual CORBA::Long hertz (); + + /* Operations for obtaining the interface reference. */ + /* This method will be used in the assembly face so the + * ObjRef of this read_message facet will be sent to the + * client side(receptacle). + */ + // Note: You can specify the return type as ::Hello::CCM_message * + virtual ::Hello::CCM_ReadMessage_ptr + get_push_message (); + + virtual ::Hello::COLOR_SELECTION + color (); + + virtual void + color (::Hello::COLOR_SELECTION); + + // Operation inside of the trigger interface. + virtual void start (); + + // Operations from Components::SessionComponent + virtual void set_session_context (::Components::SessionContext_ptr ctx); + + virtual void configuration_complete (); + + virtual void ccm_activate (); + + virtual void ccm_passivate (); + + virtual void ccm_remove (); + + protected: + /// Copmponent specific context + ::Hello::CCM_Sender_Context_var context_; + + private: + CORBA::String_var message_; + + CORBA::Boolean log_time_; + + CORBA::Long hertz_; + + ::Hello::COLOR_SELECTION color_; + + friend class Message_Impl; + }; + + + // + // + // + class Message_Impl : public virtual Hello::CCM_ReadMessage, + public virtual ::CORBA::LocalObject + { + public: + Message_Impl (Sender_exec_i& component) + : component_ (component) + { + } + + virtual char * + get_message (); + + private: + Sender_exec_i& component_; + }; + + /** + * @class SenderHome_exec_i + * + * Sender home executor implementation class. + */ + class SENDER_EXEC_Export SenderHome_exec_i + : public virtual SenderHome_Exec, + public virtual ::CORBA::LocalObject + { + public: + SenderHome_exec_i (void); + virtual ~SenderHome_exec_i (void); + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + virtual ::Components::EnterpriseComponent_ptr + create (); + }; + + extern "C" SENDER_EXEC_Export ::Components::EnterpriseComponent_ptr + create_Hello_Sender_Impl (void); + + extern "C" SENDER_EXEC_Export ::Components::HomeExecutorBase_ptr + create_Hello_SenderHome_Impl (void); +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_SENDER_EXEC_H */ diff --git a/modules/CIAO/examples/Hello/Sender/starter.cpp b/modules/CIAO/examples/Hello/Sender/starter.cpp new file mode 100644 index 00000000000..4a1c04fbe9a --- /dev/null +++ b/modules/CIAO/examples/Hello/Sender/starter.cpp @@ -0,0 +1,88 @@ +//$Id$: + +#include "SenderC.h" +#include "ace/Get_Opt.h" + +// IOR file of the Sender +const ACE_TCHAR * ior = 0; +const char * message = 0; + +int +parse_args (int argc, ACE_TCHAR *argv[]) +{ + ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:m:")); + int c = 0; + + while ((c = get_opts ()) != -1) + { + switch (c) + { + case 'k': + ior = get_opts.opt_arg (); + break; + + case 'm': + message = ACE_TEXT_ALWAYS_CHAR(get_opts.opt_arg ()); + break; + + case '?': // display help for use of the server. + default: + ACE_ERROR_RETURN ((LM_ERROR, + "Usage: %s\n" + "-k <Sender IOR> (default is file://Sender.ior)\n", + "-m <Message>\n", + argv [0]), + -1); + break; + } + } + + if (ior == 0) + { + ior = ACE_TEXT("file://Sender.ior"); + } + + return 0; +} + +int +ACE_TMAIN (int argc, ACE_TCHAR *argv[]) +{ + try + { + // Initialize orb + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); + + if (parse_args (argc, argv) != 0) + { + return -1; + } + + CORBA::Object_var obj = orb->string_to_object (ior); + + Hello::Sender_var sender = Hello::Sender::_narrow (obj.in ()); + + if (CORBA::is_nil (sender.in ())) + { + ACE_ERROR_RETURN ((LM_ERROR, + "Unable to acquire Sender's objref\n"), + -1); + } + + if (message) + { + sender->local_message (message); + } + + sender->start (); + + orb->destroy (); + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("Unknown exception\n"); + return -1; + } + + return 0; +} diff --git a/modules/CIAO/examples/Hello/descriptors/Aliased_Map.dat b/modules/CIAO/examples/Hello/descriptors/Aliased_Map.dat new file mode 100644 index 00000000000..30e6930c2a3 --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors/Aliased_Map.dat @@ -0,0 +1,2 @@ +SenderNode corbaloc:iiop:localhost:60001/Alias.NodeManager +ReceiverNode corbaloc:iiop:localhost:60001/Alias.NodeManager
\ No newline at end of file diff --git a/modules/CIAO/examples/Hello/descriptors/DeploymentPlan.cdp b/modules/CIAO/examples/Hello/descriptors/DeploymentPlan.cdp new file mode 100644 index 00000000000..b1ba4709c16 --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors/DeploymentPlan.cdp @@ -0,0 +1,383 @@ +<Deployment:DeploymentPlan + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Hello_Deployment_1</label> + <UUID>Hello_Deployment_1</UUID> + + <!-- Implementations declarations --> + + <!-- Home implementation --> + <implementation xmi:id="Hello_ReceiverHomeImplementation"> + <name>Hello_ReceiverHomeImplementation</name> + <source/> + <artifact xmi:idref="Hello_Receiver_ExecArtifact" /> + <artifact xmi:idref="Hello_Receiver_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>home factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Hello_ReceiverHome_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Hello_ReceiverHome_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Hello_Receiver_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Hello_Receiver_exec</string> + </value> + </value> + </execParameter> + </implementation> + + <implementation xmi:id="Hello_ReceiverComponentImplementation"> + <name>Hello_ReceiverComponentImplementation</name> + <source/> + <artifact xmi:idref="Hello_Receiver_ExecArtifact" /> + <artifact xmi:idref="Hello_Receiver_SvntArtifact" /> + </implementation> + + <implementation xmi:id="Hello_SenderHomeImplementation"> + <name>Hello_SenderHomeImplementation</name> + <source/> + <artifact xmi:idref="Hello_Sender_ExecArtifact" /> + <artifact xmi:idref="Hello_Sender_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>home factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Hello_SenderHome_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Hello_SenderHome_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Hello_Sender_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Hello_Sender_exec</string> + </value> + </value> + </execParameter> + </implementation> + + <implementation xmi:id="Hello_SenderComponentImplementation"> + <name>Hello_SenderComponentImplementation</name> + <source/> + <artifact xmi:idref="Hello_Sender_ExecArtifact" /> + <artifact xmi:idref="Hello_Sender_SvntArtifact" /> + </implementation> + + <instance xmi:id="Hello_ReceiverHomeInstance"> + <name>Hello_ReceiverHome</name> + <node>ReceiverNode</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="Hello_ReceiverHomeImplementation" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>ReceiverHome.ior</string> + </value> + </value> + </configProperty> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>ReceiverHome</string> + </value> + </value> + </configProperty> + </instance> + + <instance xmi:id="Hello_ReceiverComponentInstance"> + <name>Hello_ReceiverComponent</name> + <node>ReceiverNode</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="Hello_ReceiverComponentImplementation" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Hello_ReceiverHome</string> + </value> + </value> + </configProperty> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Receiver.ior</string> + </value> + </value> + </configProperty> + <configProperty> + <name>iterations</name> + <value> + <type> + <kind>tk_short</kind> + </type> + <value> + <short>10</short> + </value> + </value> + </configProperty> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Receiver</string> + </value> + </value> + </configProperty> + </instance> + + <instance xmi:id="Hello_SenderHomeInstance"> + <name>Hello_SenderHome</name> + <node>SenderNode</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="Hello_SenderHomeImplementation" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>SenderHome.ior</string> + </value> + </value> + </configProperty> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>SenderHome</string> + </value> + </value> + </configProperty> + </instance> + + <instance xmi:id="Hello_SenderComponentInstance"> + <name>Hello_SenderComponent</name> + <node>SenderNode</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="Hello_SenderComponentImplementation" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Hello_SenderHome</string> + </value> + </value> + </configProperty> + <configProperty> + <name>local_message</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>hello, world!</string> + </value> + </value> + </configProperty> + <configProperty> + <name>color</name> + <value> + <type> + <kind>tk_enum</kind> + <enum> + <name>COLOR_SELECTION</name> + <typeId>IDL:Hello/COLOR_SELECTION:1.0</typeId> + <member>empty</member> + <member>white</member> + <member>red</member> + <member>yellow</member> + </enum> + </type> + <value> + <enum>yellow</enum> + </value> + </value> + </configProperty> + <configProperty> + <name>log_time</name> + <value> + <type> + <kind>tk_boolean</kind> + </type> + <value> + <boolean>false</boolean> + </value> + </value> + </configProperty> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Sender.ior</string> + </value> + </value> + </configProperty> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.RegisterNaming</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Sender</string> + </value> + </value> + </configProperty> + </instance> + + <connection> + <name>MessageConnection</name> + <internalEndpoint> + <portName>read_message</portName> + <provider>false</provider> + <kind>SimplexReceptacle</kind> + <instance xmi:idref="Hello_ReceiverComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>push_message</portName> + <provider>true</provider> + <kind>Facet</kind> + <instance xmi:idref="Hello_SenderComponentInstance" /> + </internalEndpoint> + </connection> + + <connection> + <name>EventConnection</name> + <internalEndpoint> + <portName>click_out</portName> + <provider>false</provider> + <kind>EventPublisher</kind> + <instance xmi:idref="Hello_SenderComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>click_in</portName> + <provider>true</provider> + <kind>EventConsumer</kind> + <instance xmi:idref="Hello_ReceiverComponentInstance" /> + </internalEndpoint> + </connection> + + <!-- Artifacts declarations --> + <artifact xmi:id="Hello_Receiver_ExecArtifact"> + <name>Hello_Receiver_exec</name> + <source/> + <node/> + <location>Hello_Receiver_exec</location> + </artifact> + <artifact xmi:id="Hello_Receiver_SvntArtifact"> + <name>Hello_Receiver_svnt</name> + <source/> + <node/> + <location>Hello_Receiver_svnt</location> + </artifact> + + <artifact xmi:id="Hello_Sender_ExecArtifact"> + <name>Hello_Sender_exec</name> + <source/> + <node/> + <location>Hello_Sender_exec</location> + </artifact> + <artifact xmi:id="Hello_Sender_SvntArtifact"> + <name>Hello_Sender_svnt</name> + <source/> + <node/> + <location>Hello_Sender_svnt</location> + </artifact> + +</Deployment:DeploymentPlan> diff --git a/modules/CIAO/examples/Hello/descriptors/DeploymentPlan_without_ns.cdp b/modules/CIAO/examples/Hello/descriptors/DeploymentPlan_without_ns.cdp new file mode 100644 index 00000000000..6d5b3f05780 --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors/DeploymentPlan_without_ns.cdp @@ -0,0 +1,317 @@ +<Deployment:DeploymentPlan + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Hello_Deployment_1</label> + <UUID>Hello_Deployment_1</UUID> + + <!-- Implementations declarations --> + + <!-- Home implementation --> + <implementation xmi:id="Hello_ReceiverHomeImplementation"> + <name>Hello_ReceiverHomeImplementation</name> + <source/> + <artifact xmi:idref="Hello_Receiver_ExecArtifact" /> + <artifact xmi:idref="Hello_Receiver_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>home factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Hello_ReceiverHome_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Hello_ReceiverHome_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Hello_Receiver_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Hello_Receiver_exec</string> + </value> + </value> + </execParameter> + </implementation> + + <implementation xmi:id="Hello_ReceiverComponentImplementation"> + <name>Hello_ReceiverComponentImplementation</name> + <source/> + <artifact xmi:idref="Hello_Receiver_ExecArtifact" /> + <artifact xmi:idref="Hello_Receiver_SvntArtifact" /> + </implementation> + + <implementation xmi:id="Hello_SenderHomeImplementation"> + <name>Hello_SenderHomeImplementation</name> + <source/> + <artifact xmi:idref="Hello_Sender_ExecArtifact" /> + <artifact xmi:idref="Hello_Sender_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>home factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Hello_SenderHome_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Hello_SenderHome_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Hello_Sender_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Hello_Sender_exec</string> + </value> + </value> + </execParameter> + </implementation> + + <implementation xmi:id="Hello_SenderComponentImplementation"> + <name>Hello_SenderComponentImplementation</name> + <source/> + <artifact xmi:idref="Hello_Sender_ExecArtifact" /> + <artifact xmi:idref="Hello_Sender_SvntArtifact" /> + </implementation> + + <instance xmi:id="Hello_ReceiverHomeInstance"> + <name>Hello_ReceiverHome</name> + <node>ReceiverNode</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="Hello_ReceiverHomeImplementation" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>ReceiverHome.ior</string> + </value> + </value> + </configProperty> + </instance> + + <instance xmi:id="Hello_ReceiverComponentInstance"> + <name>Hello_ReceiverComponent</name> + <node>ReceiverNode</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="Hello_ReceiverComponentImplementation" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Hello_ReceiverHome</string> + </value> + </value> + </configProperty> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Receiver.ior</string> + </value> + </value> + </configProperty> + </instance> + + <instance xmi:id="Hello_SenderHomeInstance"> + <name>Hello_SenderHome</name> + <node>SenderNode</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="Hello_SenderHomeImplementation" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>SenderHome.ior</string> + </value> + </value> + </configProperty> + </instance> + + <instance xmi:id="Hello_SenderComponentInstance"> + <name>Hello_SenderComponent</name> + <node>SenderNode</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="Hello_SenderComponentImplementation" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Hello_SenderHome</string> + </value> + </value> + </configProperty> + <configProperty> + <name>local_message</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>hello, world!</string> + </value> + </value> + </configProperty> + <configProperty> + <name>color</name> + <value> + <type> + <kind>tk_enum</kind> + <enum> + <name>COLOR_SELECTION</name> + <typeId>IDL:Hello/COLOR_SELECTION:1.0</typeId> + <member>empty</member> + <member>white</member> + <member>red</member> + <member>yellow</member> + </enum> + </type> + <value> + <enum>yellow</enum> + </value> + </value> + </configProperty> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.InstanceIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Sender.ior</string> + </value> + </value> + </configProperty> + </instance> + + <connection> + <name>MessageConnection</name> + <internalEndpoint> + <portName>read_message</portName> + <provider>false</provider> + <kind>SimplexReceptacle</kind> + <instance xmi:idref="Hello_ReceiverComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>push_message</portName> + <provider>true</provider> + <kind>Facet</kind> + <instance xmi:idref="Hello_SenderComponentInstance" /> + </internalEndpoint> + </connection> + + <connection> + <name>EventConnection</name> + <internalEndpoint> + <portName>click_out</portName> + <provider>false</provider> + <kind>EventPublisher</kind> + <instance xmi:idref="Hello_SenderComponentInstance" /> + </internalEndpoint> + <internalEndpoint> + <portName>click_in</portName> + <provider>true</provider> + <kind>EventConsumer</kind> + <instance xmi:idref="Hello_ReceiverComponentInstance" /> + </internalEndpoint> + </connection> + + <!-- Artifacts declarations --> + <artifact xmi:id="Hello_Receiver_ExecArtifact"> + <name>Hello_Receiver_exec</name> + <source/> + <node/> + <location>Hello_Receiver_exec</location> + </artifact> + <artifact xmi:id="Hello_Receiver_SvntArtifact"> + <name>Hello_Receiver_svnt</name> + <source/> + <node/> + <location>Hello_Receiver_svnt</location> + </artifact> + + <artifact xmi:id="Hello_Sender_ExecArtifact"> + <name>Hello_Sender_exec</name> + <source/> + <node/> + <location>Hello_Sender_exec</location> + </artifact> + <artifact xmi:id="Hello_Sender_SvntArtifact"> + <name>Hello_Sender_svnt</name> + <source/> + <node/> + <location>Hello_Sender_svnt</location> + </artifact> + +</Deployment:DeploymentPlan> diff --git a/modules/CIAO/examples/Hello/descriptors/Domain.cdd b/modules/CIAO/examples/Hello/descriptors/Domain.cdd new file mode 100644 index 00000000000..882b29724cd --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors/Domain.cdd @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<Deployment:Domain + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> +<label>Hello Domain</label> +<UUID>effd4bd0-6db0-4c50-9bb7-db9decebae1c</UUID> +<node> + <name>Sender</name> + <label>Sender's Node</label> +</node> +<node> + <name>Receiver</name> + <label>Receiver's Node</label> +</node> +</Deployment:Domain> diff --git a/modules/CIAO/examples/Hello/descriptors/Hello.pcd b/modules/CIAO/examples/Hello/descriptors/Hello.pcd new file mode 100644 index 00000000000..a0f5051444a --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors/Hello.pcd @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:PackageConfiguration +xmlns:Deployment="http://www.omg.org/Deployment" +xmlns:xmi="http://www.omg.org/XMI" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Hello Example Configuration for Unix machines</label> + <UUID>559d65e8-0407-48c0-a158-dafe21360fef</UUID> + <basePackage href="Hello.cpd"/> +</Deployment:PackageConfiguration> diff --git a/modules/CIAO/examples/Hello/descriptors/NodeManagerMap.dat b/modules/CIAO/examples/Hello/descriptors/NodeManagerMap.dat new file mode 100644 index 00000000000..fb390806728 --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors/NodeManagerMap.dat @@ -0,0 +1,4 @@ +SenderNode corbaloc:iiop:localhost:60001/Sender.NodeManager + + +ReceiverNode corbaloc:iiop:localhost:60002/Receiver.NodeManager
\ No newline at end of file diff --git a/modules/CIAO/examples/Hello/descriptors/package.tpd b/modules/CIAO/examples/Hello/descriptors/package.tpd new file mode 100644 index 00000000000..d447a2abb4a --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors/package.tpd @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:TopLevelPackageDescription +xmlns:Deployment="http://www.omg.org/Deployment" +xmlns:xmi="http://www.omg.org/XMI" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <package href="Hello.pcd"/> +</Deployment:TopLevelPackageDescription> diff --git a/modules/CIAO/examples/Hello/descriptors/run_NodeDaemons.pl b/modules/CIAO/examples/Hello/descriptors/run_NodeDaemons.pl new file mode 100755 index 00000000000..2baf6b0cb0b --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors/run_NodeDaemons.pl @@ -0,0 +1,43 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::Run_Test; + +$status = 0; +$iorfile1 = PerlACE::LocalFile ("NodeApp1.ior"); +$iorfile2 = PerlACE::LocalFile ("NodeApp2.ior"); + +#for ($iter = 0; $iter <= $#ARGV; $iter++) { +# if ($ARGV[$iter] eq "-h" || $ARGV[$iter] eq "-?") { +# print "Run_Test Perl script for NodeApplicationTest \n\n"; +# print "run_test \n"; +# print "\n"; +# print "-h -- prints this information\n"; +# exit 0; +# } +#} + + +unlink $iorfile1; +unlink $iorfile2; + +$CIAO_ROOT=$ENV{'CIAO_ROOT'}; +$DANCE_ROOT = "$ENV{'DANCE_ROOT'}"; + +PerlACE::add_lib_path ('../lib'); + +$SV1 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager", + "-ORBEndpoint iiop://localhost:60001 -s $CIAO_ROOT/bin/ciao_componentserver -n Sender=NodeApp1.ior -t 30 --instance-nc corbaloc:rir:/NameService"); + +$SV2 = new PerlACE::Process ("$DANCE_ROOT/bin/dance_node_manager", + "-ORBEndpoint iiop://localhost:60002 -s $CIAO_ROOT/bin/ciao_componentserver -n Receiver=NodeApp2.ior -t 30 --instance-nc corbaloc:rir:/NameService"); + +$SV1->Spawn (); +$SV2->Spawn (); + +sleep (99999999999); diff --git a/modules/CIAO/examples/Hello/descriptors/run_test.pl b/modules/CIAO/examples/Hello/descriptors/run_test.pl new file mode 100755 index 00000000000..a34d57731eb --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors/run_test.pl @@ -0,0 +1,205 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{'ACE_ROOT'}/bin"; +use PerlACE::Run_Test; + +$CIAO_ROOT = "$ENV{'CIAO_ROOT'}"; +$TAO_ROOT = "$ENV{'TAO_ROOT'}"; +$DAnCE = "$ENV{'DANCE_ROOT'}"; + +$daemons_running = 0; +$em_running = 0; +$ns_running = 0; + +$daemons = 2; +@ports = ( 60001, 60002 ); +@iorfiles = ( "NodeApp1.ior", "NodeApp2.ior" ); +@nodenames = ( "Sender", "Receiver" ); + +$status = 0; +$dat_file = "NodeManagerMap.dat"; +$cdp_file = "DeploymentPlan.cdp"; + +$controller_exec = "$CIAO_ROOT/examples/Hello/Sender/starter"; + +$nsior = PerlACE::LocalFile ("ns.ior"); + +PerlACE::add_lib_path ('../lib'); + +unlink $nsior; + +$E = 0; +$EM = 0; + +# Delete if there are any .ior files. +sub delete_ior_files { + for ($i = 0; $i < $daemons; ++$i) { + unlink $iorfiles[$i]; + } + unlink PerlACE::LocalFile ("EM.ior"); + unlink PerlACE::LocalFile ("Receiver.ior"); + unlink PerlACE::LocalFile ("Sender.ior"); + unlink PerlACE::LocalFile ("DAM.ior"); + unlink PerlACE::LocalFile ("ns.ior"); +} + +sub kill_node_daemons { + for ($i = 0; $i < $daemons; ++$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } +} + +sub kill_open_processes { + if ($daemons_running == 1) { + kill_node_daemons (); + } + + if ($em_running == 1) { + $EM->Kill (); + $EM->TimedWait (1); + } + + if ($ns_running == 1) { + $NS->Kill (); + $NS->TimedWait (1); + } + +} + +sub run_node_daemons { + for ($i = 0; $i < $daemons; ++$i) + { + $iorfile = $iorfiles[$i]; + $port = $ports[$i]; + $nodename = $nodenames[$i]; + $iiop = "iiop://localhost:$port"; + $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + + $d_cmd = "$DAnCE/bin/dance_node_manager"; + $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --instance-nc corbaloc:rir:/NameService"; + + print "Run dance_node_manager with $d_param\n"; + + $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param); + $result = $Daemons[$i]->Spawn (); + push(@processes, $Daemons[$i]); + + if (PerlACE::waitforfile_timed ($iorfile, + 30) == -1) { + print STDERR + "ERROR: The ior $iorfile file of node daemon $i could not be found\n"; + for (; $i >= 0; --$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } + return -1; + } + } + return 0; +} + +delete_ior_files (); + +# Invoke naming service + +$NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior"); + +$NS->Spawn (); + +print STDERR "Starting Naming Service with -m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior\n"; + +if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1) +{ + print STDERR "ERROR: cannot find naming service IOR file\n"; + $NS->Kill (); + exit 1; +} + +$ns_running = 1; + +# Set up NamingService environment +$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService"; + + +# Invoke node daemons. +print "Invoking node daemons\n"; +$status = run_node_daemons (); + +if ($status != 0) { + print STDERR "ERROR: Unable to execute the node daemons\n"; + kill_open_processes (); + exit 1; +} + +$daemons_running = 1; + +# Invoke execution manager. +print "Invoking execution manager (dance_execution_manager.exe) with -eEM.ior --node-map $dat_file\n"; +$EM = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager", + "-eEM.ior --node-map $dat_file"); +$EM->Spawn (); + +if (PerlACE::waitforfile_timed ("EM.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR + "ERROR: The ior file of execution manager could not be found\n"; + kill_open_processes (); + exit 1; +} + +$em_running = 1; + +# Invoke executor - start the application -. +print "Invoking executor - start the application -\n"; + +print "Start dance_plan_launcher.exe with -x DeploymentPlan.cdp -k file://EM.ior\n"; +$E = + new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher", + "-x DeploymentPlan.cdp -k file://EM.ior"); + +$E->SpawnWaitKill (50); + +if (PerlACE::waitforfile_timed ( + "Receiver.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: The ior file of receiver could not be found\n"; + kill_open_processes (); + exit 1; +} + +if (PerlACE::waitforfile_timed ("Sender.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: The ior file of sender could not be found\n"; + kill_open_processes (); + exit 1; +} + +print "Invoking the controller ($controller_exec -k file://Sender.ior)\n"; +$controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior"); +$result = $controller->SpawnWaitKill (30); + +if ($result != 0) { + print STDERR "ERROR: The controller returned $result\n"; + $status = 1; +} + +# Invoke executor - stop the application -. +print "Invoking executor - stop the application -\n"; +print "by running dance_plan_launcher.exe with -k file://EM.ior -x DeploymentPlan.cdp -q\n"; + +$E = + new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher", + "-k file://EM.ior -x DeploymentPlan.cdp -q"); +$E->SpawnWaitKill (30); + +print "Executor returned.\n"; +print "Shutting down rest of the processes.\n"; + +delete_ior_files (); +kill_open_processes (); + +exit $status; diff --git a/modules/CIAO/examples/Hello/descriptors/run_test_alias.pl b/modules/CIAO/examples/Hello/descriptors/run_test_alias.pl new file mode 100755 index 00000000000..4d53ae417d4 --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors/run_test_alias.pl @@ -0,0 +1,195 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{'ACE_ROOT'}/bin"; +use PerlACE::Run_Test; + +$CIAO_ROOT = "$ENV{'CIAO_ROOT'}"; +$TAO_ROOT = "$ENV{'TAO_ROOT'}"; +$DAnCE = "$ENV{'DANCE_ROOT'}"; +$daemons_running = 0; +$em_running = 0; +$ns_running = 0; +$daemons = 1; +@ports = ( 60001 ); +@iorfiles = ( "NodeApp1.ior" ); +@nodenames = ( "Alias" ); +$status = 0; +$dat_file = "Aliased_Map.dat"; +$cdp_file = "DeploymentPlan.cdp"; +$controller_exec = "$CIAO_ROOT/examples/Hello/Sender/starter"; + +$nsior = PerlACE::LocalFile ("ns.ior"); + +PerlACE::add_lib_path ('../lib'); + +unlink $nsior; + +$E = 0; +$EM = 0; + +# Delete if there are any .ior files. +sub delete_ior_files { + for ($i = 0; $i < $daemons; ++$i) { + unlink $iorfiles[$i]; + } + unlink PerlACE::LocalFile ("EM.ior"); + unlink PerlACE::LocalFile ("Receiver.ior"); + unlink PerlACE::LocalFile ("Sender.ior"); + unlink PerlACE::LocalFile ("DAM.ior"); + unlink PerlACE::LocalFile ("ns.ior"); +} + +sub kill_node_daemons { + for ($i = 0; $i < $daemons; ++$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } +} + +sub kill_open_processes { + if ($daemons_running == 1) { + kill_node_daemons (); + } + + if ($em_running == 1) { + $EM->Kill (); + $EM->TimedWait (1); + } + + if ($ns_running == 1) { + $NS->Kill (); + $NS->TimedWait (1); + } + +} + +sub run_node_daemons { + for ($i = 0; $i < $daemons; ++$i) + { + $iorfile = $iorfiles[$i]; + $port = $ports[$i]; + $nodename = $nodenames[$i]; + $iiop = "iiop://localhost:$port"; + $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + + $d_cmd = "$DAnCE/bin/dance_node_manager"; + $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --instance-nc corbaloc:rir:/NameService"; + + $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param); + $result = $Daemons[$i]->Spawn (); + push(@processes, $Daemons[$i]); + + if (PerlACE::waitforfile_timed ($iorfile, + 30) == -1) { + print STDERR + "ERROR: The ior $iorfile file of node daemon $i could not be found\n"; + for (; $i >= 0; --$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } + return -1; + } + } + return 0; +} + +delete_ior_files (); + +# Invoke naming service + +$NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior"); + +$NS->Spawn (); + +print STDERR "Starting Naming Service\n"; + +if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1) +{ + print STDERR "ERROR: cannot find naming service IOR file\n"; + $NS->Kill (); + exit 1; +} + +$ns_running = 1; + +# Set up NamingService environment +$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService"; + + +# Invoke node daemons. +print "Invoking node daemons\n"; +$status = run_node_daemons (); + +if ($status != 0) { + print STDERR "ERROR: Unable to execute the node daemons\n"; + kill_open_processes (); + exit 1; +} + +$daemons_running = 1; + +# Invoke execution manager. +print "Invoking execution manager\n"; +$EM = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager", + "-eEM.ior --node-map $dat_file"); +$EM->Spawn (); + +if (PerlACE::waitforfile_timed ("EM.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR + "ERROR: The ior file of execution manager could not be found\n"; + kill_open_processes (); + exit 1; +} + +$em_running = 1; + +# Invoke executor - start the application -. +print "Invoking executor - start the application -\n"; +$E = + new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher", + "-x DeploymentPlan.cdp -k file://EM.ior"); + +$E->SpawnWaitKill (5000); + +if (PerlACE::waitforfile_timed ( + "Receiver.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: The ior file of receiver could not be found\n"; + kill_open_processes (); + exit 1; +} + +if (PerlACE::waitforfile_timed ("Sender.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: The ior file of sender could not be found\n"; + kill_open_processes (); + exit 1; +} + +print "Invoking the controller\n"; +$controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior"); +$result = $controller->SpawnWaitKill (3000); + +if ($result != 0) { + print STDERR "ERROR: The controller returned $result\n"; + $status = 1; +} + +# Invoke executor - stop the application -. +print "Invoking executor - stop the application -\n"; +$E = + new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher", + "-k file://EM.ior -x DeploymentPlan.cdp -q"); +$E->SpawnWaitKill (3000); + +print "Executor returned.\n"; +print "Shutting down rest of the processes.\n"; + +delete_ior_files (); +kill_open_processes (); + +exit $status; diff --git a/modules/CIAO/examples/Hello/descriptors/run_test_without_ns.pl b/modules/CIAO/examples/Hello/descriptors/run_test_without_ns.pl new file mode 100755 index 00000000000..f973c3837dc --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors/run_test_without_ns.pl @@ -0,0 +1,181 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{'ACE_ROOT'}/bin"; +use PerlACE::Run_Test; + +$CIAO_ROOT = "$ENV{'CIAO_ROOT'}"; +$TAO_ROOT = "$ENV{'TAO_ROOT'}"; +$DAnCE = "$ENV{'DANCE_ROOT'}"; + +$daemons_running = 0; +$em_running = 0; +$ns_running = 0; + +$daemons = 2; +@ports = ( 60001, 60002 ); +@iorfiles = ( "NodeApp1.ior", "NodeApp2.ior" ); +@nodenames = ( "Sender", "Receiver" ); + +$status = 0; +$dat_file = "NodeManagerMap.dat"; +$cdp_file = "DeploymentPlan_without_ns.cdp"; + +$controller_exec = "$CIAO_ROOT/examples/Hello/Sender/starter"; + +PerlACE::add_lib_path ('../lib'); + +unlink $nsior; + +$E = 0; +$EM = 0; + +# Delete if there are any .ior files. +sub delete_ior_files { + for ($i = 0; $i < $daemons; ++$i) { + unlink $iorfiles[$i]; + } + unlink PerlACE::LocalFile ("EM.ior"); + unlink PerlACE::LocalFile ("Receiver.ior"); + unlink PerlACE::LocalFile ("Sender.ior"); + unlink PerlACE::LocalFile ("DAM.ior"); +} + +sub kill_node_daemons { + for ($i = 0; $i < $daemons; ++$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } +} + +sub kill_open_processes { + if ($daemons_running == 1) { + kill_node_daemons (); + } + + if ($em_running == 1) { + $EM->Kill (); + $EM->TimedWait (1); + } + + if ($ns_running == 1) { + $NS->Kill (); + $NS->TimedWait (1); + } + +} + +sub run_node_daemons { + for ($i = 0; $i < $daemons; ++$i) + { + $iorfile = $iorfiles[$i]; + $port = $ports[$i]; + $nodename = $nodenames[$i]; + $iiop = "iiop://localhost:$port"; + $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + + $d_cmd = "$DAnCE/bin/dance_node_manager"; + $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30"; + + print "Run dance_node_manager with $d_param\n"; + + $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param); + $result = $Daemons[$i]->Spawn (); + push(@processes, $Daemons[$i]); + + if (PerlACE::waitforfile_timed ($iorfile, + 30) == -1) { + print STDERR + "ERROR: The ior $iorfile file of node daemon $i could not be found\n"; + for (; $i >= 0; --$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } + return -1; + } + } + return 0; +} + +delete_ior_files (); + +# Invoke node daemons. +print "Invoking node daemons\n"; +$status = run_node_daemons (); + +if ($status != 0) { + print STDERR "ERROR: Unable to execute the node daemons\n"; + kill_open_processes (); + exit 1; +} + +$daemons_running = 1; + +# Invoke execution manager. +print "Invoking execution manager (dance_execution_manager.exe) with -eEM.ior --node-map $dat_file\n"; +$EM = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager", + "-eEM.ior --node-map $dat_file"); +$EM->Spawn (); + +if (PerlACE::waitforfile_timed ("EM.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR + "ERROR: The ior file of execution manager could not be found\n"; + kill_open_processes (); + exit 1; +} + +$em_running = 1; + +# Invoke executor - start the application -. +print "Invoking executor - start the application -\n"; + +print "Start dance_plan_launcher.exe with -x DeploymentPlan_without_ns.cdp -k file://EM.ior\n"; +$E = + new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher", + "-x DeploymentPlan_without_ns.cdp -k file://EM.ior"); + +$E->SpawnWaitKill (5000); + +if (PerlACE::waitforfile_timed ( + "Receiver.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: The ior file of receiver could not be found\n"; + kill_open_processes (); + exit 1; +} + +if (PerlACE::waitforfile_timed ("Sender.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: The ior file of sender could not be found\n"; + kill_open_processes (); + exit 1; +} + +print "Invoking the controller ($controller_exec -k file://Sender.ior)\n"; +$controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior"); +$result = $controller->SpawnWaitKill (3000); + +if ($result != 0) { + print STDERR "ERROR: The controller returned $result\n"; + $status = 1; +} + +# Invoke executor - stop the application -. +print "Invoking executor - stop the application -\n"; +print "by running dance_plan_launcher.exe with -k file://EM.ior -x DeploymentPlan.cdp -q\n"; + +$E = + new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher", + "-k file://EM.ior -x DeploymentPlan.cdp -q"); +$E->SpawnWaitKill (3000); + +print "Executor returned.\n"; +print "Shutting down rest of the processes.\n"; + +delete_ior_files (); +kill_open_processes (); + +exit $status; diff --git a/modules/CIAO/examples/Hello/descriptors/svc_em.conf b/modules/CIAO/examples/Hello/descriptors/svc_em.conf new file mode 100644 index 00000000000..2aa568bf9af --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors/svc_em.conf @@ -0,0 +1,9 @@ +# $Id$ +# +# Please see $TAO_ROOT/docs/Options.html for details on these options. +# + +static Advanced_Resource_Factory "-ORBReactorType select_st -ORBInputCDRAllocator null -ORBConnectionCacheLock null -ORBFlushingStrategy blocking" +static Client_Strategy_Factory "-ORBProfileLock null -ORBClientConnectionHandler RW" +static Server_Strategy_Factory "-ORBConcurrency thread-per-connection -ORBPOALock thread -ORBAllowReactivationOfSystemids 0" + diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/NodeManagerMap.dat b/modules/CIAO/examples/Hello/descriptors_RTCCM/NodeManagerMap.dat new file mode 100644 index 00000000000..9880f37997e --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/NodeManagerMap.dat @@ -0,0 +1,2 @@ +SenderNode corbaloc:iiop:localhost:60001/NodeManager +ReceiverNode corbaloc:iiop:localhost:60002/NodeManager
\ No newline at end of file diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/RTsvc.conf b/modules/CIAO/examples/Hello/descriptors_RTCCM/RTsvc.conf new file mode 100644 index 00000000000..1bfd9e8eaba --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/RTsvc.conf @@ -0,0 +1,5 @@ +# No options required for regular testing + +# For real-time testing, uncomment the following line: +static RT_ORB_Loader "-ORBSchedPolicy SCHED_FIFO -ORBScopePolicy SYSTEM" + diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/input.csr b/modules/CIAO/examples/Hello/descriptors_RTCCM/input.csr new file mode 100644 index 00000000000..a3881225930 --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/input.csr @@ -0,0 +1,70 @@ + +<CIAO:ServerResources + xmlns:CIAO="http://www.dre.vanderbilt.edu/ServerResources" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.dre.vanderbilt.edu/ServerResources CIAOServerResources.xsd"> + + <cmdline> + <arg> -ORBDebugLevel 10 -ORBEndpoint corbaloc://foo/bar</arg> + </cmdline> + + <svcconf> + <uri> + svcconf.uri + </uri> + </svcconf> + + <orbConfigs> + <resources> + <threadpool id="threadpool-1"> + <stacksize>100</stacksize> + <static_threads>50</static_threads> + <dynamic_threads>25</dynamic_threads> + <default_priority>5</default_priority> + <allow_request_buffering>true</allow_request_buffering> + <max_buffered_requests>10</max_buffered_requests> + <max_request_buffered_size>20</max_request_buffered_size> + </threadpool> + + <threadpoolWithLanes id="threadpool-2"> + <threadpoolLane> + <static_threads>50</static_threads> + <dynamic_threads>25</dynamic_threads> + <priority>36</priority> + </threadpoolLane> + <stacksize>100</stacksize> + <allow_borrowing>true</allow_borrowing> + <allow_request_buffering>true</allow_request_buffering> + <max_buffered_requests>10</max_buffered_requests> + <max_request_buffered_size>20</max_request_buffered_size> + </threadpoolWithLanes> + + <connectionBands id="cb-1"> + <band> + <low>0</low> + <high>10</high> + </band> + <band> + <low>11</low> + <high>20</high> + </band> + </connectionBands> + </resources> + + <policySet id="test_policy_set_id"> + <priorityModel server_priority="10"> + <priority_model>SERVER_DECLARED</priority_model> + </priorityModel> + <priorityModel> + <priority_model>CLIENT_PROPAGATED</priority_model> + </priorityModel> + + <threadpool>threadpool-1</threadpool> + <threadpool>threadpool-2</threadpool> + + <priorityBandedConnection>cb-1</priorityBandedConnection> + + </policySet> + </orbConfigs> +</CIAO:ServerResources>
\ No newline at end of file diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.cdp b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.cdp new file mode 100644 index 00000000000..67f51f99fb9 --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.cdp @@ -0,0 +1,215 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<Deployment:deploymentPlan + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Modified_Deployment.xsd"> + + <label>Hello-DeploymentPlan</label> + + <UUID>Hello_Plan_UUID_0001</UUID> + + <realizes> + <label>BasicSP-realizes-cid</label> + <UUID>c0965470-7b83-11d9-9669-0800200c9a66</UUID> + <specificType/> + <supportedType>IDL:Hello/Sender:1.0</supportedType> + <port> + <name>read_message</name> + <specificType>IDL:Hello/ReadMessage:1.0</specificType> + <supportedType>IDL:Hello/ReadMessage:1.0</supportedType> + <provider>false</provider> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>true</exclusiveUser> + <optional>false</optional> + <kind>SimplexReceptacle</kind> + </port> + </realizes> + + <implementation id="Hello-Sender-mdd"> + <name>Hello-Sender-mdd</name> + <source/> + <artifact>Hello-Sender_exec</artifact> + <artifact>Hello-Sender_svnt</artifact> + </implementation> + + <implementation id="Hello-Receiver-mdd"> + <name>Hello-Receiver-mdd</name> + <source/> + <artifact>Hello-Receiver_exec</artifact> + <artifact>Hello-Receiver_svnt</artifact> + </implementation> + + <instance id="Hello-Sender-idd"> + <name>Hello-Sender-idd</name> + <node>SenderNode</node> + <source/> + <implementation>Hello-Sender-mdd</implementation> + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Sender.ior</string> + </value> + </value> + </configProperty> + <configProperty> + <name>local_message</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This is a test message passed in through XML.</string> + </value> + </value> + </configProperty> + <deployedResource> + <resourceUsage>InstanceUsesResource</resourceUsage> + <requirementName>CIAO:PolicySet</requirementName> + <resourceName>test_server_resource_id</resourceName> + <resourceValue> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>test_policy_set_id</string> + </value> + </resourceValue> + </deployedResource> + </instance> + + <instance id="Hello-Receiver-idd"> + <name>Hello-Receiver-idd</name> + <node>ReceiverNode</node> + <source/> + <implementation>Hello-Receiver-mdd</implementation> + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Receiver.ior</string> + </value> + </value> + </configProperty> + </instance> + + <connection> + <name>hell_event_connection</name> + <internalEndpoint> + <portName>click_out</portName> + <kind>EventPublisher</kind> + <instance>Hello-Sender-idd</instance> + </internalEndpoint> + <internalEndpoint> + <portName>click_in</portName> + <kind>EventConsumer</kind> + <instance>Hello-Receiver-idd</instance> + </internalEndpoint> + </connection> + + <connection> + <name>hello_facet_connection</name> + <internalEndpoint> + <portName>push_message</portName> + <kind>Facet</kind> + <instance>Hello-Sender-idd</instance> + </internalEndpoint> + <internalEndpoint> + <portName>read_message</portName> + <kind>SimplexReceptacle</kind> + <instance>Hello-Receiver-idd</instance> + </internalEndpoint> + </connection> + + <artifact id="Hello-Sender_exec"> + <name>Sender_exec</name> + <source/> + <node/> + <location>Hello_Sender_exec</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Hello_SenderHome_Impl</string> + </value> + </value> + </execParameter> + </artifact> + + <artifact id="Hello-Sender_svnt"> + <name>Sender_svnt</name> + <source/> + <node/> + <location>Hello_Sender_svnt</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Hello_SenderHome_Servant</string> + </value> + </value> + </execParameter> + </artifact> + + <artifact id="Hello-Receiver_exec"> + <name>Receiver_exec</name> + <source/> + <node/> + <location>Hello_Receiver_exec</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Hello_ReceiverHome_Impl</string> + </value> + </value> + </execParameter> + </artifact> + + <artifact id="Hello-Receiver_svnt"> + <name>Receiver_svnt</name> + <source/> + <node/> + <location>Hello_Receiver_svnt</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Hello_ReceiverHome_Servant</string> + </value> + </value> + </execParameter> + </artifact> + + <infoProperty> + <name>CIAOServerResources</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>rt-config-example.csr</string> + </value> + </value> + </infoProperty> + +</Deployment:deploymentPlan> diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.csr b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.csr new file mode 100644 index 00000000000..fa567f78c90 --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-config-example.csr @@ -0,0 +1,73 @@ + +<CIAO:ServerResources + xmlns:CIAO="http://www.dre.vanderbilt.edu/ServerResources" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.dre.vanderbilt.edu/ServerResources CIAOServerResources.xsd" + id="test_server_resource_id"> + + <cmdline> + <arg>-r</arg> + </cmdline> + + <svcconf> + <uri>RTsvc.conf</uri> + </svcconf> + + <orbConfigs> + <resources> + <threadpool id="threadpool-1"> + <stacksize>0</stacksize> + <static_threads>5</static_threads> + <dynamic_threads>0</dynamic_threads> + <default_priority>1</default_priority> + <allow_request_buffering>false</allow_request_buffering> + <max_buffered_requests>0</max_buffered_requests> + <max_request_buffered_size>0</max_request_buffered_size> + </threadpool> + + <threadpoolWithLanes id="threadpool-2"> + <threadpoolLane> + <static_threads>5</static_threads> + <dynamic_threads>0</dynamic_threads> + <priority>2</priority> + </threadpoolLane> + <threadpoolLane> + <static_threads>5</static_threads> + <dynamic_threads>0</dynamic_threads> + <priority>1</priority> + </threadpoolLane> + <stacksize>0</stacksize> + <allow_borrowing>false</allow_borrowing> + <allow_request_buffering>false</allow_request_buffering> + <max_buffered_requests>0</max_buffered_requests> + <max_request_buffered_size>0</max_request_buffered_size> + </threadpoolWithLanes> + + <connectionBands id="cb-1"> + <band> + <low>0</low> + <high>10</high> + </band> + <band> + <low>11</low> + <high>20</high> + </band> + </connectionBands> + </resources> + + <policySet id="test_policy_set_id"> + <priorityModel server_priority="1"> + <priority_model>SERVER_DECLARED</priority_model> + </priorityModel> + </policySet> + + <policySet id="test_policy_set_2"> + <priorityModel> + <priority_model>CLIENT_PROPAGATED</priority_model> + </priorityModel> + <threadpool>threadpool-2</threadpool> + </policySet> + + </orbConfigs> +</CIAO:ServerResources> diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-example.cdp b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-example.cdp new file mode 100644 index 00000000000..43b4bed5cec --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt-example.cdp @@ -0,0 +1,271 @@ +<Deployment:deploymentPlan + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + + <label>Hello-DeploymentPlan</label> + <UUID>Hello_Plan_UUID_0001</UUID> + <!-- Could be ZERO --> + <realizes> + <label>BasicSP-realizes-cid</label> + <UUID>c0965470-7b83-11d9-9669-0800200c9a66</UUID> + <specificType><!-- @@ What does here? --></specificType> + <supportedType>IDL:BasicSP/EC:1.0</supportedType> + <port> + <name>read_message</name> + <specificType>IDL:Hello/ReadMessage:1.0</specificType> + <supportedType>IDL:Hello/ReadMessage:1.0</supportedType> + <provider>false</provider> + <exclusiveProvider>false</exclusiveProvider> + <exclusiveUser>true</exclusiveUser> + <optional>false</optional> + <kind>SimplexReceptacle</kind> + </port> + </realizes> + + <implementation id="Hello-Sender-mdd"> + <name>Hello-Sender-mdd</name> + <source><!-- @@ Don't know what goes here --></source> + <artifact>Hello-Sender_exec</artifact> + <artifact>Hello-Sender_svnt</artifact> + <!-- + <execParameter></execParameter> + <deployRequirement></deployRequirement> + --> + </implementation> + + <implementation id="Hello-Receiver-mdd"> + <name>Hello-Receiver-mdd</name> + <source><!-- @@ Don't know what goes here --></source> + <artifact>Hello-Receiver_exec</artifact> + <artifact>Hello-Receiver_svnt</artifact> + <!-- + <execParameter></execParameter> + <deployRequirement></deployRequirement> + --> + </implementation> + + <instance id="Hello-Sender-idd"> + <name>Hello-Sender-idd</name> + <node>SenderNode</node> + <source><!-- @@ What goes here --></source> + <implementation>Hello-Sender-mdd</implementation> + + <!-- Add this property if you want to write component reference to IOR --> + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Sender.ior</string> + </value> + </value> + </configProperty> + + <!-- Add this property if you want to initialize component attribute --> + <configProperty> + <name>local_message</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>This is a test message passed in through XML.</string> + </value> + </value> + </configProperty> + + <!-- This attribute initializes an enumerated value --> + <configProperty> + <name>color</name> + <value> + <type> + <kind>tk_enum</kind> + <enum> + <name>COLOR_SELECTION</name> + <typeId>IDL:Hello/COLOR_SELECTION:1.0</typeId> + <member>empty</member> + <member>white</member> + <member>red</member> + <member>yellow</member> + </enum> + </type> + <value> + <enum>yellow</enum> + </value> + </value> + </configProperty> + + <deployedResource> + <resourceUsage>InstanceUsesResource</resourceUsage> + <requirementName>CIAO:PolicySet</requirementName> + <resourceName>test_server_resource_id</resourceName> + <property> + <name>CIAO:InstancePolicy</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>test_policy_set_id</string> + </value> + </value> + </property> + </deployedResource> + + </instance> + + <instance id="Hello-Receiver-idd"> + <name>Hello-Receiver-idd</name> + <node>SenderNode</node> + <source><!-- @@ What goes here --></source> + <implementation>Hello-Receiver-mdd</implementation> + <configProperty> + <name>ComponentIOR</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Receiver.ior</string> + </value> + </value> + </configProperty> + + <deployedResource> + <resourceUsage>InstanceUsesResource</resourceUsage> + <requirementName>CIAO:PolicySet</requirementName> + <resourceName>test_server_resource_id</resourceName> + <property> + <name>CIAO:InstancePolicy</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>test_policy_set_id</string> + </value> + </value> + </property> + </deployedResource> + + </instance> + + + <connection> + <name>hell_event_connection</name> + <internalEndpoint> + <portName>click_out</portName> + <kind>EventPublisher</kind> + <instance>Hello-Sender-idd</instance> + </internalEndpoint> + <internalEndpoint> + <portName>click_in</portName> + <kind>EventConsumer</kind> + <instance>Hello-Receiver-idd</instance> + </internalEndpoint> + </connection> + + <connection> + <name>hello_facet_connection</name> + <internalEndpoint> + <portName>push_message</portName> + <kind>Facet</kind> + <instance>Hello-Sender-idd</instance> + </internalEndpoint> + <internalEndpoint> + <portName>read_message</portName> + <kind>SimplexReceptacle</kind> + <instance>Hello-Receiver-idd</instance> + </internalEndpoint> + </connection> + + <!-- @@ Runtime library name must match exactly in "location" tag --> + <artifact id="Hello-Sender_exec"> + <name>Sender_exec</name> + <source><!-- @@ Not sure about this--></source> + <node><!-- blank --></node> + <location>Hello_Sender_exec</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Hello_SenderHome_Impl</string> + </value> + </value> + </execParameter> + </artifact> + + <artifact id="Hello-Sender_svnt"> + <name>Sender_svnt</name> + <source><!-- @@ Not sure --></source> + <node><!-- blank --></node> + <location>Hello_Sender_svnt</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Hello_SenderHome_Servant</string> + </value> + </value> + </execParameter> + </artifact> + + <artifact id="Hello-Receiver_exec"> + <name>Receiver_exec</name> + <source><!-- @@ Not sure about this--></source> + <node><!-- blank --></node> + <location>Hello_Receiver_exec</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Hello_ReceiverHome_Impl</string> + </value> + </value> + </execParameter> + </artifact> + + <artifact id="Hello-Receiver_svnt"> + <name>Receiver_svnt</name> + <source><!-- @@ Not sure --></source> + <node><!-- blank --></node> + <location>Hello_Receiver_svnt</location> + <execParameter> + <name>entryPoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Hello_ReceiverHome_Servant</string> + </value> + </value> + </execParameter> + </artifact> + + <infoProperty> + <name>CIAOServerResources</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>rt-config-example.csr</string> + </value> + </value> + </infoProperty> + +</Deployment:deploymentPlan> diff --git a/modules/CIAO/examples/Hello/descriptors_RTCCM/rt_run_test.pl b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt_run_test.pl new file mode 100755 index 00000000000..ee8ec147df6 --- /dev/null +++ b/modules/CIAO/examples/Hello/descriptors_RTCCM/rt_run_test.pl @@ -0,0 +1,165 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{'ACE_ROOT'}/bin"; +use PerlACE::Run_Test; +$CIAO_ROOT = $PerlACE::CIAO_ROOT; +$DAnCE = "$CIAO_ROOT/DAnCE"; + +$daemons_running = 0; +$em_running = 0; +$daemons = 2; +@ports = ( 60001, 60002 ); +@iorfiles = ( "NodeApp1.ior", "NodeApp2.ior" ); +$status = 0; +$dat_file = "NodeManagerMap.dat"; +$cdp_file = "DeploymentPlan.cdp"; +$controller_exec = "$CIAO_ROOT/examples/Hello/Sender/starter"; + +PerlACE::add_lib_path ('../lib'); + +$E = 0; +$EM = 0; + +# Delete if there are any .ior files. +sub delete_ior_files { + for ($i = 0; $i < $daemons; ++$i) { + unlink $iorfiles[$i]; + } + unlink PerlACE::LocalFile ("EM.ior"); + unlink PerlACE::LocalFile ("Receiver.ior"); + unlink PerlACE::LocalFile ("Sender.ior"); + unlink PerlACE::LocalFile ("DAM.ior"); +} + +sub kill_node_daemons { + for ($i = 0; $i < $daemons; ++$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } +} + +sub kill_open_processes { + if ($daemons_running == 1) { + kill_node_daemons (); + } + + if ($em_running == 1) { + $EM->Kill (); + $EM->TimedWait (1); + } +} + +sub run_node_daemons { + for ($i = 0; $i < $daemons; ++$i) + { + $iorfile = $iorfiles[$i]; + $port = $ports[$i]; + + $iiop = "iiop://localhost:$port"; + $node_app = "$CIAO_ROOT/bin/NodeApplication"; + + $d_cmd = "$DANCE_ROOT/bin/dance_node_manager"; + + # NON-RT +# $d_param = "-ORBEndpoint $iiop -s $node_app -o $iorfile"; + + # RT enabled + $d_param = "-ORBEndpoint $iiop -s $node_app -a \"-r\" -o $iorfile"; + + $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param); + $result = $Daemons[$i]->Spawn (); + push(@processes, $Daemons[$i]); + + if (PerlACE::waitforfile_timed ($iorfile, + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR + "ERROR: The ior file of node daemon $i could not be found\n"; + for (; $i > 0; --$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } + return -1; + } + } + $daemons_running = 1; + return 0; +} + +delete_ior_files (); + +# Invoke node daemons. +print "Invoking node daemons\n"; +$status = run_node_daemons (); + +if ($status != 0) { + print STDERR "ERROR: Unable to execute the node daemons\n"; + exit 1; +} + +$ns_running = 1; + +# Invoke execution manager. +print "Invoking execution manager\n"; +$EM = new PerlACE::Process ("$CIAO_ROOT/bin/Execution_Manager", + "-o EM.ior -i $dat_file"); +$EM->Spawn (); + +if (PerlACE::waitforfile_timed ("EM.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR + "ERROR: The ior file of execution manager could not be found\n"; + kill_open_processes (); + exit 1; +} + +$em_running = 1; + +# Invoke executor - start the application -. +print "Invoking executor - start the application -\n"; +$E = + new PerlACE::Process ("$CIAO_ROOT/bin/plan_launcher", + "-p rt-example.cdp -k file://EM.ior -o DAM.ior"); + +$E->SpawnWaitKill (5000); + +if (PerlACE::waitforfile_timed ( + "Receiver.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: The ior file of receiver could not be found\n"; + kill_open_processes (); + exit 1; +} + +if (PerlACE::waitforfile_timed ("Sender.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR "ERROR: The ior file of sender could not be found\n"; + kill_open_processes (); + exit 1; +} + +print "Invoking the controller\n"; +$controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior"); +$result = $controller->SpawnWaitKill (3000); + +if ($result != 0) { + print STDERR "ERROR: The controller returned $result\n"; + $status = 1; +} + +# Invoke executor - stop the application -. +print "Invoking executor - stop the application -\n"; +$E = + new PerlACE::Process ("$CIAO_ROOT/bin/plan_launcher", + "-k file://EM.ior -i file://DAM.ior"); +$E->SpawnWaitKill (3000); + +print "Executor returned.\n"; +print "Shutting down rest of the processes.\n"; + +delete_ior_files (); +kill_open_processes (); + +exit $status; diff --git a/modules/CIAO/examples/Hello/step-by-step.html b/modules/CIAO/examples/Hello/step-by-step.html new file mode 100644 index 00000000000..e40fb3fbee3 --- /dev/null +++ b/modules/CIAO/examples/Hello/step-by-step.html @@ -0,0 +1,234 @@ +<!--//$Id$ --> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <title>Step-By-Step of How to build a CIAO application</title> +</head> + +<body + text = "#000000" + link = "#000fff" + vLink= "#ff0f0f" + aLink = "#0000ff" + bgColor = "#ffffff"> + +<hr> +<h2>Simple <a href="http://www.dre.vanderbilt.edu/CIAO">CIAO</a> tutorial</h2> +<b>Note:</b> +<UL> +<li><a href="http://www.dre.vanderbilt.edu/cosmic">CoSMIC</a> tools are not used in this tutorial.</li> +<li>This is only a <em>GENERAL</em> way of building up a CIAO application and deploying it with DAnCE. The user could always change the process in his own way. For example: the IDL file content, the project structure etc.</li> +<li>To download the code of this example please refer to the SVN repository at <code>$CIAO_ROOT/examples/Hello</code>.</li> +</UL> +<hr> + +<h2>Example Description</h2> +This Hello example is contructed in the following ways: +<UL> +<li>1. There are 2 components in the system: Sender and Receiver</li> +<li>2. The Sender will send out the timeout event to the Receiver.</li> +<li>3. Upon receiving the timeout event, the Receiver will go and fetch data from the Sender. </li> +<li>4. The user could deploy multiple instances of the Receiver without changing any C++/idl source code.</li> +</UL> +<hr> + +<h2>Step-By-Step</h2> +<h3>Hello_Base</h3> + +<OL> +<li>Write an IDL file (<a href="./Hello_Base/Hello_Base.idl"><code>Hello_Base.idl</code></a>) which contains all + the interfaces and events common to all the components. The reason + we do this is because the generated lib of this idl file will be + linked in by all the components in the system. To reduce the size + of the component lib we have to include only the necesary part. In + this example, we have an eventtype <code>timeout</code> and an + interface <code>ReadMessage</code>, which are used by both the + Sender and the Receiver, so we put both of them in <a href="Hello_Base/Hello_Base.idl">Hello_Base.idl</a>.</li> + <P> + +<li>Look at the <a href="Hello_Base/Hello_Base.mpc"><code>Hello_Base.mpc</code></a> file to get an idea how the Hello_Base_stub + and Hello_Base_svnt projects are organized. + <a href="http://downloads.ociweb.com/MPC/MakeProjectCreator.pdf">MPC</a> is a utility we used to generate makefiles or VC + project/solution files for all <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a>, + <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</a> and <a href="http://www.cs.wustl.edu/~schmidt/CIAO.html">CIAO</a> + libraries.</li> +</Ol> + +<hr> + +<h3>For Every Components</h3> + +<ol> +<li>Execute : <br> +<ul> +<code>$CIAO_ROOT/bin/generate_component_mpc.pl -p Hello_Base Sender</code> in Sender directory<br> +<code>$CIAO_ROOT/bin/generate_component_mpc.pl -p Hello_Base Receiver</code> in Receiver directory<br> +</ul> +Note: +<ul> +<li>I have different directories for <code>"Hello_Base", "Sender", "Receiver"</code> respectively.</li> + +<li>For every <code>_stub</code> project, add:<br> + <code>"libs += Hello_Base_DnC_stub"</code><br> + +</ul> +The output of this scripts includes an MPC file and 3 export header files +(..._svnt_export.h, ..._exec_export.h and ..._stub_export.h). +<P> + +<li>Write an idl file for every component (<a href="Sender/Sender.idl"><code>Sender.idl</code></a> and + <a href="Receiver/Receiver.idl"><code>Receiver.idl</code></a>). <br> Here you can put the + component specific IDL definitions in this file. In this example we have a interface <code>trigger</code> + specific to the Sender. Please note that the Sender component + <code>"supports"</code> (IDL keyword) this interface. </li> <P> + +<li>Write the CIDL file for every component (<a href="Sender/Sender.cidl"><code>Sender.cidl</code></a> and + <a href="Receiver/Receiver.cidl"><code>Receiver.cidl</code></a>). +</li><P> + +<li>Compile these cidl files, using <code>$CIAO_ROOT/bin/cidlc.exe Receiver.cidl --gen-exec-impl -I$CIAO_ROOT/ccm -I$CIAO_ROOT -I$TAO_ROOT</code>. + This'll result in ..._exec.cpp/..._exec.h and ..._svnt.cpp/..._svnt.h files. +</li><P> + +<li>Write <code>_exec.h</code> and <code>_exec.cpp</code> files which actually implement the component.</li> +<P> +</OL> + +Writing all those files could be troublesome to a new CCM user. The +best way of learning this is to read the example source code. If you +are familliar with CORBA programming, it should not take too much time +before you can declare yourself as a CCM programmer. <P> + +<hr> <P> + +<h3>The Entry Point</h3> + +After both components are implemented we still need a small program to +initialize the process. In Sender.idl there is a Sender specific +interface with a single method in it created for this purpose. Hence +there is a CORBA client application called <code>starter</code>. The +<code>starter</code> will make a invocation on a supported interface +called <code>trigger</code> on the Sender component to get the whole +distributed application started. The <code>starter</code> will first +obtain the Sender component object reference through the ior string +supplied as a command argument. Please see the the last part of +<code>Hello/Sender/Sender.mpc</code> file for details. <P> + +<hr> + +<h3>Make</h3> + +<UL> +<li>Go to the directory <code>$CIAO_ROOT/DAnCE</code> and do:<br> + <code>$ACE_ROOT/bin/mwc.pl</code></li> + <br>For example, using <code>$ACE_ROOT/bin/mwc.pl -type vc71</code> if you are using Visual C++ 7.1 IDE + <br>or <code>$ACE_ROOT/bin/mwc.pl -type gnuace</code> on Linux platforms.</li><P> +<li>Look at the generated Makefile(*unx) or Solution/workspace files(Windows) and you got it.</li> +</UL> +After building DAnCE, a solution or makefile should be generated for this CIAO example. +Navigate to <code>$CIAO_ROOT/examples/Hello</code> and execute <code>$ACE_ROOT/bin/mwc.pl -type vc71</code> for +Visual C++ 7.1 or <code>$ACE_ROOT/bin/mwc.pl -type gnuace</code> on Linux platforms. +Build this example using Visual Studio or make. +<P><hr> + +<h3>Assemble</h3> + +Now we can step forward to build the assembly. Here we are going to +build the simplest case only, which is 1 Receiver and 1 Sender. If you +are interested in CIAO you could try 1 Sender with multiple +Receivers. However, you need to change the Sender.idl to make it +<em>publishes</em> timeout event instead of <em>emits</em> event.<br> +Note: Creating the deployment plan descriptor is a tedious and + error-prone job, you can download <a + href="http://www.dre.vanderbilt.edu/cosmic">CoSMIC</a> to assist + you in this step. <P> + +<UL> +<li>You need to create an XML descriptor file to describe your <em>deployment plan</em>, which is + defined in a <EM>Deployment Plan Descriptor</EM> (.cdp) (see <a href="./descriptors/DeploymentPlan.cdp">Hello deployment plan<a>). + In this file, you need to declaratively specify how the component assembly is constructed. Specificly, you need to specify + the component types, component instances, component connections, implementation artifact descriptions, and whether you + want to register component instances with naming service.<P> + +<li> Please make sure that the Modified_Deployment.xsd and XMI.xsd files are in the Hello/descriptors directory. +The former file can be found in $CIAO_ROOT/docs/schema directory. <P> + +<li> Create the <em>NodeManagerMap.dat</em> file containing the CORBALOC IIOP address of each <code>NodeManager</code> + where it is running. Please refer to the existing <a href="./descriptors/NodeManagerMap.dat"> + <code>NodeManagerMap.dat</code></a> for details. + As you can see, we only specify 2 <code>NodeManagers</code>, which means these two components + will be installed in the different <code>NodeApplication</code> server. Please refer to the + <em>flattened_deploymentplan.cdp</em> file to see how a deployer + could specify the mapping between components and nodes.</li> +</li> +</UL> + +<hr> +<h3>Deploy with <A href="../../docs/releasenotes/dance.html">DAnCE</A></h3> +Finally you are ready to deploy the component-based application you have developed. +<br><br> + +<UL> + <LI> If you wish to register one or more of your component + instances with CORBA <em>naming service</em>, then please start your naming service + first with multicast mode first ("-m 1" option). Use <code>-o</code> to define where + the output ior should be saved.<P> + + <LI> Go into the <em> descriptors </em> directory Start NodeManagers + (NodeDameon) by running <code> run_NodeDaemons.pl </code> <P> + + <LI> There are two ways to start the execution manager : + <ol> + <li>Using the naming service to locate the node deamons<br/> + Navigate to <em>$CIAO_ROOT/examples/Hello/descriptor</em> and execute + <code>$DANCE_ROOT/bin/dance_execution_manager -eEM.ior --domain-nc file://ns.ior</code><br/> + --domain-nc should point to the ior file of the naming service. + </li> + + <li>Without using the naming service.<br/> + Navigate to <em>$CIAO_ROOT/examples/Hello/descriptor</em> and execute:<br/> + <code>$DANCE_ROOT/bin/dance_execution_manager -eEM.ior --node-map NodeManagerMap.dat </code><br/> + <em>NOTE</em>: As one can see, we use the "NodeManagerMap.dat" file to instruct the + Execution_Manager how to find the endpoint of each individual NodeManager (i.e., Node Daemon) where + component(s) will be deployed. This is non-standard. + </li> + </ol> + </LI> + </ul><P> + + <LI> Start the plan launcher, with or without using the Naming Service: <br/> + <ol> + <li>Using the naming service<br/> + Navigate to <em>$CIAO_ROOT/examples/Hello/descriptors_naming</em> and execute:<br/> + <code> $DANCE_ROOT/bin/dance_plan_launcher -d deploymentplan_naming.cdp -k file://../descriptors/EM.ior </code> + </li> + <li>Without using the naming service<br/> + Navigate to <em>$CIAO_ROOT/examples/Hello/descriptors</em> and execute:<br/> + <code> $DANCE_ROOT/bin/dance_plan_launcher -x deploymentplan.cdp -k file://EM.ior </code><P> + </li> + After this, components should be deployed successfully.<P> + </ol> +</LI> + + <LI> You can go into the <em>$CIAO_ROOT/examples/Hello/descriptor</em> directory and + run execute <code>$CIAO_ROOT/examples/Hello/Sender/starter -k file://Sender.ior</code> to start the application. Please make sure that the component IOR + file for the Sender component (<code>Sender.ior</code>) is present when you run this client.<P> + </LI> + <LI>To stop deployment just run $DANCE_ROOT/bin/dance_plan_launcher -x DeploymentPlan.cdp -k file://EM.ior -q + </LI> +</UL> +<br/> +<br/> +In addition, have a look at <a href="./descriptors/run_test.pl"><code>run_test.pl</code></a> and see how this can be established. + +<hr> +<h3>More Features</h3> +Recently DAnCE is enabled with a feature called <em>Redeployment and Reconfiguration</em> (ReDaC). For more information +about how to use this feature, please refer to the ReDaC-Usage-Example.html under $CIAO_ROOT/examples/Hello/. +<br><br> + +<hr> +<b>Email: </b><a href="mailto:"</a<ADDRESS>ciao-users@cse.wustl.edu</ADDRESS> +</body> +</html> + diff --git a/modules/CIAO/examples/Null_Component/Null_Component.idl b/modules/CIAO/examples/Null_Component/Null_Component.idl new file mode 100644 index 00000000000..78bc73becb3 --- /dev/null +++ b/modules/CIAO/examples/Null_Component/Null_Component.idl @@ -0,0 +1,39 @@ +/** + * @file Null_Component.idl + * + * @author Abdul Sowayan <abdullah.sowayan@lmco.com> + * + * $Id$ + */ + +#ifndef NULL_COMPONENT_IDL +#define NULL_COMPONENT_IDL + +#include <Components.idl> +#include "Null_Interface.idl" +#include "Null_InterfaceE.idl" + + +/** + * @class Null_Component + * + * This component is intentionally left blank. Its purpose + * is to measure the footprint of a component in CIAO. + */ +component Null_Component +{ + provides Null_Interface null_facet; +}; + +/** + * @class Null_Component_Home + * + * @brief home for Null_Component + */ +home Null_ComponentHome manages Null_Component +{ +}; + +#endif /* NULL_COMPONENT_IDL */ + + diff --git a/modules/CIAO/examples/Null_Component/Null_Component.mpc b/modules/CIAO/examples/Null_Component/Null_Component.mpc new file mode 100644 index 00000000000..71ac27d08d6 --- /dev/null +++ b/modules/CIAO/examples/Null_Component/Null_Component.mpc @@ -0,0 +1,112 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -p Null_Interface Null_Component" + +project(Null_Component_idl_gen) : componentidldefaults { + after += Null_Interface_lem_gen + custom_only = 1 + idlflags += \ + -Wb,stub_export_macro=NULL_COMPONENT_STUB_Export \ + -Wb,stub_export_include=Null_Component_stub_export.h \ + -Wb,skel_export_macro=NULL_COMPONENT_SVNT_Export \ + -Wb,skel_export_include=Null_Component_svnt_export.h \ + -Wb,exec_export_macro=NULL_COMPONENT_EXEC_Export \ + -Wb,exec_export_include=Null_Component_exec_export.h + + IDL_Files { + Null_Component.idl + } +} + +project(Null_Component_lem_gen) : ciaoidldefaults { + custom_only = 1 + after += Null_Component_idl_gen + idlflags += -Wb,export_macro=NULL_COMPONENT_EXEC_Export \ + -Wb,export_include=Null_Component_exec_export.h \ + -SS + + IDL_Files { + Null_ComponentE.idl + } +} + +project(Null_Component_stub) : ccm_stub { + after += Null_Component_idl_gen Null_Interface_stub + libs += Null_Interface_stub + + sharedname = Null_Component_stub + dynamicflags = NULL_COMPONENT_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Null_ComponentC.cpp + } + + Header_Files { + Null_ComponentC.h + Null_Component_stub_export.h + } + + Inline_Files { + Null_ComponentC.inl + } +} + +project(Null_Component_exec) : ciao_executor { + after += Null_Component_lem_gen Null_Component_stub + sharedname = Null_Component_exec + libs += Null_Component_stub Null_Interface_stub + + dynamicflags = NULL_COMPONENT_EXEC_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Null_ComponentEC.cpp + Null_Component_exec.cpp + } + + Header_Files { + Null_ComponentEC.h + Null_Component_exec.h + Null_Component_exec_export.h + } + + Inline_Files { + Null_ComponentEC.inl + } +} + + +project(Null_Component_svnt) : ciao_servant { + after += Null_Interface_skel Null_Component_exec + sharedname = Null_Component_svnt + libs += Null_Component_exec \ + Null_Component_stub \ + Null_Interface_skel \ + Null_Interface_stub + + dynamicflags = NULL_COMPONENT_SVNT_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Null_ComponentS.cpp + Null_Component_svnt.cpp + } + + Header_Files { + Null_ComponentS.h + Null_Component_svnt.h + Null_Component_svnt_export.h + } + + Inline_Files { + Null_ComponentS.inl + } +} + + diff --git a/modules/CIAO/examples/Null_Component/Null_Component_exec.cpp b/modules/CIAO/examples/Null_Component/Null_Component_exec.cpp new file mode 100644 index 00000000000..b0bfb66e99b --- /dev/null +++ b/modules/CIAO/examples/Null_Component/Null_Component_exec.cpp @@ -0,0 +1,173 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#include "Null_Component_exec.h" + +namespace CIAO_Null_Component_Impl +{ + //================================================================== + // Facet Executor Implementation Class: Null_Interface_exec_i + //================================================================== + + Null_Interface_exec_i::Null_Interface_exec_i (void) + { + } + + Null_Interface_exec_i::~Null_Interface_exec_i (void) + { + } + + // Operations from ::Null_Interface + + void + Null_Interface_exec_i::null_operation () + { + // Your code here. + } + + //================================================================== + // Component Executor Implementation Class: Null_Component_exec_i + //================================================================== + + Null_Component_exec_i::Null_Component_exec_i (void) + { + } + + Null_Component_exec_i::~Null_Component_exec_i (void) + { + } + + // Supported or inherited operations. + + // Attribute operations. + + // Port operations. + + ::CCM_Null_Interface_ptr + Null_Component_exec_i::get_null_facet () + { + // Your code here. + return ::CCM_Null_Interface::_nil (); + } + + // Operations from Components::SessionComponent + + void + Null_Component_exec_i::set_session_context ( + ::Components::SessionContext_ptr ctx) + { + this->context_ = + ::CCM_Null_Component_Context::_narrow (ctx); + + if (CORBA::is_nil (this->context_.in ())) + { + throw ::CORBA::INTERNAL (); + } + } + + void + Null_Component_exec_i::configuration_complete () + { + // Your code here. + } + + void + Null_Component_exec_i::ccm_activate () + { + // Your code here. + } + + void + Null_Component_exec_i::ccm_passivate () + { + // Your code here. + } + + void + Null_Component_exec_i::ccm_remove () + { + // Your code here. + } + + extern "C" NULL_COMPONENT_EXEC_Export ::Components::EnterpriseComponent_ptr + create_Null_Component_Impl (void) + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_RETURN ( + retval, + Null_Component_exec_i, + ::Components::EnterpriseComponent::_nil ()); + + return retval; + } + + //================================================================== + // Home Executor Implementation Class: Null_ComponentHome_exec_i + //================================================================== + + Null_ComponentHome_exec_i::Null_ComponentHome_exec_i (void) + { + } + + Null_ComponentHome_exec_i::~Null_ComponentHome_exec_i (void) + { + } + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + ::Components::EnterpriseComponent_ptr + Null_ComponentHome_exec_i::create () + { + ::Components::EnterpriseComponent_ptr retval = + ::Components::EnterpriseComponent::_nil (); + + ACE_NEW_THROW_EX ( + retval, + Null_Component_exec_i, + ::CORBA::NO_MEMORY ()); + + return retval; + } + + extern "C" NULL_COMPONENT_EXEC_Export ::Components::HomeExecutorBase_ptr + create_Null_ComponentHome_Impl (void) + { + ::Components::HomeExecutorBase_ptr retval = + ::Components::HomeExecutorBase::_nil (); + + ACE_NEW_RETURN ( + retval, + Null_ComponentHome_exec_i, + ::Components::HomeExecutorBase::_nil ()); + + return retval; + } +} + diff --git a/modules/CIAO/examples/Null_Component/Null_Component_exec.h b/modules/CIAO/examples/Null_Component/Null_Component_exec.h new file mode 100644 index 00000000000..83f5e62da22 --- /dev/null +++ b/modules/CIAO/examples/Null_Component/Null_Component_exec.h @@ -0,0 +1,118 @@ +// $Id$ +// +// **** Code generated by the **** +// **** Component Integrated ACE ORB (CIAO) CIDL Compiler **** +// CIAO has been developed by: +// Center for Distributed Object Computing +// Washington University +// St. Louis, MO +// USA +// http://www.cs.wustl.edu/~schmidt/doc-center.html +// CIDL Compiler has been developed by: +// Institute for Software Integrated Systems +// Vanderbilt University +// Nashville, TN +// USA +// http://www.isis.vanderbilt.edu/ +// +// Information about CIAO is available at: +// http://www.dre.vanderbilt.edu/CIAO + +#ifndef CIAO_NULL_COMPONENT_EXEC_H +#define CIAO_NULL_COMPONENT_EXEC_H + +#include /**/ "ace/pre.h" + +#include "Null_ComponentEC.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "Null_Component_exec_export.h" +#include "tao/LocalObject.h" + +namespace CIAO_Null_Component_Impl +{ + class NULL_COMPONENT_EXEC_Export Null_Interface_exec_i + : public virtual ::CCM_Null_Interface, + public virtual ::CORBA::LocalObject + { + public: + Null_Interface_exec_i (void); + virtual ~Null_Interface_exec_i (void); + + // Operations from ::Null_Interface + + virtual void + null_operation (); + }; + + class NULL_COMPONENT_EXEC_Export Null_Component_exec_i + : public virtual Null_Component_Exec, + public virtual ::CORBA::LocalObject + { + public: + Null_Component_exec_i (void); + virtual ~Null_Component_exec_i (void); + + // Supported or inherited operations. + + // Attribute operations. + + // Port operations. + + virtual ::CCM_Null_Interface_ptr + get_null_facet (); + + // Operations from Components::SessionComponent + + virtual void + set_session_context ( + ::Components::SessionContext_ptr ctx); + + virtual void configuration_complete (); + + virtual void ccm_activate (); + + virtual void ccm_passivate (); + + virtual void ccm_remove (); + + private: + ::CCM_Null_Component_Context_var context_; + }; + + extern "C" NULL_COMPONENT_EXEC_Export ::Components::EnterpriseComponent_ptr + create_Null_Component_Impl (void); + + class NULL_COMPONENT_EXEC_Export Null_ComponentHome_exec_i + : public virtual Null_ComponentHome_Exec, + public virtual ::CORBA::LocalObject + { + public: + Null_ComponentHome_exec_i (void); + virtual ~Null_ComponentHome_exec_i (void); + + // Supported or inherited operations. + + // Home operations. + + // Factory and finder operations. + + // Attribute operations. + + // Implicit operations. + + virtual ::Components::EnterpriseComponent_ptr + create (); + }; + + extern "C" NULL_COMPONENT_EXEC_Export ::Components::HomeExecutorBase_ptr + create_Null_ComponentHome_Impl (void); +} + +#include /**/ "ace/post.h" + +#endif /* CIAO_NULL_COMPONENT_EXEC_H */ + diff --git a/modules/CIAO/examples/Null_Component/Null_Interface.idl b/modules/CIAO/examples/Null_Component/Null_Interface.idl new file mode 100644 index 00000000000..ed841b2a921 --- /dev/null +++ b/modules/CIAO/examples/Null_Component/Null_Interface.idl @@ -0,0 +1,22 @@ +/** + * @file Null_Interface.idl + * + * @author Abdul Sowayan <abdullah.sowayan@lmco.com> + * + * $Id$ + */ + +#ifndef NULL_INTERFACE_IDL +#define NULL_INTERFACE_IDL + +/** + * @interface Null_Interface + * + * @brief + */ +interface Null_Interface +{ + void null_operation(); +}; + +#endif /* NULL_INTERFACE_IDL */ diff --git a/modules/CIAO/examples/Null_Component/Null_Interface.mpc b/modules/CIAO/examples/Null_Component/Null_Interface.mpc new file mode 100644 index 00000000000..f9c74d79e19 --- /dev/null +++ b/modules/CIAO/examples/Null_Component/Null_Interface.mpc @@ -0,0 +1,78 @@ +// $Id$ +// This file is generated with "generate_component_mpc.pl -n Null_Interface" + +project(Null_Interface_idl_gen) : componentidldefaults { + custom_only = 1 + idlflags += -Wb,stub_export_macro=NULL_INTERFACE_STUB_Export \ + -Wb,stub_export_include=Null_Interface_stub_export.h \ + -Wb,skel_export_macro=NULL_INTERFACE_SKEL_Export \ + -Wb,skel_export_include=Null_Interface_skel_export.h + + IDL_Files { + Null_Interface.idl + } +} + +project(Null_Interface_lem_gen) : ciaoidldefaults { + custom_only = 1 + after += Null_Interface_idl_gen + idlflags += -Wb,stub_export_macro=NULL_INTERFACE_STUB_Export \ + -Wb,stub_export_include=Null_Interface_stub_export.h \ + + IDL_Files { + Null_InterfaceE.idl + } +} + +project(Null_Interface_stub) : ccm_stub { + after += Null_Interface_lem_gen + libs += + + sharedname = Null_Interface_stub + dynamicflags = NULL_INTERFACE_STUB_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Null_InterfaceC.cpp + Null_InterfaceEC.cpp + } + + Header_Files { + Null_InterfaceC.h + Null_Interface_stub_export.h + } + + Inline_Files { + Null_InterfaceC.inl + } +} + + +project(Null_Interface_skel) : ciao_executor { + after += Null_Interface_stub + sharedname = Null_Interface_skel + libs += Null_Interface_stub + + + dynamicflags = NULL_INTERFACE_SKEL_BUILD_DLL + + IDL_Files { + } + + Source_Files { + Null_InterfaceS.cpp + } + + Header_Files { + Null_InterfaceS.h + Null_Interface_skel_export.h + } + + Inline_Files { + Null_InterfaceS.inl + } +} + + diff --git a/modules/CIAO/examples/Null_Component/StaticDAnCEApp.cpp b/modules/CIAO/examples/Null_Component/StaticDAnCEApp.cpp new file mode 100644 index 00000000000..817119e4cc7 --- /dev/null +++ b/modules/CIAO/examples/Null_Component/StaticDAnCEApp.cpp @@ -0,0 +1,101 @@ +// $Id$ + +#include "plan.h" + +#include "NodeManager/NodeManager_Impl.h" + +#include "tao/IORTable/IORTable.h" + +int +ACE_TMAIN (int argc, ACE_TCHAR *argv[]) +{ + // Initialize the ORB so that CORBA::Any will work. + CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); + + try + { + // Get reference to Root POA. + CORBA::Object_var obj = + orb->resolve_initial_references ("RootPOA"); + + PortableServer::POA_var poa = + PortableServer::POA::_narrow (obj.in ()); + + // Activate POA manager. + PortableServer::POAManager_var mgr = poa->the_POAManager (); + + mgr->activate (); + + int homes_table_size = + sizeof (homes_table) / sizeof (HomeAttributes); + + CIAO::HOMECREATOR_FUNCPTR_MAP home_creator_fptr_map; + CIAO::HOMESERVANTCREATOR_FUNCPTR_MAP homesvnt_creator_fptr_map; + CIAO::Static_Config_EntryPoints_Maps static_config_entrypoints_maps; + + static_config_entrypoints_maps.home_creator_funcptr_map_ = + &home_creator_fptr_map; + + static_config_entrypoints_maps.home_servant_creator_funcptr_map_ = + &homesvnt_creator_fptr_map; + + for (int i = 0; i < homes_table_size; ++i) + { + home_creator_fptr_map.bind (homes_table[i].executor_entrypt_, + homes_table[i].executor_fptr_); + + homesvnt_creator_fptr_map.bind (homes_table[i].servant_entrypt_, + homes_table[i].servant_fptr_); + } + + CIAO::Static_NodeManager_Impl *static_node_manager_impl; + + // Create and install the CIAO Daemon servant. + + ACE_DEBUG ((LM_DEBUG, "creating static_node_manager\n")); + + static_node_manager_impl = + new CIAO::Static_NodeManager_Impl ("NodeManager", + orb.in (), + poa.in (), + "", //exe location + "", //exe options + 0, //spawn delay + &static_config_entrypoints_maps); + + static_node_manager_impl->init (); + + CORBA::Object_var table_object = + orb->resolve_initial_references ("IORTable"); + + IORTable::Table_var adapter = + IORTable::Table::_narrow (table_object.in ()); + + if (CORBA::is_nil (adapter.in ())) + { + ACE_ERROR_RETURN ((LM_ERROR, "Nil IORTable\n"), -1); + } + + CIAO::NodeManagerDaemon_var manager = + static_node_manager_impl->_this (); + + CORBA::String_var str = + orb->object_to_string (manager.in ()); + + adapter->bind ("NodeManager", str.in ()); + + // Run the main event loop for the ORB. + orb->run (); + + poa->destroy (true, true); + + orb->destroy (); + } + catch (CORBA::Exception& ex) + { + ex._tao_print_exception ("Caught CORBA Exception: "); + return -1; + } + + return 0; +} diff --git a/modules/CIAO/examples/Null_Component/StaticDAnCEApp.mpc b/modules/CIAO/examples/Null_Component/StaticDAnCEApp.mpc new file mode 100644 index 00000000000..5c256aef47a --- /dev/null +++ b/modules/CIAO/examples/Null_Component/StaticDAnCEApp.mpc @@ -0,0 +1,28 @@ +// -*- MPC -*- +// $Id$ + +project(Null_Component_StaticDAnCEApp): iortable, ciaoidldefaults { + after += Null_Component_svnt + exename = StaticDAnCEApp + requires += dummy_label + libs += Null_Interface_stub + libs += Null_Interface_skel + libs += Null_Component_stub + libs += Null_Component_svnt + libs += Null_Component_exec + + IDL_Files { + } + + Source_Files { + StaticDAnCEApp.cpp + } + + Header_Files { + plan.h + } + + Inline_Files { + } +} + diff --git a/modules/CIAO/examples/Null_Component/descriptors/NodeMap.dat b/modules/CIAO/examples/Null_Component/descriptors/NodeMap.dat new file mode 100644 index 00000000000..51d8967c561 --- /dev/null +++ b/modules/CIAO/examples/Null_Component/descriptors/NodeMap.dat @@ -0,0 +1 @@ +NodeOne corbaloc:iiop:localhost:10000/NodeManager
\ No newline at end of file diff --git a/modules/CIAO/examples/Null_Component/descriptors/Null_Homed.cdp b/modules/CIAO/examples/Null_Component/descriptors/Null_Homed.cdp new file mode 100644 index 00000000000..2332e2d346e --- /dev/null +++ b/modules/CIAO/examples/Null_Component/descriptors/Null_Homed.cdp @@ -0,0 +1,109 @@ +<Deployment:DeploymentPlan + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Null_Homed</label> + <UUID>Null_Homed</UUID> +<implementation xmi:id="Null_ComponentHomeImplementation"> + <name>Null_ComponentHomeImplementation</name> + <source/> + <artifact xmi:idref="Null_Component_ExecArtifact" /> + <artifact xmi:idref="Null_Component_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>home factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Null_ComponentHome_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Null_ComponentHome_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Null_Component_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Null_Component_exec</string> + </value> + </value> + </execParameter> +</implementation> +<implementation xmi:id="Null_ComponentComponentImplementation"> + <name>Null_ComponentComponentImplementation</name> + <source/> + <artifact xmi:idref="Null_Component_ExecArtifact" /> + <artifact xmi:idref="Null_Component_SvntArtifact" /> + <artifact xmi:idref="Null_Component_StubArtifact" /> +</implementation> + <instance xmi:id="Null_ComponentHomeInstance"> + <name>Null_ComponentHome</name> + <node>NodeOne</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="Null_ComponentHomeImplementation" /> +</instance> + <instance xmi:id="Null_ComponentComponentInstance"> + <name>Null_ComponentComponent</name> + <node>NodeOne</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="Null_ComponentComponentImplementation" /> + <configProperty> + <name>edu.vanderbilt.dre.DAnCE.ExplicitHome</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Null_ComponentHome</string> + </value> + </value> + </configProperty> +</instance> + <artifact xmi:id="Null_Component_ExecArtifact"> + <name>Null_Component_exec</name> + <source/> + <node/> + <location>Null_Component_exec</location> +</artifact> +<artifact xmi:id="Null_Component_SvntArtifact"> + <name>Null_Component_svnt</name> + <source/> + <node/> + <location>Null_Component_svnt</location> +</artifact> +<artifact xmi:id="Null_Component_StubArtifact"> + <name>Null_Component_stub</name> + <source/> + <node/> + <location>Null_Component_stub</location> +</artifact> +</Deployment:DeploymentPlan>
\ No newline at end of file diff --git a/modules/CIAO/examples/Null_Component/descriptors/Null_Unhomed.cdp b/modules/CIAO/examples/Null_Component/descriptors/Null_Unhomed.cdp new file mode 100644 index 00000000000..c259d000b9e --- /dev/null +++ b/modules/CIAO/examples/Null_Component/descriptors/Null_Unhomed.cdp @@ -0,0 +1,85 @@ +<Deployment:DeploymentPlan + xmlns:Deployment="http://www.omg.org/Deployment" + xmlns:xmi="http://www.omg.org/XMI" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd"> + <label>Null_Homed</label> + <UUID>Null_Homed</UUID> + +<implementation xmi:id="Null_ComponentComponentImplementation"> + <name>Null_ComponentComponentImplementation</name> + <source/> + <artifact xmi:idref="Null_Component_ExecArtifact" /> + <artifact xmi:idref="Null_Component_SvntArtifact" /> + <execParameter> + <!-- entrypoint as exec parameter (see 10.6.1) --> + <name>component factory</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Null_Component_Impl</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantEntrypoint</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>create_Null_Component_Servant</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ServantArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Null_Component_svnt</string> + </value> + </value> + </execParameter> + <execParameter> + <name>edu.vanderbilt.dre.CIAO.ExecutorArtifact</name> + <value> + <type> + <kind>tk_string</kind> + </type> + <value> + <string>Null_Component_exec</string> + </value> + </value> + </execParameter> +</implementation> +<instance xmi:id="Null_ComponentComponentInstance"> + <name>Null_ComponentComponent</name> + <node>NodeOne</node> + <!-- hostname --> + <source/> + <implementation xmi:idref="Null_ComponentComponentImplementation" /> +</instance> + <artifact xmi:id="Null_Component_ExecArtifact"> + <name>Null_Component_exec</name> + <source/> + <node/> + <location>Null_Component_exec</location> +</artifact> +<artifact xmi:id="Null_Component_SvntArtifact"> + <name>Null_Component_svnt</name> + <source/> + <node/> + <location>Null_Component_svnt</location> +</artifact> +<artifact xmi:id="Null_Component_StubArtifact"> + <name>Null_Component_stub</name> + <source/> + <node/> + <location>Null_Component_stub</location> +</artifact> +</Deployment:DeploymentPlan>
\ No newline at end of file diff --git a/modules/CIAO/examples/Null_Component/descriptors/run_test.pl b/modules/CIAO/examples/Null_Component/descriptors/run_test.pl new file mode 100755 index 00000000000..fa318011c5e --- /dev/null +++ b/modules/CIAO/examples/Null_Component/descriptors/run_test.pl @@ -0,0 +1,182 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +# $Id$ +# -*- perl -*- + +use lib "$ENV{'ACE_ROOT'}/bin"; +use PerlACE::Run_Test; + +$CIAO_ROOT = "$ENV{'CIAO_ROOT'}"; +$TAO_ROOT = "$ENV{'TAO_ROOT'}"; +$DAnCE = "$ENV{'DANCE_ROOT'}"; +$daemons_running = 0; +$em_running = 0; +$ns_running = 0; +$daemons = 1; +@ports = ( 60001 ); +@iorfiles = ( "NodeApp1.ior" ); +@nodenames = ( "NodeOne" ); +$status = 0; +$dat_file = "NodeMap.dat"; + +PerlACE::add_lib_path ('..'); + +$nsior = PerlACE::LocalFile ("ns.ior"); + +$E = 0; +$EM = 0; +$retval = 0; + +# Delete if there are any .ior files. +sub delete_ior_files { + for ($i = 0; $i < $daemons; ++$i) { + unlink $iorfiles[$i]; + } + unlink PerlACE::LocalFile ("EM.ior"); + unlink PerlACE::LocalFile ("DAM.ior"); + unlink PerlACE::LocalFile ("ns.ior"); +} + +sub kill_node_daemons { + for ($i = 0; $i < $daemons; ++$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } +} + +sub kill_open_processes { + if ($daemons_running == 1) { + kill_node_daemons (); + } + + if ($em_running == 1) { + $EM->Kill (); + $EM->TimedWait (1); + } + + if ($ns_running == 1) { + $NS->Kill (); + $NS->TimedWait (1); + } + +} + +sub run_node_daemons { + for ($i = 0; $i < $daemons; ++$i) + { + $iorfile = $iorfiles[$i]; + $port = $ports[$i]; + $nodename = $nodenames[$i]; + $iiop = "iiop://localhost:$port"; + $node_app = "$CIAO_ROOT/bin/ciao_componentserver"; + + $d_cmd = "$DAnCE/bin/dance_node_manager"; + $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --domain-nc corbaloc:rir:/NameService --instance-nc corbaloc:rir:/NameService"; + + $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param); + $result = $Daemons[$i]->Spawn (); + push(@processes, $Daemons[$i]); + + if (PerlACE::waitforfile_timed ($iorfile, + 30) == -1) { + print STDERR + "ERROR: The ior $iorfile file of node daemon $i could not be found\n"; + for (; $i >= 0; --$i) { + $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1); + } + return -1; + } + } + return 0; +} + +if ($#ARGV == -1) +{ + opendir(DIR, "."); + @files = grep(/\.cdp$/,readdir(DIR)); + closedir(DIR); +} else { + @files = @ARGV; +} + +foreach $file (@files) { + print "Starting test for deployment $file\n"; + delete_ior_files (); + + print STDERR "Starting Naming Service\n"; + + $NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior"); + $NS->Spawn (); + + if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1) + { + print STDERR "ERROR: cannot find naming service IOR file\n"; + $NS->Kill (); + exit 1; + } + $ns_running = 1; + +# Set up NamingService environment + $ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService"; + + +# Invoke node daemons. + print "Invoking node daemons\n"; + $status = run_node_daemons (); + + if ($status != 0) { + print STDERR "ERROR: Unable to execute the node daemons\n"; + kill_open_processes (); + exit 1; + } + + $daemons_running = 1; + + # Invoke execution manager. + print "Invoking execution manager\n"; + $EM = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager", + "-eEM.ior --domain-nc corbaloc:rir:/NameService"); + $EM->Spawn (); + + if (PerlACE::waitforfile_timed ("EM.ior", + $PerlACE::wait_interval_for_process_creation) == -1) { + print STDERR + "ERROR: The ior file of execution manager could not be found\n"; + kill_open_processes (); + exit 1; + } + + $em_running = 1; + +# Invoke executor - start the application -. + print "Invoking executor - start the application -\n"; + $E = + new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher", + "-x $file -k file://EM.ior"); + + $E->SpawnWaitKill (5000); + + if ($status != 0) + { + print "ERROR: dance_plan_launcher returned an error code while deploying $file\n"; + $retval = -1; + } + + # Invoke executor - stop the application -. + print "Invoking executor - stop the application -\n"; + $E = + new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher", + "-k file://EM.ior -x $file -q"); + $E->SpawnWaitKill (3000); + + print "Executor returned.\n"; + + delete_ior_files (); + kill_open_processes (); +} + +delete_ior_files (); +kill_open_processes (); + +exit $status; diff --git a/modules/CIAO/examples/Null_Component/model/Null_Component.xme b/modules/CIAO/examples/Null_Component/model/Null_Component.xme new file mode 100644 index 00000000000..bf6cc873282 --- /dev/null +++ b/modules/CIAO/examples/Null_Component/model/Null_Component.xme @@ -0,0 +1,882 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE project SYSTEM "mga.dtd"> + +<project guid="{B70C5D06-CC89-4ACE-A544-1480EE5A29CE}" cdate="Tue Oct 16 16:10:55 2007" mdate="Tue Oct 16 16:10:55 2007" version="" metaguid="{525FE668-6953-4C7B-B381-780F8B2C3343}" metaversion="" metaname="PICML"> + <name>Null_Component</name> + <comment></comment> + <author></author> + <folder id="id-006a-00000001" relid="0x1" childrelidcntr="0x2" kind="RootFolder" guid="{D794C257-7279-45de-80FC-533DB4F7F197}"> + <name>Null_Component</name> + <folder id="id-006a-00000002" relid="0x2" childrelidcntr="0x2" kind="InterfaceDefinitions" guid="{E942DB02-B28F-454e-99F7-B358D1EEEA4A}"> + <name>InterfaceDefinitions</name> + <model id="id-0065-00000001" kind="File" guid="{31D9F346-B570-4551-AC3E-BCE9DA6A2B63}" relid="0x1" childrelidcntr="0x1"> + <name>Null_Interface</name> + <attribute kind="PrefixTag" status="meta"> + <value></value> + </attribute> + <attribute kind="path" status="meta"> + <value></value> + </attribute> + <model id="id-0065-00000002" kind="Object" role="Object" guid="{D7703924-094F-4248-AF75-8E4FDD63DD1F}" relid="0x1" childrelidcntr="0x1"> + <name>Null_Interface</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="InterfaceDefinition" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>518,318</value> + </regnode> + </regnode> + </regnode> + <attribute kind="PrefixTag" status="meta"> + <value></value> + </attribute> + <attribute kind="SpecifyIdTag" status="meta"> + <value></value> + </attribute> + <attribute kind="VersionTag" status="meta"> + <value></value> + </attribute> + <attribute kind="abstract" status="meta"> + <value>false</value> + </attribute> + <attribute kind="local" status="meta"> + <value>false</value> + </attribute> + <model id="id-0065-00000003" kind="TwowayOperation" role="TwowayOperation" guid="{7F579FB0-FCA8-48c5-B4EF-AE88687F62D1}" relid="0x1" childrelidcntr="0x0"> + <name>null_operation</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="InterfaceDefinition" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>518,318</value> + </regnode> + </regnode> + </regnode> + <attribute kind="SpecifyIdTag" status="meta"> + <value></value> + </attribute> + <attribute kind="VersionTag" status="meta"> + <value></value> + </attribute> + </model> + </model> + </model> + <model id="id-0065-00000004" kind="File" guid="{174E1376-0155-43d7-BB3C-6D3841141DB9}" relid="0x2" childrelidcntr="0x4"> + <name>Null_Component</name> + <attribute kind="PrefixTag" status="meta"> + <value></value> + </attribute> + <attribute kind="path" status="meta"> + <value></value> + </attribute> + <model id="id-0065-00000005" kind="Component" role="Component" guid="{6A551DF8-B555-4568-89C5-9BF25CE35299}" relid="0x2" childrelidcntr="0x1"> + <name>Null_Component</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="InterfaceDefinition" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>518,318</value> + </regnode> + </regnode> + </regnode> + <attribute kind="SpecifyIdTag" status="meta"> + <value></value> + </attribute> + <attribute kind="UUID"> + <value>1E762719-4310-41B5-ADC0-084D15E4DA91</value> + </attribute> + <attribute kind="VersionTag" status="meta"> + <value></value> + </attribute> + <attribute kind="label" status="meta"> + <value></value> + </attribute> + <reference id="id-0067-00000001" kind="ProvidedRequestPort" role="ProvidedRequestPort" guid="{13ADE002-69D6-4464-BB93-53465A3FEC68}" relid="0x1" referred="id-0065-00000002"> + <name>null_facet</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="InterfaceDefinition" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>518,318</value> + </regnode> + </regnode> + </regnode> + <attribute kind="SpecifyIdTag" status="meta"> + <value></value> + </attribute> + <attribute kind="VersionTag" status="meta"> + <value></value> + </attribute> + <attribute kind="exclusiveProvider" status="meta"> + <value>false</value> + </attribute> + <attribute kind="exclusiveUser" status="meta"> + <value>false</value> + </attribute> + <attribute kind="optional" status="meta"> + <value>false</value> + </attribute> + </reference> + </model> + <model id="id-0065-00000006" kind="ComponentFactory" role="ComponentFactory" guid="{2F6A6D5C-F858-443f-A6BF-1B4F306ECA55}" relid="0x3" childrelidcntr="0x0"> + <name>Null_Component_Home</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="InterfaceDefinition" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>793,493</value> + </regnode> + </regnode> + </regnode> + <attribute kind="SpecifyIdTag" status="meta"> + <value></value> + </attribute> + <attribute kind="VersionTag" status="meta"> + <value></value> + </attribute> + </model> + <reference id="id-0067-00000002" kind="FileRef" role="FileRef" guid="{77C04268-0D56-4b5d-8417-B1B5B42D7153}" relid="0x1" referred="id-0065-00000001"> + <name>FileRef</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="InterfaceDefinition" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>243,143</value> + </regnode> + </regnode> + </regnode> + </reference> + <connection id="id-0068-00000001" kind="ManagesComponent" role="ManagesComponent" guid="{4A384E55-B7C9-40fc-A58B-579464EFD27C}" relid="0x4"> + <name>ManagesComponent</name> + <regnode name="autorouterPref" isopaque="yes"> + <value>Ws</value> + </regnode> + <connpoint role="dst" target="id-0065-00000005"/> + <connpoint role="src" target="id-0065-00000006"/> + </connection> + </model> + </folder> + <folder id="id-006a-00000003" relid="0x1" childrelidcntr="0xb" kind="PredefinedTypes" guid="{09B589C9-05A6-4a48-908A-43F384CA5CF6}"> + <name>PredefinedTypes</name> + <atom id="id-0066-00000001" kind="TypeKind" guid="{169D314F-1CB3-4147-A1FF-E5A89E34078B}" relid="0xb"> + <name>TypeKind</name> + </atom> + <atom id="id-0066-00000002" kind="TypeEncoding" guid="{0CFFCBE1-5318-4a14-8844-3D2684A073EF}" relid="0xa"> + <name>TypeEncoding</name> + </atom> + <atom id="id-0066-00000003" kind="String" guid="{6716583A-62B5-41d8-90C8-1CD058B252B6}" relid="0x9"> + <name>String</name> + </atom> + <atom id="id-0066-00000004" kind="Boolean" guid="{8DAFF4DC-DC2E-4d12-B998-F6A3073E8E1C}" relid="0x8"> + <name>Boolean</name> + </atom> + <atom id="id-0066-00000005" kind="ShortInteger" guid="{5C38FB44-D011-4857-AD3D-F5A4DBE7705A}" relid="0x7"> + <name>ShortInteger</name> + </atom> + <atom id="id-0066-00000006" kind="RealNumber" guid="{5D714763-6111-4a14-A638-9530154F1F62}" relid="0x6"> + <name>RealNumber</name> + </atom> + <atom id="id-0066-00000007" kind="LongInteger" guid="{3F25A8A4-76B9-46fb-96B5-A08B84C89D62}" relid="0x5"> + <name>LongInteger</name> + </atom> + <atom id="id-0066-00000008" kind="GenericValueObject" guid="{2E0FA79E-5A2F-435b-B6B0-43020E1B1F4A}" relid="0x4"> + <name>GenericValueObject</name> + </atom> + <atom id="id-0066-00000009" kind="GenericValue" guid="{65CC59ED-D101-4a7e-9B21-BF43A47B3EAB}" relid="0x3"> + <name>GenericValue</name> + </atom> + <atom id="id-0066-0000000a" kind="GenericObject" guid="{544E038C-35F6-424d-95C4-53858E1B67C2}" relid="0x2"> + <name>GenericObject</name> + </atom> + <atom id="id-0066-0000000b" kind="Byte" guid="{13BCAE49-1ECD-4b5f-9885-9E945E5E8955}" relid="0x1"> + <name>Byte</name> + </atom> + </folder> + <folder id="id-006a-00000004" relid="0x3" childrelidcntr="0x3" kind="ComponentImplementations" guid="{F1D1980E-126D-4063-AE08-1B3EBD559A46}"> + <name>ComponentImplementations</name> + <model id="id-0065-00000007" kind="ComponentImplementationContainer" guid="{480C6F97-3154-4c88-BF32-359029A94EE5}" relid="0x1" childrelidcntr="0xb"> + <name>Null_ComponentImplementation</name> + <model id="id-0065-00000008" kind="Property" role="Property" guid="{0B9BEA7E-262D-4db6-9449-23C055A9A7D8}" relid="0x2" childrelidcntr="0x2"> + <name>ComponentIOR</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="Packaging" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>282,168</value> + </regnode> + </regnode> + </regnode> + <attribute kind="DataValue"> + <value>Null_Component.ior</value> + </attribute> + <reference id="id-0067-00000003" kind="DataType" role="DataType" guid="{CB2EDDA5-8426-4848-8A3A-341FE6B190BC}" relid="0x2" referred="id-0066-00000003"> + <name>String</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="Packaging" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>518,318</value> + </regnode> + </regnode> + </regnode> + </reference> + </model> + <atom id="id-0066-0000000c" kind="MonolithicImplementation" role="MonolithicImplementation" guid="{14FD32E9-2E63-479c-B2E4-CDB9C1204FF7}" relid="0x1"> + <name>Null_ComponentMonolithicImpl</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="Packaging" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>125,68</value> + </regnode> + </regnode> + </regnode> + <attribute kind="UUID"> + <value>DB0165FE-599E-485B-844E-E8D4C1FA3951</value> + </attribute> + <attribute kind="defaultVersion" status="meta"> + <value>0.0.0.0</value> + </attribute> + <attribute kind="label" status="meta"> + <value></value> + </attribute> + </atom> + <reference id="id-0067-00000004" kind="ComponentRef" role="ComponentRef" guid="{DA5E1767-56F3-4767-B2A3-0EF33D884026}" relid="0x9" referred="id-0065-00000005"> + <name>Null_ComponentRef</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="Packaging" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>910,568</value> + </regnode> + </regnode> + </regnode> + </reference> + <reference id="id-0067-0000000e" kind="ImplementationArtifactReference" role="ImplementationArtifactReference" guid="{41CE8EDA-9823-45f9-9A6A-121B3F8DCFF1}" relid="0x3" referred="id-0066-0000000d"> + <name>Null_Component_stubRef</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="Packaging" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>439,268</value> + </regnode> + </regnode> + </regnode> + </reference> + <reference id="id-0067-0000000f" kind="ImplementationArtifactReference" role="ImplementationArtifactReference" guid="{8CBC2B0E-43CE-4080-AAA3-5C6E244A4CBF}" relid="0x4" referred="id-0066-0000000e"> + <name>Null_Component_svntRef</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="Packaging" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>596,368</value> + </regnode> + </regnode> + </regnode> + </reference> + <reference id="id-0067-00000010" kind="ImplementationArtifactReference" role="ImplementationArtifactReference" guid="{6B4EE2E4-5A47-4813-8F49-8C7AE88EE3CA}" relid="0x5" referred="id-0066-0000000f"> + <name>Null_Component_execRef</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="Packaging" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>753,468</value> + </regnode> + </regnode> + </regnode> + </reference> + <connection id="id-0068-00000002" kind="ConfigProperty" role="ConfigProperty" guid="{6943826B-2C7A-4e04-8630-A47DEC2555AE}" relid="0xa"> + <name>ConfigProperty</name> + <connpoint role="dst" target="id-0065-00000008"/> + <connpoint role="src" target="id-0066-0000000c"/> + </connection> + <connection id="id-0068-00000003" kind="MonolithprimaryArtifact" role="MonolithprimaryArtifact" guid="{D8E53340-7D96-4a9d-9261-DC4E11392635}" relid="0x6"> + <name>MonolithprimaryArtifact</name> + <connpoint role="src" target="id-0066-0000000c"/> + <connpoint role="dst" target="id-0067-0000000e"/> + </connection> + <connection id="id-0068-00000004" kind="MonolithprimaryArtifact" role="MonolithprimaryArtifact" guid="{07FAFDF2-1194-415c-B7E0-EB918A0EABE8}" relid="0x7"> + <name>MonolithprimaryArtifact</name> + <connpoint role="src" target="id-0066-0000000c"/> + <connpoint role="dst" target="id-0067-0000000f"/> + </connection> + <connection id="id-0068-00000005" kind="MonolithprimaryArtifact" role="MonolithprimaryArtifact" guid="{11282845-9F59-462d-997D-70BCD60BAA0A}" relid="0x8"> + <name>MonolithprimaryArtifact</name> + <connpoint role="src" target="id-0066-0000000c"/> + <connpoint role="dst" target="id-0067-00000010"/> + </connection> + <connection id="id-0068-00000006" kind="Implements" role="Implements" guid="{3A7CD825-2BE9-4845-AB70-83237A15DE79}" relid="0xb"> + <name>Implements</name> + <connpoint role="src" target="id-0066-0000000c"/> + <connpoint role="dst" target="id-0067-00000004"/> + </connection> + </model> + <model id="id-0065-00000009" kind="ComponentImplementationContainer" guid="{4F5347AD-8962-4d8e-8F4F-B1C57C84B8E4}" relid="0x3" childrelidcntr="0x3"> + <name>Null_Assembly_Container</name> + <model id="id-0065-0000000a" kind="ComponentAssembly" role="ComponentAssembly" guid="{BB3ED1EF-60A5-43ec-B778-49ECEC5AA5A3}" relid="0x3" childrelidcntr="0x1"> + <name>Null_Assembly</name> + <regnode name="PartRegs" status="undefined"> + <value></value> + <regnode name="Packaging" status="undefined"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>212,114</value> + </regnode> + </regnode> + <regnode name="QoSModelAspect" status="undefined"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>212,114</value> + </regnode> + </regnode> + </regnode> + <attribute kind="UUID"> + <value>AB4E18C0-187E-4FEF-95FE-462E199411E5</value> + </attribute> + <attribute kind="label" status="meta"> + <value></value> + </attribute> + <model id="id-0065-0000000b" kind="Component" role="Component" guid="{942E23B8-98E2-4427-8436-FA72195C50FB}" derivedfrom="id-0065-00000005" isinstance="yes" isprimary="yes" relid="0x1" childrelidcntr="0x0"> + <name>Null_Component</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="Packaging" status="undefined"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>342,130</value> + </regnode> + </regnode> + </regnode> + <attribute kind="SpecifyIdTag" status="meta"> + <value></value> + </attribute> + <attribute kind="UUID"> + <value>6B477FA1-2C04-423B-9580-A2997DEA6ADD</value> + </attribute> + <attribute kind="VersionTag" status="meta"> + <value></value> + </attribute> + <attribute kind="label" status="meta"> + <value></value> + </attribute> + <reference id="id-0067-00000005" kind="ProvidedRequestPort" role="ProvidedRequestPort" guid="{570FAB75-C153-4045-A741-6270CB4061E5}" derivedfrom="id-0067-00000001" isinstance="yes" isprimary="no" referred="id-0065-00000002" isbound="yes"> + <name>null_facet</name> + <attribute kind="SpecifyIdTag" status="meta"> + <value></value> + </attribute> + <attribute kind="VersionTag" status="meta"> + <value></value> + </attribute> + <attribute kind="exclusiveProvider" status="meta"> + <value>false</value> + </attribute> + <attribute kind="exclusiveUser" status="meta"> + <value>false</value> + </attribute> + <attribute kind="optional" status="meta"> + <value>false</value> + </attribute> + </reference> + </model> + </model> + </model> + </folder> + <folder id="id-006a-00000005" relid="0x4" childrelidcntr="0x0" kind="ImplementationArtifacts" guid="{873DDE6F-110F-4bb7-83E7-FB5F7B69334A}"> + <name>ImplementationArtifacts</name> + <model id="id-0065-0000000c" kind="ArtifactContainer" guid="{8195FC8D-5AD9-4bda-8614-3A142167E79F}" relid="0x1" childrelidcntr="0xa"> + <name>Null_ComponentArtifacts</name> + <model id="id-0065-0000000d" kind="Property" role="Property" guid="{DC52E581-22FA-4a6f-8384-B8BDE51CC42F}" relid="0x2" childrelidcntr="0x2"> + <name>entryPoint</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="Packaging" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>334,200</value> + </regnode> + </regnode> + </regnode> + <attribute kind="DataValue"> + <value>create_Null_ComponentHome_Servant</value> + </attribute> + <reference id="id-0067-00000006" kind="DataType" role="DataType" guid="{40EED557-CF31-4cc4-8ADA-E7F61752A9CA}" relid="0x2" referred="id-0066-00000003"> + <name>String</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="Packaging" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>518,318</value> + </regnode> + </regnode> + </regnode> + </reference> + </model> + <model id="id-0065-0000000e" kind="Property" role="Property" guid="{53FF9F0E-2CF1-40a1-8DE5-4E057C5E49D0}" relid="0x4" childrelidcntr="0x2"> + <name>entryPoint</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="Packaging" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>700,432</value> + </regnode> + </regnode> + </regnode> + <attribute kind="DataValue"> + <value>create_Null_ComponentHome_Impl</value> + </attribute> + <reference id="id-0067-00000007" kind="DataType" role="DataType" guid="{15779BA4-CF1C-400e-9A91-26700F481DC7}" relid="0x2" referred="id-0066-00000003"> + <name>String</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="Packaging" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>518,318</value> + </regnode> + </regnode> + </regnode> + </reference> + </model> + <atom id="id-0066-0000000d" kind="ImplementationArtifact" role="ImplementationArtifact" guid="{5CBCFECC-BE14-45cd-B0FB-5CD73D5184FE}" relid="0x1"> + <name>Null_Component_stub</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="Packaging" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>151,84</value> + </regnode> + </regnode> + </regnode> + <attribute kind="UUID"> + <value>F8CECE24-F3D4-4162-9A28-1CC7FA48C01B</value> + </attribute> + <attribute kind="architecture" status="meta"> + <value>x86</value> + </attribute> + <attribute kind="artifactVersion" status="meta"> + <value>0.0.0.0</value> + </attribute> + <attribute kind="configuration" status="meta"> + <value>Release</value> + </attribute> + <attribute kind="label"> + <value></value> + </attribute> + <attribute kind="location"> + <value>Null_Component_stub</value> + </attribute> + <attribute kind="operatingSystem" status="meta"> + <value>Linux</value> + </attribute> + </atom> + <atom id="id-0066-0000000e" kind="ImplementationArtifact" role="ImplementationArtifact" guid="{01427452-ABAA-4d3b-85E0-8E547E477D0D}" relid="0x3"> + <name>Null_Component_svnt</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="Packaging" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>517,316</value> + </regnode> + </regnode> + </regnode> + <attribute kind="UUID"> + <value>6DCFFB72-08DB-4546-B206-13B6AC2DB251</value> + </attribute> + <attribute kind="architecture" status="meta"> + <value>x86</value> + </attribute> + <attribute kind="artifactVersion" status="meta"> + <value>0.0.0.0</value> + </attribute> + <attribute kind="configuration" status="meta"> + <value>Release</value> + </attribute> + <attribute kind="label"> + <value></value> + </attribute> + <attribute kind="location"> + <value>Null_Component_svnt</value> + </attribute> + <attribute kind="operatingSystem" status="meta"> + <value>Linux</value> + </attribute> + </atom> + <atom id="id-0066-0000000f" kind="ImplementationArtifact" role="ImplementationArtifact" guid="{B82EDD63-D5D6-464f-86A6-82D04222FBEB}" relid="0x5"> + <name>Null_Component_exec</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="Packaging" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>883,548</value> + </regnode> + </regnode> + </regnode> + <attribute kind="UUID"> + <value>7D050E10-E0DC-4A7A-810D-E847ED9ACC04</value> + </attribute> + <attribute kind="architecture" status="meta"> + <value>x86</value> + </attribute> + <attribute kind="artifactVersion" status="meta"> + <value>0.0.0.0</value> + </attribute> + <attribute kind="configuration" status="meta"> + <value>Release</value> + </attribute> + <attribute kind="label"> + <value></value> + </attribute> + <attribute kind="location"> + <value>Null_Component_exec</value> + </attribute> + <attribute kind="operatingSystem" status="meta"> + <value>Linux</value> + </attribute> + </atom> + <connection id="id-0068-00000007" kind="ArtifactExecParameter" role="ArtifactExecParameter" guid="{74A2CC0E-2B9D-47fb-8CA4-BE3F0D4F1712}" relid="0x7"> + <name>ArtifactExecParameter</name> + <connpoint role="dst" target="id-0065-0000000d"/> + <connpoint role="src" target="id-0066-0000000e"/> + </connection> + <connection id="id-0068-00000008" kind="ArtifactDependency" role="ArtifactDependency" guid="{13DC3067-E75D-4d8f-9C6D-249BB4AFA7B2}" relid="0x8"> + <name>ArtifactDependency</name> + <connpoint role="dst" target="id-0066-0000000d"/> + <connpoint role="src" target="id-0066-0000000e"/> + </connection> + <connection id="id-0068-00000009" kind="ArtifactExecParameter" role="ArtifactExecParameter" guid="{8BA86261-4D8A-4b8c-AF29-3B67C798F5E8}" relid="0x8"> + <name>ArtifactExecParameter</name> + <connpoint role="dst" target="id-0065-0000000e"/> + <connpoint role="src" target="id-0066-0000000f"/> + </connection> + <connection id="id-0068-0000000a" kind="ArtifactDependency" role="ArtifactDependency" guid="{67534C2E-89FF-41b2-91BB-5EC016E409E4}" relid="0x9"> + <name>ArtifactDependency</name> + <connpoint role="dst" target="id-0066-0000000e"/> + <connpoint role="src" target="id-0066-0000000f"/> + </connection> + <connection id="id-0068-0000000b" kind="ArtifactDependency" role="ArtifactDependency" guid="{35396F07-6A69-4c48-AD5E-F0854E613E69}" relid="0xa"> + <name>ArtifactDependency</name> + <connpoint role="dst" target="id-0066-0000000d"/> + <connpoint role="src" target="id-0066-0000000f"/> + </connection> + </model> + </folder> + <folder id="id-006a-00000006" relid="0x5" childrelidcntr="0x0" kind="ComponentTypes" guid="{94B958C2-F2D6-4048-BEE8-B281BB1F1864}"> + <name>ComponentTypes</name> + <model id="id-0065-0000000f" kind="ComponentContainer" guid="{293EBBD7-B2A9-47a7-91CA-9997151A1833}" relid="0x1" childrelidcntr="0x1"> + <name>Null_ComponentContainer</name> + <reference id="id-0067-00000008" kind="ComponentRef" role="ComponentRef" guid="{E9F516D5-6CB4-4f47-B0FC-A8583BFC28AD}" relid="0x1" referred="id-0065-00000005"> + <name>Null_ComponentRef</name> + <regnode name="PartRegs" isopaque="yes"> + <value></value> + <regnode name="Packaging" isopaque="yes"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>518,318</value> + </regnode> + </regnode> + </regnode> + </reference> + </model> + </folder> + <folder id="id-006a-00000007" relid="0x6" childrelidcntr="0x1" kind="PackageConfigurations" guid="{BC2E4BDF-FB8A-4f46-8A89-B92FEBD598D8}"> + <name>PackageConfigurations</name> + <model id="id-0065-00000010" kind="PackageConfigurationContainer" guid="{7C3BA679-4829-4fae-8251-BAA3949E9B86}" relid="0x1" childrelidcntr="0x6"> + <name>Default</name> + <atom id="id-0066-00000010" kind="PackageConfiguration" role="PackageConfiguration" guid="{D65D4AEC-6AE1-4366-8BCC-D08BD932D65D}" relid="0x2"> + <name>PackageConfiguration</name> + <regnode name="PartRegs" status="undefined"> + <value></value> + <regnode name="Packaging" status="undefined"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>373,149</value> + </regnode> + </regnode> + </regnode> + <attribute kind="UUID"> + <value>168FF6BD-40CF-4A06-A380-66266A32F168</value> + </attribute> + <attribute kind="label" status="meta"> + <value></value> + </attribute> + </atom> + <reference id="id-0067-00000011" kind="ComponentPackageReference" role="ComponentPackageReference" guid="{FA20F029-08CD-4718-A92B-281ED421DA48}" relid="0x5" referred="id-0066-00000012"> + <name>Null_Assembly_Package</name> + <regnode name="PartRegs" status="undefined"> + <value></value> + <regnode name="Packaging" status="undefined"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>573,146</value> + </regnode> + </regnode> + </regnode> + <attribute kind="requiredName" status="meta"> + <value></value> + </attribute> + <attribute kind="requiredType" status="meta"> + <value></value> + </attribute> + <attribute kind="requiredUUID" status="meta"> + <value></value> + </attribute> + </reference> + <connection id="id-0068-0000000c" kind="PackageConfReference" role="PackageConfReference" guid="{F1D47B99-2C3A-4596-8E68-5BC0523AC43C}" relid="0x6"> + <name>PackageConfReference</name> + <regnode name="autorouterPref" isopaque="yes"> + <value>Ew</value> + </regnode> + <connpoint role="src" target="id-0066-00000010"/> + <connpoint role="dst" target="id-0067-00000011"/> + </connection> + </model> + </folder> + <folder id="id-006a-00000008" relid="0x7" childrelidcntr="0x2" kind="ComponentPackages" guid="{7CD1CFE6-CBF9-403a-9FEC-EAA8900E31ED}"> + <name>ComponentPackages</name> + <model id="id-0065-00000011" kind="PackageContainer" guid="{C8B39DE2-87B5-4428-8506-15786DA08B37}" relid="0x1" childrelidcntr="0xa"> + <name>Null_Component_Package</name> + <atom id="id-0066-00000011" kind="ComponentPackage" role="ComponentPackage" guid="{399F04B2-2AEF-4f9b-B6D8-AD8BF395F4BF}" relid="0x1"> + <name>Null_Component_Package</name> + <regnode name="PartRegs" status="undefined"> + <value></value> + <regnode name="Packaging" status="undefined"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>366,163</value> + </regnode> + </regnode> + </regnode> + <attribute kind="UUID"> + <value>FDCE9BA7-20C4-44B0-B1FB-10CC18EC1DB2</value> + </attribute> + <attribute kind="label" status="meta"> + <value></value> + </attribute> + </atom> + <reference id="id-0067-00000009" kind="ComponentImplementationReference" role="ComponentImplementationReference" guid="{1628E908-3C4C-4cec-8503-FB967ED6B313}" relid="0x5" referred="id-0066-0000000c"> + <name>Null_ComponentMonolithicImpl</name> + <regnode name="PartRegs" status="undefined"> + <value></value> + <regnode name="Packaging" status="undefined"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>130,158</value> + </regnode> + </regnode> + </regnode> + </reference> + <reference id="id-0067-0000000a" kind="ComponentRef" role="ComponentRef" guid="{99E7E3DF-7042-40d3-A5E5-91B4EA7DFE84}" relid="0x9" referred="id-0065-0000000b"> + <name>Null_Component</name> + <regnode name="PartRegs" status="undefined"> + <value></value> + <regnode name="Packaging" status="undefined"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>545,137</value> + </regnode> + </regnode> + </regnode> + </reference> + <connection id="id-0068-0000000d" kind="Implementation" role="Implementation" guid="{11BE67D7-21A8-4f1f-9866-B146B285B3E7}" relid="0x6"> + <name>Implementation</name> + <regnode name="autorouterPref" isopaque="yes"> + <value>We</value> + </regnode> + <connpoint role="src" target="id-0066-00000011"/> + <connpoint role="dst" target="id-0067-00000009"/> + </connection> + <connection id="id-0068-0000000e" kind="PackageInterface" role="PackageInterface" guid="{B136D6BA-56E6-4219-8589-ECC053CD38DF}" relid="0xa"> + <name>PackageInterface</name> + <regnode name="autorouterPref" isopaque="yes"> + <value>Ew</value> + </regnode> + <connpoint role="src" target="id-0066-00000011"/> + <connpoint role="dst" target="id-0067-0000000a"/> + </connection> + </model> + <model id="id-0065-00000012" kind="PackageContainer" guid="{D23DDDED-F375-4282-8AFB-A63FF1E6E35C}" relid="0x2" childrelidcntr="0x3"> + <name>Null_Assembly_Package</name> + <atom id="id-0066-00000012" kind="ComponentPackage" role="ComponentPackage" guid="{F0404F3C-96BA-4636-8EA9-BD7FA4EFA6C1}" relid="0x1"> + <name>Null_Assembly_Package</name> + <regnode name="PartRegs" status="undefined"> + <value></value> + <regnode name="Packaging" status="undefined"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>282,135</value> + </regnode> + </regnode> + </regnode> + <attribute kind="UUID"> + <value>051F0532-FC77-4867-8B97-58A8B1AC2692</value> + </attribute> + <attribute kind="label" status="meta"> + <value></value> + </attribute> + </atom> + <reference id="id-0067-0000000b" kind="ComponentImplementationReference" role="ComponentImplementationReference" guid="{803C2A26-55B7-4e33-B4A1-85C099527E1B}" relid="0x2" referred="id-0065-0000000a"> + <name>Null_Assembly</name> + <regnode name="PartRegs" status="undefined"> + <value></value> + <regnode name="Packaging" status="undefined"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>502,110</value> + </regnode> + </regnode> + </regnode> + </reference> + <connection id="id-0068-0000000f" kind="Implementation" role="Implementation" guid="{D2AB56FE-262F-41a5-865A-F6C4CE42AF8B}" relid="0x3"> + <name>Implementation</name> + <regnode name="autorouterPref" isopaque="yes"> + <value>Ew</value> + </regnode> + <connpoint role="src" target="id-0066-00000012"/> + <connpoint role="dst" target="id-0067-0000000b"/> + </connection> + </model> + </folder> + <folder id="id-006a-00000009" relid="0x8" childrelidcntr="0x1" kind="DeploymentPlans" guid="{A8AC6F0D-04B4-4cd3-8D4A-35203E305292}"> + <name>DeploymentPlans</name> + <model id="id-0065-00000013" kind="DeploymentPlan" guid="{E52CD936-2895-47e6-8098-AC14E04E95CE}" relid="0x1" childrelidcntr="0x7"> + <name>Plan</name> + <attribute kind="UUID"> + <value>FD6E278D-20AC-4FFD-B359-382963C5D9A1</value> + </attribute> + <attribute kind="label" status="meta"> + <value></value> + </attribute> + <reference id="id-0067-0000000c" kind="ComponentRef" role="ComponentRef" guid="{738ADEBF-447F-4ef5-B169-A71EFD41072C}" relid="0x7" referred="id-0065-0000000b"> + <name>Null_Component</name> + <regnode name="PartRegs" status="undefined"> + <value></value> + <regnode name="NodeMapping" status="undefined"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>475,102</value> + </regnode> + </regnode> + </regnode> + </reference> + <reference id="id-0067-00000012" kind="NodeReference" role="NodeReference" guid="{8EE47473-D50A-4cb7-BF4D-960D4A11E08B}" relid="0x2" referred="id-0065-00000015"> + <name>NodeA</name> + <regnode name="PartRegs" status="undefined"> + <value></value> + <regnode name="NodeMapping" status="undefined"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>305,123</value> + </regnode> + </regnode> + </regnode> + </reference> + <connection id="id-0068-00000010" kind="InstanceMapping" role="InstanceMapping" guid="{E8CCBA34-B9FD-4796-ACBA-BC9EE4E01171}" relid="0x4"> + <name>InstanceMapping</name> + <regnode name="autorouterPref" isopaque="yes"> + <value>w</value> + </regnode> + <connpoint role="dst" target="id-0067-00000012"/> + <connpoint role="src" target="id-0069-00000001"/> + </connection> + <set id="id-0069-00000001" kind="CollocationGroup" role="CollocationGroup" guid="{665CA6CD-AA59-490b-BD70-5A2E72A1A1F3}" relid="0x1" members="id-0067-0000000c"> + <name>CollocationGroup</name> + <regnode name="PartRegs" status="undefined"> + <value></value> + <regnode name="NodeMapping" status="undefined"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>114,128</value> + </regnode> + </regnode> + </regnode> + </set> + </model> + </folder> + <folder id="id-006a-0000000a" relid="0x9" childrelidcntr="0x1" kind="Targets" guid="{B541B57C-4E9D-4533-8329-191A3E04142F}"> + <name>Targets</name> + <model id="id-0065-00000014" kind="Domain" guid="{AB32BA4C-D4C2-477f-8FA0-B07B917A1CCE}" relid="0x1" childrelidcntr="0x1"> + <name>Domain</name> + <attribute kind="UUID"> + <value>E6198ADF-7421-46D8-9C4F-F70273837DAF</value> + </attribute> + <attribute kind="label" status="meta"> + <value></value> + </attribute> + <model id="id-0065-00000015" kind="Node" role="Node" guid="{F7A80831-4C6B-475c-B818-02BE26FD79B4}" relid="0x1" childrelidcntr="0x0"> + <name>NodeA</name> + <regnode name="PartRegs" status="undefined"> + <value></value> + <regnode name="Target" status="undefined"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>198,170</value> + </regnode> + </regnode> + </regnode> + <attribute kind="label" status="meta"> + <value></value> + </attribute> + </model> + </model> + </folder> + <folder id="id-006a-0000000b" relid="0xa" childrelidcntr="0x1" kind="TopLevelPackages" guid="{3B6BEFD6-A3F9-4caa-A26D-46160D31B3F0}"> + <name>TopLevelPackages</name> + <model id="id-0065-00000016" kind="TopLevelPackageContainer" guid="{B83E2CBB-2304-457b-AAF7-7D3C8BE6AB49}" relid="0x1" childrelidcntr="0x3"> + <name>Default</name> + <atom id="id-0066-00000013" kind="TopLevelPackage" role="TopLevelPackage" guid="{AB7F46E3-34C1-4910-A9B8-51EFC7A9D179}" relid="0x1"> + <name>TopLevelPackage</name> + <regnode name="PartRegs" status="undefined"> + <value></value> + <regnode name="Packaging" status="undefined"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>240,184</value> + </regnode> + </regnode> + </regnode> + </atom> + <reference id="id-0067-0000000d" kind="PackageConfigurationReference" role="PackageConfigurationReference" guid="{548C1366-5FDF-47c3-919C-50FD9D66D032}" relid="0x2" referred="id-0066-00000010"> + <name>PackageConfiguration</name> + <regnode name="PartRegs" status="undefined"> + <value></value> + <regnode name="Packaging" status="undefined"> + <value></value> + <regnode name="Position" isopaque="yes"> + <value>517,181</value> + </regnode> + </regnode> + </regnode> + </reference> + <connection id="id-0068-00000011" kind="package" role="package" guid="{D4CA3A9E-14DE-489a-A06E-161B5A233BC7}" relid="0x3"> + <name>package</name> + <regnode name="autorouterPref" isopaque="yes"> + <value>w</value> + </regnode> + <connpoint role="src" target="id-0066-00000013"/> + <connpoint role="dst" target="id-0067-0000000d"/> + </connection> + </model> + </folder> + <folder id="id-006a-0000000c" relid="0xb" childrelidcntr="0x0" kind="ComponentBuild" guid="{C8B1D725-308A-45cb-8A47-F070462C8B16}"> + <name>ComponentBuild</name> + </folder> + </folder> +</project> diff --git a/modules/CIAO/examples/Null_Component/plan.h b/modules/CIAO/examples/Null_Component/plan.h new file mode 100644 index 00000000000..b6c5ada9ff2 --- /dev/null +++ b/modules/CIAO/examples/Null_Component/plan.h @@ -0,0 +1,37 @@ +// $Id$ + +#include "Session_Container.h" + +extern "C" +::Components::HomeExecutorBase_ptr create_Null_ComponentHome_Impl (void); + +extern "C" +::PortableServer::Servant create_Null_ComponentHome_Servant ( + ::Components::HomeExecutorBase_ptr p, + ::CIAO::Session_Container *c, + const char*); + +struct HomeAttributes +{ + char const * component_instance_name_; + /// Specify the entrypoint to component executor DLL. + char const * executor_entrypt_; + ::CIAO::HomeFactory executor_fptr_; + /// Specify the entrypoint to component servant DLL. + char const * servant_entrypt_; + ::CIAO::ServantFactory servant_fptr_; +}; + +/// Homes +HomeAttributes homes_table[] = +{ + { + "Null_Component.ComponentImplementations.Null_Assembly_Container." + "Null_Assembly.Null_Component", + "create_Null_ComponentHome_Impl", + create_Null_ComponentHome_Impl, + "create_Null_ComponentHome_Servant", + create_Null_ComponentHome_Servant + } +}; + diff --git a/modules/CIAO/examples/Philosophers/Philosophers.idl b/modules/CIAO/examples/Philosophers/Philosophers.idl new file mode 100644 index 00000000000..7a29bc03c23 --- /dev/null +++ b/modules/CIAO/examples/Philosophers/Philosophers.idl @@ -0,0 +1,75 @@ +// $Id$ + +// The famous Dining Philosopher example in CCM tutorial slides + +module Example +{ + exception InUse {}; + + interface Fork + /** + * Provided facet interface definition. + * It should be defined by the IDL file. + */ + { + void get () raises (InUse); + + void release (); + }; + + component ForkManager + { + provides Fork the_fork; + }; + + home ForkHome manages ForkManager + { + }; + + enum PhilosopherState + { + EATING, + THINKING, + HUNGRY, + STARVING, + DEAD + }; + + eventtype StatusInfo + { + public string name; + public PhilosopherState state; + public unsigned long ticks_since_last_meal; + public boolean has_left_fork; + public boolean has_right_fork; + }; + + component Philosopher + { + attribute string name; + + // The left fork receptacle. + uses Fork left; + + // The right fork receptacle. + uses Fork right; + + // The status info event source. + publishes StatusInfo info; + }; + + home PhilosopherHome manages Philosopher + { + factory new (in string name); + }; + + component Observer + { + // The status info sink port. + consumes StatusInfo info; + }; + + home ObserverHome manages Observer + { + }; +}; diff --git a/modules/CIAO/examples/Philosophers/README b/modules/CIAO/examples/Philosophers/README new file mode 100644 index 00000000000..96a56e61b73 --- /dev/null +++ b/modules/CIAO/examples/Philosophers/README @@ -0,0 +1 @@ +This example is unfinished.
\ No newline at end of file |